在控制節點上安裝
備註:安裝cinder時,nova-compute創建虛擬機時會默認使用cinder指定的存儲方式,所以,如果你還要使用本地存儲的話,請先參考我這邊文章進行設置:
配置nova-compute在不同的計算節點上使用不同的存儲後端
1.準備數據庫和賬號
MYSQL_ROOT_PASSWD='m4r!adbOP'
CINDER_PASSWD='cinder1234!'
controllerHost='controller'
RABBIT_PASSWD='0penstackRMQ'
mysql -uroot -p${MYSQL_ROOT_PASSWD} << EOF
DROP DATABASE IF EXISTS cinder;
CREATE DATABASE cinder;
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY '${CINDER_PASSWD}';
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY '${CINDER_PASSWD}';
EOF
2.創建cinder用戶並授權
source ~/admin-openrc
openstack user create --domain default --password ${CINDER_PASSWD} cinder
openstack role add --project service --user cinder admin
3.創建服務實體和端點
openstack service create --name cinderv2 --description "OpenStack Block Storage" volumev2
openstack endpoint create --region RegionOne volumev2 public http://${controllerHost}:8776/v2/%\(project_id\)s
openstack endpoint create --region RegionOne volumev2 internal http://${controllerHost}:8776/v2/%\(project_id\)s
openstack endpoint create --region RegionOne volumev2 admin http://${controllerHost}:8776/v2/%\(project_id\)s
openstack service create --name cinderv3 --description "OpenStack Block Storage" volumev3
openstack endpoint create --region RegionOne volumev3 public http://${controllerHost}:8776/v3/%\(project_id\)s
openstack endpoint create --region RegionOne volumev3 internal http://${controllerHost}:8776/v3/%\(project_id\)s
openstack endpoint create --region RegionOne volumev3 admin http://${controllerHost}:8776/v3/%\(project_id\)s
4.安裝cinder組件
yum -y install openstack-cinder
5.配置cinder訪問數據庫
openstack-config --set /etc/cinder/cinder.conf database connection mysql+pymysql://cinder:${CINDER_PASSWD}@${controllerHost}/cinder
6.配置cinder訪問rabbitmq消息隊列
openstack-config --set /etc/cinder/cinder.conf DEFAULT transport_url rabbit://openstack:${RABBIT_PASSWD}@${controllerHost}:5672
7.配置cinder訪問memcached服務器池
openstack-config --set /etc/cinder/cinder.conf cache backend oslo_cache.memcache_pool
openstack-config --set /etc/cinder/cinder.conf cache enabled true
openstack-config --set /etc/cinder/cinder.conf cache memcache_servers ${controllerHost}:11211
8.配置cinder訪問keystone服務
openstack-config --set /etc/cinder/cinder.conf DEFAULT auth_strategy keystone
openstack-config --set /etc/cinder/cinder.conf keystone_authtoken auth_uri http://${controllerHost}:5000
openstack-config --set /etc/cinder/cinder.conf keystone_authtoken auth_url http://${controllerHost}:5000
openstack-config --set /etc/cinder/cinder.conf keystone_authtoken auth_type password
openstack-config --set /etc/cinder/cinder.conf keystone_authtoken project_domain_id default
openstack-config --set /etc/cinder/cinder.conf keystone_authtoken user_domain_id default
openstack-config --set /etc/cinder/cinder.conf keystone_authtoken project_name service
openstack-config --set /etc/cinder/cinder.conf keystone_authtoken username cinder
openstack-config --set /etc/cinder/cinder.conf keystone_authtoken password ${CINDER_PASSWD}
9.配置cinder服務監聽IP
openstack-config --set /etc/cinder/cinder.conf DEFAULT my_ip 0.0.0.0
openstack-config --set /etc/cinder/cinder.conf DEFAULT osapi_volume_listen \$my_ip
openstack-config --set /etc/cinder/cinder.conf DEFAULT osapi_volume_listen_port 8776
10.配置鎖路徑
openstack-config --set /etc/cinder/cinder.conf oslo_concurrency lock_path /var/lib/cinder/tmp
11.同步數據庫
su -s /bin/sh -c "cinder-manage db sync" cinder
12.啓動cinder服務
systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service
systemctl status openstack-cinder-api.service openstack-cinder-scheduler.service