Cinder 安装

前置条件#

  • 核心组件(Keystone、Nova、Neutron)已部署完成
  • 计算节点有一块 未使用的整盘 作为 Cinder 后端,本文使用 /dev/sdb

步骤一:控制节点 API 与调度(controller)#

Terminal window
source /etc/keystone/admin-openrc.sh

1. 创建数据库#

Terminal window
mysql -uroot -p000000 -e "CREATE DATABASE cinder;"
mysql -uroot -p000000 -e "GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY '000000';"
mysql -uroot -p000000 -e "GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY '000000';"

2. 注册 Keystone 用户与服务#

Terminal window
openstack user create --domain default --password 000000 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
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

3. 安装并配置#

Terminal window
yum install -y openstack-cinder
crudini --set /etc/cinder/cinder.conf database connection mysql+pymysql://cinder:000000@controller/cinder
crudini --set /etc/cinder/cinder.conf DEFAULT transport_url rabbit://openstack:000000@controller
crudini --set /etc/cinder/cinder.conf DEFAULT auth_strategy keystone
crudini --set /etc/cinder/cinder.conf keystone_authtoken www_authenticate_uri http://controller:5000
crudini --set /etc/cinder/cinder.conf keystone_authtoken auth_url http://controller:5000
crudini --set /etc/cinder/cinder.conf keystone_authtoken memcached_servers controller:11211
crudini --set /etc/cinder/cinder.conf keystone_authtoken auth_type password
crudini --set /etc/cinder/cinder.conf keystone_authtoken project_domain_name default
crudini --set /etc/cinder/cinder.conf keystone_authtoken user_domain_name default
crudini --set /etc/cinder/cinder.conf keystone_authtoken project_name service
crudini --set /etc/cinder/cinder.conf keystone_authtoken username cinder
crudini --set /etc/cinder/cinder.conf keystone_authtoken password 000000
crudini --set /etc/cinder/cinder.conf DEFAULT my_ip 11.0.1.30
crudini --set /etc/cinder/cinder.conf oslo_concurrency lock_path /var/lib/cinder/tmp
crudini --set /etc/nova/nova.conf cinder os_region_name RegionOne
su -s /bin/sh -c "cinder-manage db sync" cinder
systemctl restart openstack-nova-api.service
systemctl enable openstack-cinder-api openstack-cinder-scheduler
systemctl restart openstack-cinder-api openstack-cinder-scheduler httpd

4. 控制节点验收#

Terminal window
source /etc/keystone/admin-openrc.sh
systemctl is-active openstack-cinder-api openstack-cinder-scheduler
openstack volume service list

步骤二:计算节点卷服务(compute)#

1. 准备 LVM 磁盘#

Terminal window
yum install -y lvm2 device-mapper-persistent-data openstack-cinder targetcli python-keystone
systemctl enable lvm2-lvmetad.service
systemctl restart lvm2-lvmetad.service
pvcreate /dev/sdb
vgcreate cinder-volumes /dev/sdb
partprobe

2. 配置 /etc/cinder/cinder.conf#

Terminal window
crudini --set /etc/cinder/cinder.conf database connection mysql+pymysql://cinder:000000@controller/cinder
crudini --set /etc/cinder/cinder.conf DEFAULT transport_url rabbit://openstack:000000@controller
crudini --set /etc/cinder/cinder.conf DEFAULT auth_strategy keystone
crudini --set /etc/cinder/cinder.conf DEFAULT my_ip 11.0.1.40
crudini --set /etc/cinder/cinder.conf DEFAULT enabled_backends lvm
crudini --set /etc/cinder/cinder.conf DEFAULT glance_api_servers http://controller:9292
crudini --set /etc/cinder/cinder.conf keystone_authtoken www_authenticate_uri http://controller:5000
crudini --set /etc/cinder/cinder.conf keystone_authtoken auth_url http://controller:5000
crudini --set /etc/cinder/cinder.conf keystone_authtoken memcached_servers controller:11211
crudini --set /etc/cinder/cinder.conf keystone_authtoken auth_type password
crudini --set /etc/cinder/cinder.conf keystone_authtoken project_domain_name default
crudini --set /etc/cinder/cinder.conf keystone_authtoken user_domain_name default
crudini --set /etc/cinder/cinder.conf keystone_authtoken project_name service
crudini --set /etc/cinder/cinder.conf keystone_authtoken username cinder
crudini --set /etc/cinder/cinder.conf keystone_authtoken password 000000
crudini --set /etc/cinder/cinder.conf lvm volume_driver cinder.volume.drivers.lvm.LVMVolumeDriver
crudini --set /etc/cinder/cinder.conf lvm volume_group cinder-volumes
crudini --set /etc/cinder/cinder.conf lvm iscsi_protocol iscsi
crudini --set /etc/cinder/cinder.conf lvm iscsi_helper lioadm
crudini --set /etc/cinder/cinder.conf oslo_concurrency lock_path /var/lib/cinder/tmp

3. 启动服务#

Terminal window
systemctl enable openstack-cinder-volume target
systemctl restart openstack-cinder-volume target

4. 验收#

计算节点:

Terminal window
systemctl is-active openstack-cinder-volume

控制节点:

Terminal window
source /etc/keystone/admin-openrc.sh
openstack volume service list
# compute@lvm 为 enabled / up
# 创建测试卷
openstack volume create --size 1 test-volume
openstack volume list
文章目录

文章目录