cinder
controller node
1.條件設置
1.創庫授權
CREATE DATABASE cinder;
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'CINDER_DBPASS';
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'CINDER_DBPASS';
2.創建項目和角色
openstack user create --domain default --password cinder123 cinder
openstack role add --project admin --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
2.安裝並配置組件
1.安裝軟件包
yum install openstack-cinder -y
2.Edit the /etc/cinder/cinder.conf file
sed -i '/^\[database\]/a connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder' /etc/cinder/cinder.conf
sed -i '/^\[DEFAULT\]/a transport_url = rabbit://openstack:RABBIT_PASS@controller' /etc/cinder/cinder.conf
sed -i '/^\[DEFAULT\]/a auth_strategy = keystone' /etc/cinder/cinder.conf
sed -i '/^\[DEFAULT\]/a my_ip = 10.1.10.161' /etc/cinder/cinder.conf
sed -i '/^\[keystone_authtoken\]/a password = cinder123' /etc/cinder/cinder.conf
sed -i '/^\[keystone_authtoken\]/a username = cinder' /etc/cinder/cinder.conf
sed -i '/^\[keystone_authtoken\]/a project_name = admin' /etc/cinder/cinder.conf
sed -i '/^\[keystone_authtoken\]/a user_domain_name = Default' /etc/cinder/cinder.conf
sed -i '/^\[keystone_authtoken\]/a project_domain_name = Default' /etc/cinder/cinder.conf
sed -i '/^\[keystone_authtoken\]/a auth_type = password' /etc/cinder/cinder.conf
sed -i '/^\[keystone_authtoken\]/a memcached_servers = controller:11211' /etc/cinder/cinder.conf
sed -i '/^\[keystone_authtoken\]/a auth_url = http://controller:5000' /etc/cinder/cinder.conf
sed -i '/^\[keystone_authtoken\]/a www_authenticate_uri = http://controller:5000' /etc/cinder/cinder.conf
sed -i '/^\[oslo_concurrency\]/a lock_path = /var/lib/cinder/tmp' /etc/cinder/cinder.conf
3.初始化數據庫
su -s /bin/sh -c "cinder-manage db sync" cinder
4.Edit the /etc/nova/nova.conf file
sed -i '/^\[cinder\]/a os_region_name = RegionOne' /etc/nova/nova.conf
5.啟動服務
systemctl restart openstack-nova-api.service
systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
systemctl restart openstack-cinder-api.service openstack-cinder-scheduler.service
(1)code
mysql -u root -p1234qwer
CREATE DATABASE cinder;
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'CINDER_DBPASS';
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'CINDER_DBPASS';
quit
. /root/admin-openrc
openstack user create --domain default --password cinder123 cinder
openstack role add --project admin --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
yum install openstack-cinder -y
sed -i '/^\[database\]/a connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder' /etc/cinder/cinder.conf
sed -i '/^\[DEFAULT\]/a transport_url = rabbit://openstack:RABBIT_PASS@controller' /etc/cinder/cinder.conf
sed -i '/^\[DEFAULT\]/a auth_strategy = keystone' /etc/cinder/cinder.conf
sed -i '/^\[DEFAULT\]/a my_ip = 10.1.10.161' /etc/cinder/cinder.conf
sed -i '/^\[keystone_authtoken\]/a password = cinder123' /etc/cinder/cinder.conf
sed -i '/^\[keystone_authtoken\]/a username = cinder' /etc/cinder/cinder.conf
sed -i '/^\[keystone_authtoken\]/a project_name = admin' /etc/cinder/cinder.conf
sed -i '/^\[keystone_authtoken\]/a user_domain_name = Default' /etc/cinder/cinder.conf
sed -i '/^\[keystone_authtoken\]/a project_domain_name = Default' /etc/cinder/cinder.conf
sed -i '/^\[keystone_authtoken\]/a auth_type = password' /etc/cinder/cinder.conf
sed -i '/^\[keystone_authtoken\]/a memcached_servers = controller:11211' /etc/cinder/cinder.conf
sed -i '/^\[keystone_authtoken\]/a auth_url = http://controller:5000' /etc/cinder/cinder.conf
sed -i '/^\[keystone_authtoken\]/a www_authenticate_uri = http://controller:5000' /etc/cinder/cinder.conf
sed -i '/^\[oslo_concurrency\]/a lock_path = /var/lib/cinder/tmp' /etc/cinder/cinder.conf
su -s /bin/sh -c "cinder-manage db sync" cinder
sed -i '/^\[cinder\]/a os_region_name = RegionOne' /etc/nova/nova.conf
systemctl restart openstack-nova-api.service
systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
systemctl restart openstack-cinder-api.service openstack-cinder-scheduler.service
storage node
1.安裝並配置組件
1.創建卷
yum install lvm2 device-mapper-persistent-data -y
systemctl enable lvm2-lvmetad.service
systemctl restart lvm2-lvmetad.service
pvcreate /dev/sdb
vgcreate cinder-volumes /dev/sdb
只有實例可以訪問塊存儲卷組。但是,底層的操作系統管理着與這些卷相關聯的設備。默認情況下,LVM卷掃描工具會掃描``/dev`` 目錄,查找包含卷的塊存儲設備。如果項目在他們的卷上使用了LVM,掃描工具便會在檢測到這些卷時嘗試緩存它們,這可能會在底層操作系統和項目卷上產生各種問題。所以您必須重新配置LVM,讓它掃描僅包含``cinder-volume``卷組的設備。編輯``/etc/lvm/lvm.conf``文件並完成下面的操作:
在``devices``部分,添加一個過濾器,只接受``/dev/sdb``設備,拒絕其他所有設備:
devices { ... filter = [ "a/sdb/", "r/.*/"]每個過濾器組中的元素都以``a``開頭,即為 accept,或以
r
開頭,即為**reject**,並且包括一個設備名稱的正則表達式規則。過濾器組必須以``r/.*/``結束,過濾所有保留設備。您可以使用 :命令:`vgs -vvvv` 來測試過濾器。警告如果您的存儲節點在操作系統磁盤上使用了 LVM,您還必需添加相關的設備到過濾器中。例如,如果
/dev/sda
設備包含操作系統:filter = [ "a/sda/", "a/sdb/", "r/.*/"]
類似地,如果您的計算節點在操作系統磁盤上使用了 LVM,您也必需修改這些節點上
/etc/lvm/lvm.conf
文件中的過濾器,將操作系統磁盤包含到過濾器中。例如,如果``/dev/sda`` 設備包含操作系統:filter = [ "a/sda/", "r/.*/"]
2.安裝軟件包
yum install openstack-cinder targetcli python-keystone -y
3.Edit the /etc/cinder/cinder.conf file
sed -i '/^\[database\]/a connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder' /etc/cinder/cinder.conf
sed -i '/^\[DEFAULT\]/a transport_url = rabbit://openstack:RABBIT_PASS@controller' /etc/cinder/cinder.conf
sed -i '/^\[DEFAULT\]/a auth_strategy = keystone' /etc/cinder/cinder.conf
sed -i '/^\[DEFAULT\]/a my_ip = 10.1.10.161' /etc/cinder/cinder.conf
sed -i '/^\[keystone_authtoken\]/a password = cinder123' /etc/cinder/cinder.conf
sed -i '/^\[keystone_authtoken\]/a username = cinder' /etc/cinder/cinder.conf
sed -i '/^\[keystone_authtoken\]/a project_name = admin' /etc/cinder/cinder.conf
sed -i '/^\[keystone_authtoken\]/a user_domain_name = Default' /etc/cinder/cinder.conf
sed -i '/^\[keystone_authtoken\]/a project_domain_name = Default' /etc/cinder/cinder.conf
sed -i '/^\[keystone_authtoken\]/a auth_type = password' /etc/cinder/cinder.conf
sed -i '/^\[keystone_authtoken\]/a memcached_servers = controller:11211' /etc/cinder/cinder.conf
sed -i '/^\[keystone_authtoken\]/a auth_url = http://controller:5000' /etc/cinder/cinder.conf
sed -i '/^\[keystone_authtoken\]/a www_authenticate_uri = http://controller:5000' /etc/cinder/cinder.conf
sed -i '/^\[oslo_concurrency\]/a lock_path = /var/lib/cinder/tmp' /etc/cinder/cinder.conf
echo '[lvm]' >> /etc/cinder/cinder.conf
sed -i '/^\[lvm\]/a iscsi_helper = lioadm' /etc/cinder/cinder.conf
sed -i '/^\[lvm\]/a iscsi_protocol = iscsi' /etc/cinder/cinder.conf
sed -i '/^\[lvm\]/a volume_group = cinder-volumes' /etc/cinder/cinder.conf
sed -i '/^\[lvm\]/a volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver' /etc/cinder/cinder.conf
sed -i '/^\[DEFAULT\]/a enabled_backends = lvm' /etc/cinder/cinder.conf
sed -i '/^\[DEFAULT\]/a glance_api_servers = http://controller:9292' /etc/cinder/cinder.conf
4.啟動服務
systemctl enable openstack-cinder-volume.service target.service
systemctl restart openstack-cinder-volume.service target.service
(2)code
yum install lvm2 device-mapper-persistent-data -y systemctl enable lvm2-lvmetad.service systemctl restart lvm2-lvmetad.service pvcreate /dev/sdb vgcreate cinder-volumes /dev/sdb yum install openstack-cinder targetcli python-keystone -y sed -i '/^\[database\]/a connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder' /etc/cinder/cinder.conf sed -i '/^\[DEFAULT\]/a transport_url = rabbit://openstack:RABBIT_PASS@controller' /etc/cinder/cinder.conf sed -i '/^\[DEFAULT\]/a auth_strategy = keystone' /etc/cinder/cinder.conf sed -i '/^\[DEFAULT\]/a my_ip = 10.1.10.161' /etc/cinder/cinder.conf sed -i '/^\[keystone_authtoken\]/a password = cinder123' /etc/cinder/cinder.conf sed -i '/^\[keystone_authtoken\]/a username = cinder' /etc/cinder/cinder.conf sed -i '/^\[keystone_authtoken\]/a project_name = admin' /etc/cinder/cinder.conf sed -i '/^\[keystone_authtoken\]/a user_domain_name = Default' /etc/cinder/cinder.conf sed -i '/^\[keystone_authtoken\]/a project_domain_name = Default' /etc/cinder/cinder.conf sed -i '/^\[keystone_authtoken\]/a auth_type = password' /etc/cinder/cinder.conf sed -i '/^\[keystone_authtoken\]/a memcached_servers = controller:11211' /etc/cinder/cinder.conf sed -i '/^\[keystone_authtoken\]/a auth_url = http://controller:5000' /etc/cinder/cinder.conf sed -i '/^\[keystone_authtoken\]/a www_authenticate_uri = http://controller:5000' /etc/cinder/cinder.conf sed -i '/^\[oslo_concurrency\]/a lock_path = /var/lib/cinder/tmp' /etc/cinder/cinder.conf echo '[lvm]' >> /etc/cinder/cinder.conf sed -i '/^\[lvm\]/a iscsi_helper = lioadm' /etc/cinder/cinder.conf sed -i '/^\[lvm\]/a iscsi_protocol = iscsi' /etc/cinder/cinder.conf sed -i '/^\[lvm\]/a volume_group = cinder-volumes' /etc/cinder/cinder.conf sed -i '/^\[lvm\]/a volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver' /etc/cinder/cinder.conf sed -i '/^\[DEFAULT\]/a enabled_backends = lvm' /etc/cinder/cinder.conf sed -i '/^\[DEFAULT\]/a glance_api_servers = http://controller:9292' /etc/cinder/cinder.conf systemctl enable openstack-cinder-volume.service target.service systemctl restart openstack-cinder-volume.service target.service
##雲硬盤創建實例超時報錯
did not finish being created even after we waited 189 seconds or 61 attempts. And its status is downloading
解決方法
修改計算節點nova.conf的下面兩個參數
block_device_allocate_retries=1000 block_device_allocate_retries_interval=10