一拂共、安裝Cinder前的準(zhǔn)備
1. 為Cinder創(chuàng)建數(shù)據(jù)庫(在控制節(jié)點(diǎn))
提示:以下操作在控制節(jié)點(diǎn)完成,為塊存儲(chǔ)服務(wù)創(chuàng)建數(shù)據(jù)庫妆绞、服務(wù)認(rèn)證和API端點(diǎn)
- 使用數(shù)據(jù)庫客戶端裆熙,以root用戶連接到數(shù)據(jù)庫中:
mysql -u root -p
- 創(chuàng)建Cinder數(shù)據(jù)庫:
CREATE DATABASE cinder;
- 為Cinder用戶授予數(shù)據(jù)庫權(quán)限:
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'CINDER_DBPASS';
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'CINDER_DBPASS';
2. 創(chuàng)建Cinder的身份認(rèn)證證書
- 加載admin用戶的客戶端腳本:
source admin-openrc.sh
- 創(chuàng)建cinder用戶:
openstack user create --password-prompt cinder
- 將admin角色添加給cinder用戶:
openstack role add --project service --user cinder admin
- 創(chuàng)建cinder的服務(wù)實(shí)體(volume和volumev2兩個(gè)服務(wù)實(shí)體):
openstack service create --name cinder --description "OpenStack Block Storage" volume
openstack service create --name cinderv2 --description "OpenStack Block Storage" volumev2
- 創(chuàng)建計(jì)算服務(wù)的API endpoint(volume和volumev2兩個(gè)端點(diǎn):
openstack endpoint create --publicurl http://controller:8776/v2/%\(tenant_id\)s --internalurl http://controller:8776/v2/%\(tenant_id\)s --adminurl http://controller:8776/v2/%\(tenant_id\)s --region RegionOne volume
openstack endpoint create --publicurl http://controller:8776/v2/%\(tenant_id\)s --internalurl http://controller:8776/v2/%\(tenant_id\)s --adminurl http://controller:8776/v2/%\(tenant_id\)s --region RegionOne volumev2
二、在控制節(jié)點(diǎn)上安裝和配置Cinder
1. 安裝Cinder
- 安裝Cinder:
apt-get install cinder-api cinder-scheduler python-cinderclient
2. 配置Cinder
編輯文件:/etc/cinder/cinder.conf
小助手:刪除#和空格的命令:cat file | grep -v '^#' | grep -v '^$' > newfile
修改[database]部分偎快,配置數(shù)據(jù)庫的連接:
connection = mysql://cinder:CINDER_DBPASS@controller/cinder
記得密碼替換為自己設(shè)置密碼,這是mysql的密碼冯乘,并非cinder用戶的密碼-
修改[DEFAULT]和[oslo_messaging_rabbit]兩部分, 配置RabbitMQ消息隊(duì)列的訪問:
rpc_backend = rabbit
rabbit_host = controller rabbit_userid = openstack rabbit_password = RABBIT_PASS
-
在[DEFAULT]和[keystone_authtoken]兩部分,配置身份認(rèn)證服務(wù)的訪問:
auth_strategy = keystone
注意:修改[keystone_authtoken]部分要注釋掉本部分其他的參數(shù)
auth_uri = http://controller:5000 auth_url = http://controller:35357 auth_plugin = password project_domain_id = default user_domain_id = default project_name = service username = cinder password = CINDER_PASS
-
修改[DEFAULT]部分的my_ip參數(shù)滨砍,配置控制節(jié)點(diǎn)的管理IP地址:
my_ip = 10.0.0.11
-
修改[oslo_concurrency]部分往湿,配置鎖路徑:
lock_path = /var/lock/cinder
-
可選:在[DEFAULT]部分啟用日志信息詳細(xì)記錄:
verbose = True
3. 配置Cinder數(shù)據(jù)庫
- 為塊存儲(chǔ)服務(wù)數(shù)據(jù)庫添加數(shù)據(jù):
su -s /bin/sh -c "cinder-manage db_sync" cinder
4. 完成在控制節(jié)點(diǎn)上安裝和配置Cinder
- 重啟塊存儲(chǔ)服務(wù)Cinder:
service cinder-scheduler restart
service cinder-api restart
- 刪除ubuntu默認(rèn)創(chuàng)建的SQLite數(shù)據(jù)庫:
rm -f /var/lib/cinder/cinder.sqlite
三妖异、在塊存儲(chǔ)節(jié)點(diǎn)上安裝和配置Cinder
1. 配置塊存儲(chǔ)的操作系統(tǒng)環(huán)境
編輯文件:/etc/hosts
配置管理接口:IP地址:10.0.0.41和10.0.2.41
配置主機(jī)名:block1
將blcok主機(jī)的/etc/hosts內(nèi)容同步到其他所有節(jié)點(diǎn):``
為主機(jī)添加新的磁盤惋戏,并創(chuàng)建分區(qū):
fdisk /dev/sdb
安裝LVM包:
apt-get install lvm2
配置LVM的物理卷:
pvcreate /dev/sdb1
創(chuàng)建LVM的卷組cinder-volumes:
vgcreate cinder-volumes /dev/sdb1
-
配置LVM僅僅掃描含有cinder-volume的卷組,編輯/etc/lvm/lvm.conf:
在devices部分他膳,添加一個(gè)篩選器响逢,僅僅允許/dev/sdb設(shè)備并拒絕所有其他設(shè)備:devices { ... filter = [ "a/sdb/", "r/.*/"]
檢查過濾器是否起作用:
vgs -vvvv
2. 安裝Cinder(在block1節(jié)點(diǎn)上)
- 安裝Cinder:
apt-get install -y cinder-volume python-mysqldb
3. 配置Cinder
編輯Cinder的配置文件:/etc/cinder/cinder.conf
小助手:刪除#和空格的命令:cat file | grep -v '^#' | grep -v '^$' > newfile
-
在[database]部分,配置數(shù)據(jù)庫訪問:
connection = mysql://cinder:CINDER_DBPASS@controller/cinder
-
在[DEFAULT]和[oslo_messaging_rabbit]兩部分, 配置RabbitMQ消息隊(duì)列的訪問:
rpc_backend = rabbit
rabbit_host = controller rabbit_userid = openstack rabbit_password = RABBIT_PASS
-
在[DEFAULT]和[keystone_authtoken]兩部分棕孙,配置身份認(rèn)證服務(wù)的訪問:
auth_strategy = keystone
注意:修改[keystone_authtoken]部分要注釋掉本部分其他的參數(shù)
auth_uri = http://controller:5000 auth_url = http://controller:35357 auth_plugin = password project_domain_id = default user_domain_id = default project_name = service username = cinder password = CINDER_PASS
-
修改[DEFAULT]部分的my_ip參數(shù)舔亭,配置塊存儲(chǔ)節(jié)點(diǎn)的管理IP地址:
my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS(10.0.0.41)
-
在[lvm]部分,配置LVM驅(qū)動(dòng)蟀俊,卷組钦铺,iscsi的協(xié)議和helper:
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver volume_group = cinder-volumes iscsi_protocol = iscsi iscsi_helper = tgtadm
-
在[DEFAULT]部分,啟用LVM作為后端存儲(chǔ)系統(tǒng):
enabled_backends = lvm
-
在[DEFAULT]部分肢预,配置鏡像服務(wù)運(yùn)行的節(jié)點(diǎn):
glance_host = controller
-
在[oslo_concurrency]部分矛洞,配置鎖路徑:
lock_path = /var/lock/cinder
-
可選:在[DEFAULT]部分啟用日志信息詳細(xì)記錄:
verbose = True
4. 完成安裝和配置Cinder
- 重啟塊存儲(chǔ)服務(wù)Cinder:
service tgt restart
service cinder-volume restart
- 刪除ubuntu默認(rèn)創(chuàng)建的SQLite數(shù)據(jù)庫:
rm -f /var/lib/cinder/cinder.sqlite
四、校驗(yàn)Cinder的安裝
1. 校驗(yàn)Cinder的安裝
提示:在控制節(jié)點(diǎn)上進(jìn)行校驗(yàn)烫映,嘗試創(chuàng)建一個(gè)卷
- 在admin-openrc.sh和demo-openrc.sh兩個(gè)腳本里添加塊存儲(chǔ)的客戶端使用API v2.0:
echo "export OS_VOLUME_API_VERSION=2" | tee -a admin-openrc.sh demo-openrc.sh
- 加載admin客戶端腳本:
source admin-openrc.sh
- 檢查塊存儲(chǔ)服務(wù)啟動(dòng)的服務(wù)組件:
cinder service-list
應(yīng)該有兩個(gè)服務(wù):controller和block1@lvm - 加載demo腳本:
source demo-openrc.sh
- 創(chuàng)建1GB的一個(gè)卷:
cinder create --name demo-volume1 1
- 創(chuàng)建卷是否創(chuàng)建成功沼本,檢查狀態(tài)是否為可用噩峦,否則查看日志文件/var/log/cinder:
cinder list
2. 將卷添加到實(shí)例中
- 查看現(xiàn)有的實(shí)例,注意查看實(shí)例名和確保實(shí)例狀態(tài)是active:
nova list
- 查看可用的卷抽兆,注意查看卷ID:
nova volume-list
- 查看連接實(shí)例的VNC URL:
nova get-vnc-console demo-instance1 novnc
- 在瀏覽器中連接實(shí)例
- 查看實(shí)例中的現(xiàn)有卷:
sudo fdisk -l
- 將查看到的卷添加到實(shí)例中:
nova volume-attach demo-instance1 158bea89-07db-4ac2-8115-66c0d6a4bb48
- 查看卷的狀態(tài)识补,status應(yīng)該是in-use:
nova volume-list
- 在瀏覽器中連接實(shí)例
- 在實(shí)例中驗(yàn)證卷是否添加到實(shí)例中:
sudo fdisk -l