Cinder是OpenStack中管理块存储的服务。
1. Controller节点的配置
创建数据库(注意替换CINDER_DBPASS)
mysql -u root -p
MariaDB [(none)]> CREATE DATABASE cinder;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' \
IDENTIFIED BY 'CINDER_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' \
IDENTIFIED BY 'CINDER_DBPASS';
退出,加载环境变量
. admin-openrc
创建用户并加入角色
openstack user create --domain default --password-prompt cinder
openstack role add --project service --user cinder admin
创建服务
openstack service create --name cinderv2 --description "OpenStack Block Storage" volumev2
openstack service create --name cinderv3 --description "OpenStack Block Storage" volumev3
创建API端点
openstack endpoint create --region RegionOne volumev2 public http://controller:8776/v2/%\(project_id\)s
openstack endpoint create --region RegionOne volumev2 internal http://controller:8776/v2/%\(project_id\)s
openstack endpoint create --region RegionOne volumev2 admin http://controller:8776/v2/%\(project_id\)s
openstack endpoint create --region RegionOne volumev3 public http://controller:8776/v3/%\(project_id\)s
openstack endpoint create --region RegionOne volumev3 internal http://controller:8776/v3/%\(project_id\)s
openstack endpoint create --region RegionOne volumev3 admin http://controller:8776/v3/%\(project_id\)s
然后再去执行
sudo apt-get install cinder-api cinder-scheduler
修改配置文件
sudo vim /etc/cinder/cinder.conf
修改database(注意替换CINDER_DBPASS)
[database]
# ...
connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder
修改Default
[DEFAULT]
# ...
transport_url = rabbit://openstack:RABBIT_PASS@controller
auth_strategy = keystone
my_ip = 10.0.0.211
添加keystone_authtoken(注意替换CINDER_PASS)
[keystone_authtoken]
# ...
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = cinder
password = CINDER_PASS
添加oslo_concurrency
[oslo_concurrency]
# ...
lock_path = /var/lib/cinder/tmp
创建数据库
sudo su -s /bin/sh -c "cinder-manage db sync" cinder
Compute节点修改配置文件
sudo vim /etc/nova/nova.conf
修改
[cinder]
os_region_name = RegionOne
启动服务
sudo systemctl restart nova-api
sudo systemctl enable nova-api
sudo systemctl restart cinder-scheduler
sudo systemctl enable cinder-scheduler
sudo systemctl restart apache2
sudo systemctl enable apache2
2. 块存储(Block Storage)节点配置
存储节点首先需要LVM创建卷,这方面文章比较多,我的存储节点主机有两块硬盘,在安装程序时候就已经创建好了存储卷名称是ubuntu-vg,为了便于部署,改成了和官网文档一样的cinder-volumes
sudo vgrename ubuntu-vg cinder-volumes
编辑配置文件
sudo vim /etc/lvm/lvm.conf
配置允许访问的磁盘设备和拒绝访问的,记得把系统盘加进拒绝访问
devices {
...
filter = [ "a/sda/", "a/sdb/", "r/.*/"]
安装程序
sudo apt-get install tgt cinder-volume
修改配置文件
sudo vim /etc/cinder/cinder.conf
修改database(注意替换CINDER_DBPASS)
[database]
# ...
connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder
修改Default(注意替换RABBIT_PASS)
[DEFAULT]
# ...
transport_url = rabbit://openstack:RABBIT_PASS@controller
auth_strategy = keystone
my_ip = 10.0.0.216
enabled_backends = lvm
glance_api_servers = http://controller:9292
添加keystone_authtoken(注意替换CINDER_PASS)
[keystone_authtoken]
# ...
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = cinder
password = CINDER_PASS
修改lvm
[lvm]
# ...
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
target_protocol = iscsi
target_helper = tgtadm
修改oslo_concurrency
[oslo_concurrency]
# ...
lock_path = /var/lib/cinder/tmp
需要配置tgt,修改配置文件
sudo vim /etc/tgt/targets.conf
添加
include /var/lib/cinder/volumes/*
启动服务
sudo systemctl restart tgt
sudo systemctl enable tgt
sudo systemctl restart cinder-volume
sudo systemctl enable cinder-volume
3. 校验安装
在controller节点执行
. admin-openrc
openstack volume service list