塊存儲服務概述
OpenStack塊存儲服務(cinder)給虛拟機添加持久存儲。塊存儲給管理卷提供一個基礎設施,并與OpenStac計算服務進行互動進而給雲主機執行個體提供卷。該服務也啟用了卷快照和卷類型的管理。
塊存儲服務由下面元件構成:
cinder-api
接受API請求,并将它們路由到cinder-volume的ation。
cinder-volume
直接和存儲服務互動,并處理如cinder-scheduler等。它也這些程序通過消息隊列進行互動。Cinder-volume服務回報讀和寫請求到塊存儲服務以維持狀态。通過驅動結構它能與各種存儲提供商進行互動。
cinder-scheduler daemon
選擇最佳的存儲供應節點然後在其上建立卷。和nova-scheduler類似。
cinder-backup daemon
cinder-backup服務為備份存儲供應程式提供任何類型的卷備份。如cinder-volume服務,它能通過驅動結構與各種存儲供應程式互動。
Messaging queue
在各個存儲程序之間進行資訊轉發。
安裝和配置控制節點
這部分描述如何在控制節點安裝塊存儲服務。此服務要求至少一個額外存儲節點來給雲主機執行個體提供卷。
先決條件
1.以下幾步完成資料庫建立:
l用root賬号登陸資料庫
mysql -u root -p
l建立cinder資料庫
CREATE DATABASE cinder;
l給cinder資料庫授權
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'cinder';
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'cinder';
l退出資料庫
2.加載admin憑證
. admin-openrc
3.建立服務憑證
l建立cinder使用者
openstack user create --domain default --password-prompt cinder

