前置条件
- 核心组件(Keystone、Nova、Neutron)已部署完成
- 计算节点有一块 未使用的整盘 作为 Cinder 后端,本文使用
/dev/sdb
步骤一:控制节点 API 与调度(controller)
source /etc/keystone/admin-openrc.sh1. 创建数据库
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 用户与服务
openstack user create --domain default --password 000000 cinderopenstack role add --project service --user cinder admin
openstack service create --name cinderv2 --description "OpenStack Block Storage" volumev2openstack service create --name cinderv3 --description "OpenStack Block Storage" volumev3
openstack endpoint create --region RegionOne volumev2 public http://controller:8776/v2/%\(project_id\)sopenstack endpoint create --region RegionOne volumev2 internal http://controller:8776/v2/%\(project_id\)sopenstack endpoint create --region RegionOne volumev2 admin http://controller:8776/v2/%\(project_id\)sopenstack endpoint create --region RegionOne volumev3 public http://controller:8776/v3/%\(project_id\)sopenstack endpoint create --region RegionOne volumev3 internal http://controller:8776/v3/%\(project_id\)sopenstack endpoint create --region RegionOne volumev3 admin http://controller:8776/v3/%\(project_id\)s3. 安装并配置
yum install -y openstack-cinder
crudini --set /etc/cinder/cinder.conf database connection mysql+pymysql://cinder:000000@controller/cindercrudini --set /etc/cinder/cinder.conf DEFAULT transport_url rabbit://openstack:000000@controllercrudini --set /etc/cinder/cinder.conf DEFAULT auth_strategy keystonecrudini --set /etc/cinder/cinder.conf keystone_authtoken www_authenticate_uri http://controller:5000crudini --set /etc/cinder/cinder.conf keystone_authtoken auth_url http://controller:5000crudini --set /etc/cinder/cinder.conf keystone_authtoken memcached_servers controller:11211crudini --set /etc/cinder/cinder.conf keystone_authtoken auth_type passwordcrudini --set /etc/cinder/cinder.conf keystone_authtoken project_domain_name defaultcrudini --set /etc/cinder/cinder.conf keystone_authtoken user_domain_name defaultcrudini --set /etc/cinder/cinder.conf keystone_authtoken project_name servicecrudini --set /etc/cinder/cinder.conf keystone_authtoken username cindercrudini --set /etc/cinder/cinder.conf keystone_authtoken password 000000crudini --set /etc/cinder/cinder.conf DEFAULT my_ip 11.0.1.30crudini --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.servicesystemctl enable openstack-cinder-api openstack-cinder-schedulersystemctl restart openstack-cinder-api openstack-cinder-scheduler httpd4. 控制节点验收
source /etc/keystone/admin-openrc.shsystemctl is-active openstack-cinder-api openstack-cinder-scheduleropenstack volume service list步骤二:计算节点卷服务(compute)
1. 准备 LVM 磁盘
yum install -y lvm2 device-mapper-persistent-data openstack-cinder targetcli python-keystone
systemctl enable lvm2-lvmetad.servicesystemctl restart lvm2-lvmetad.service
pvcreate /dev/sdbvgcreate cinder-volumes /dev/sdbpartprobe2. 配置 /etc/cinder/cinder.conf
crudini --set /etc/cinder/cinder.conf database connection mysql+pymysql://cinder:000000@controller/cindercrudini --set /etc/cinder/cinder.conf DEFAULT transport_url rabbit://openstack:000000@controllercrudini --set /etc/cinder/cinder.conf DEFAULT auth_strategy keystonecrudini --set /etc/cinder/cinder.conf DEFAULT my_ip 11.0.1.40crudini --set /etc/cinder/cinder.conf DEFAULT enabled_backends lvmcrudini --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:5000crudini --set /etc/cinder/cinder.conf keystone_authtoken auth_url http://controller:5000crudini --set /etc/cinder/cinder.conf keystone_authtoken memcached_servers controller:11211crudini --set /etc/cinder/cinder.conf keystone_authtoken auth_type passwordcrudini --set /etc/cinder/cinder.conf keystone_authtoken project_domain_name defaultcrudini --set /etc/cinder/cinder.conf keystone_authtoken user_domain_name defaultcrudini --set /etc/cinder/cinder.conf keystone_authtoken project_name servicecrudini --set /etc/cinder/cinder.conf keystone_authtoken username cindercrudini --set /etc/cinder/cinder.conf keystone_authtoken password 000000
crudini --set /etc/cinder/cinder.conf lvm volume_driver cinder.volume.drivers.lvm.LVMVolumeDrivercrudini --set /etc/cinder/cinder.conf lvm volume_group cinder-volumescrudini --set /etc/cinder/cinder.conf lvm iscsi_protocol iscsicrudini --set /etc/cinder/cinder.conf lvm iscsi_helper lioadmcrudini --set /etc/cinder/cinder.conf oslo_concurrency lock_path /var/lib/cinder/tmp3. 启动服务
systemctl enable openstack-cinder-volume targetsystemctl restart openstack-cinder-volume target4. 验收
计算节点:
systemctl is-active openstack-cinder-volume控制节点:
source /etc/keystone/admin-openrc.shopenstack volume service list# compute@lvm 为 enabled / up
# 创建测试卷openstack volume create --size 1 test-volumeopenstack volume list