l将admin角色添加給cinder使用者
openstack role add --project service --user cinder admin
l建立cinder和cinderv2服務entities
openstack service create --name cinder --description "OpenStack Block Storage" volume
openstack service create --name cinderv2 --description "OpenStack Block Storage" volumev2
備注:塊存儲服務要求兩個服務
4.建立塊存儲服務 API endpoints
openstack endpoint create --region RegionOne volume public http://controller:8776/v1/%\(tenant_id\)s
openstack endpoint create --region RegionOne volume internal http://controller:8776/v1/%\(tenant_id\)s
openstack endpoint create --region RegionOne volume admin http://controller:8776/v1/%\(tenant_id\)s
openstack endpoint create --region RegionOne volumev2 public http://controller:8776/v2/%\(tenant_id\)s
openstack endpoint create --region RegionOne volumev2 internal http://controller:8776/v2/%\(tenant_id\)s
openstack endpoint create --region RegionOne volumev2 admin http://controller:8776/v2/%\(tenant_id\)s
備注:塊存儲要求為兩個服務實體每個都要建立對應的endpoint。
安裝和配置元件
1.安裝軟體包
yum install openstack-cinder
2.編輯/etc/cinder/cinder.conf檔案,并修改操作:
l在[database]部分,配置資料庫通路
[database]
...
connection = mysql+pymysql://cinder:[email protected]/cinder
将CINDER_DBPASS替換成正确的密碼
l在[DEFAULT]和[oslo_messaging_rabbit]部分,配置RabbitMQ消息隊列通路
[DEFAULT]
...
rpc_backend = rabbit
[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS
将RABBIT_PASS替換成正确的密碼
l在[DEFAULT] and [keystone_authtoken]部分,配置Identity服務通路
[DEFAULT]
...
auth_strategy = keystone
[keystone_authtoken]
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = cinder
password = CINDER_PASS
将CINDER_PASS替換成正确的密碼
l在[default]部分,my_ip為控制節點的管理網絡IP位址
[DEFAULT]
...
my_ip = 192.168.213.81
l在[oslo_concurrency]部分,配置lock path
[oslo_concurrency]
...
lock_path = /var/lib/cinder/tmp
3.同步資料庫
su -s /bin/sh -c "cinder-manage db sync" cinder
配置計算服務使用塊存儲
1.編輯/etc/nova/nova.conf檔案并添加下面内容
[cinder]
os_region_name = RegionOne
完成安裝
1.重新開機計算API服務
systemctl restart openstack-nova-api.service
2.啟動塊存儲服務并配置開機啟動
systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service
安裝和配置存儲節點
這部分描述如何在存儲節點安裝塊存儲服務。為簡單起見,這個配置将引用一個帶有一個空的本地儲存設備的存儲節點。此操作指南使用/dev/sdb,但你可以替換成你特定節點不同的值。
該服務在此裝置上使用LVM驅動提供邏輯卷,并通過iSCSI端口将它們提供給雲主機執行個體。你可以按照這些指引進行較小的修改,以水準擴充你的環境與額外的存儲節點。
先決條件
在存儲節點開始安裝和配置塊存儲服務前,你必須準備儲存設備。
1.安裝支援工具包
l安裝LVM包
yum install lvm2
l啟動LVM中繼資料服務并配置開機自啟動
systemctl enable lvm2-lvmetad.service
systemctl start lvm2-lvmetad.service
2.建立LVM實體卷/dev/sdb
pvcreate /dev/sdb
3.建立LVM卷組cinder-volumes
vgcreate cinder-volumes /dev/sdb
塊存儲服務會在這個卷組裡建立邏輯卷。
4.隻有雲主機執行個體能通路塊存儲卷。然而,底層作業系統管理與卷相關的裝置。預設情況下,LVM卷掃描工具會為包含卷的塊儲存設備掃描/dev目錄。如果項目在他們的卷上使用LVM,掃描工具檢測到這些卷,并試圖對其進行緩存,緩存這些可導緻一系列與底層作業系統和工程量都相關的問題。你必須重新配置LVM來隻掃描包含cinder-volume卷組的裝置。編輯/etc/lvm/lvm.conf檔案并完成下面步驟。
l在devices部分,添加一個filter來接受/dev/sdb裝置并拒絕所有的其它裝置
devices {
...
filter = [ "a/sdb/", "r/.*/"]
在filter數組裡的每一項,以a開頭表示接受,以r開頭表示拒收,并且包含一個正規表達式裝置名。數組必須以r/.*/結尾來拒收任何剩下的裝置。你可以用vgs –vvvv指令來測試filters。
警告:如果你的存儲節點在作業系統盤使用LVM,你必須也添加相關的裝置到filter。例如,如果/dev/sda裝置包含作業系統:filter = [ "a/sda/", "a/sdb/", "r/.*/"]。
類似的,如果你的計算節點在作業系統盤使用LVM,你必須也要修改這些節點的/etc/lvm/lvm.conf檔案裡的filter,将作業系統盤包括進去。例如,如果/dev/sda裝置包含作業系統:filter = [ "a/sda/", "r/.*/"]
安裝和配置元件
1.安裝軟體包
yum install openstack-cinder targetcli
2.編輯/etc/cinder/cinder.conf檔案
l在[database]部分,配置資料庫通路
[database]
...
connection = mysql+pymysql://cinder:[email protected]/cinder
将CINDER_DBPASS正确的密碼
l在[DEFAULT] 和 [oslo_messaging_rabbit]部分,RabbitMQ消息隊列
[DEFAULT]
...
rpc_backend = rabbit
[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS
将RABBIT_PASS正确的密碼
l在[DEFAULT] 和 [keystone_authtoken]部分,配置Identity服務通路
[DEFAULT]
...
auth_strategy = keystone
[keystone_authtoken]
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = cinder
password = CINDER_PASS
将CINDER_PASS正确的密碼
l在[default]部分,配置my_ip
[DEFAULT]
...
my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
将MANAGEMENT_INTERFACE_IP_ADDRESS替換成存儲節點管理網絡接口IP位址。
l在[lvm]部分,配置
[lvm]
...
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
iscsi_protocol = iscsi
iscsi_helper = lioadm
l在[default]部分,配置
[DEFAULT]
...
enabled_backends = lvm
l在[default]部分,配置
[DEFAULT]
...
glance_api_servers = http://controller:9292
l在[oslo_concurrency]部分,配置
[oslo_concurrency]
...
lock_path = /var/lib/cinder/tmp
完成安裝
啟動塊存儲卷服務包括它的依賴,并配置開機啟動
systemctl enable openstack-cinder-volume.service target.service
systemctl start openstack-cinder-volume.service target.service
驗證操作
下列操作在控制節點進行
1.加載admin憑證
. admin-openrc
2.列出服務元件來驗證每個程序成功啟動
cinder service-list
版權聲明:本文為CSDN部落客「weixin_34133829」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。
原文連結:https://blog.csdn.net/weixin_34133829/article/details/91949399