Openstack 安裝部署指南翻譯系列 之 Cinder服務安裝(Block Storage)
1.1.1.1. Cinder服務安裝(Block Storage)
塊存儲服務(cinder)為訪客實例提供塊存儲設備。存儲設置方法由塊存儲驅動程序確定,或者在多後端配置的情況下確定驅動程序。有各種可用的驅動程序:NAS / SAN,NFS,iSCSI,Ceph等。
塊存儲API和調度器服務通常在控制器節點上運行。根據使用的驅動程序,卷服務可以在控制器節點,計算節點或獨立存儲節點上運行。
本節介紹如何為塊存儲服務安裝和配置存儲節點。為了簡單起見,此配置引用一個具有空的本地塊存儲設備的存儲節點。說明使用/dev/sdb,但您可以替換特定節點的其他值。
該服務使用LVM驅動程序在此設備上提供邏輯卷,並通過iSCSI
1.1.1.1.1. 安裝和配置存儲節點
1.1.1.1.1.1. 先決條件
在存儲節點上安裝和配置塊存儲服務之前,必須準備存儲設備。
註意:在存儲節點上執行這些步驟。
安裝支持實用程序包:
安裝LVM軟件包:
# yum install lvm2
啟動LVM元數據服務並將其配置為在系統引導時啟動:
# systemctl enable lvm2-lvmetad.service
# systemctl start lvm2-lvmetad.service
註意:一些發行版默認情況下包括LVM。
創建LVM物理卷/dev/sdb:
# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created
創建LVM卷組cinder-volumes:
# vgcreate cinder-volumes /dev/sdb
Volume group "cinder-volumes" successfully created
塊存儲服務在此卷組中創建邏輯卷。
只有實例可以訪問塊存儲卷。但是,底層操作系統管理與卷關聯的設備。默認情況下,LVM卷掃描工具將掃描/dev包含卷的塊存儲設備的 目錄。如果項目在其卷上使用LVM,則掃描工具會檢測這些卷並嘗試緩存它們,這可能會導致底層操作系統和項目卷的各種問題。您必須重新配置LVM以僅掃描包含
在本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/.*/"]
1.1.1.1.1.2. 安裝和配置組件
安裝軟件包:
# yum install openstack-cinder targetcli python-keystone
編輯/etc/cinder/cinder.conf文件並完成以下操作:
在該[database]部分中,配置數據庫訪問:
[database]
# ...
connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder
替換CINDER_DBPASS為塊存儲數據庫選擇的密碼。
在本[DEFAULT]節中,配置RabbitMQ 消息隊列訪問:
[DEFAULT]
# ...
transport_url = rabbit://openstack:RABBIT_PASS@controller
替換RABBIT_PASS為您為該openstack帳戶選擇的密碼RabbitMQ。
在[DEFAULT]和[keystone_authtoken]部分中,配置身份服務訪問:
[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為cinder身份服務中為用戶選擇的密碼 。
註意:註釋或刪除該[keystone_authtoken]部分中的任何其他選項 。
在本[DEFAULT]節中,配置my_ip選項:
[DEFAULT]
# ...
my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
替換MANAGEMENT_INTERFACE_IP_ADDRESS為存儲節點上的管理網絡接口的IP地址,通常為示例體系結構中第一個節點的10.0.0.41 。
在本[lvm]節中,使用LVM驅動程序,cinder-volumes卷組,iSCSI協議和適當的iSCSI服務配置LVM後端。如果該[lvm]部分不存在,請創建它:
[lvm]
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
iscsi_protocol = iscsi
iscsi_helper = lioadm
在本[DEFAULT]節中,啟用LVM後端:
[DEFAULT]
# ...
enabled_backends = lvm
註意:後端名稱是任意的。作為示例,本指南使用驅動程序的名稱作為後端的名稱。
在該[DEFAULT]部分中,配置Image Service API的位置:
[DEFAULT]
# ...
glance_api_servers = http://controller:9292
在該[oslo_concurrency]部分中,配置鎖定路徑:
[oslo_concurrency]
# ...
lock_path = /var/lib/cinder/tmp
1.1.1.1.1.3. 完成安裝
啟動Block Storage卷服務,包括其依賴關系,並將其配置為在系統引導時啟動:
# systemctl enable openstack-cinder-volume.service target.service
# systemctl start openstack-cinder-volume.service target.service
1.1.1.1.2. 安裝和配置控制器節點
本節介紹如何在控制器節點上安裝和配置塊存儲服務(代號為Cinder)。此服務需要至少一個向實例提供卷的附加存儲節點。
1.1.1.1.2.1. 先決條件
在安裝和配置塊存儲服務之前,必須創建一個數據庫,服務憑證和API端點。
要創建數據庫,請完成以下步驟:
使用數據庫訪問客戶端作為root用戶連接到數據庫服務器:
$ mysql -u root -p
創建cinder數據庫:
MariaDB [(none)]> CREATE DATABASE cinder;
授予對cinder數據庫的正確訪問權限:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO ‘cinder‘@‘localhost‘ \
IDENTIFIED BY ‘CINDER_DBPASS‘;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO ‘cinder‘@‘%‘ \
IDENTIFIED BY ‘CINDER_DBPASS‘;
更換CINDER_DBPASS一個合適的密碼。
退出數據庫訪問客戶端。
輸入admin憑據以訪問僅管理CLI命令:
$ . admin-openrc
要創建服務憑據,請完成以下步驟:
創建cinder用戶:
$ openstack user create --domain default --password-prompt cinder
User Password:
Repeat User Password:
將admin角色添加到cinder用戶:
$ openstack role add --project service --user cinder admin
創建cinderv2和cinderv3服務實體:
$ openstack service create --name cinderv2 \
--description "OpenStack Block Storage" volumev2
$ openstack service create --name cinderv3 \
--description "OpenStack Block Storage" volumev3
註意:塊存儲服務需要兩個服務實體。
創建塊存儲服務API端點:
$ 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
註意:塊存儲服務需要每個服務實體的端點。
1.1.1.1.2.2. 安裝和配置組件
安裝軟件包:
# yum install openstack-cinder
編輯/etc/cinder/cinder.conf文件並完成以下操作:
在該[database]部分中,配置數據庫訪問:
[database]
# ...
connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder
替換CINDER_DBPASS為塊存儲數據庫選擇的密碼。
在本[DEFAULT]節中,配置RabbitMQ 消息隊列訪問:
[DEFAULT]
# ...
transport_url = rabbit://openstack:RABBIT_PASS@controller
替換RABBIT_PASS為您為該openstack帳戶選擇的密碼 RabbitMQ。
在[DEFAULT]和[keystone_authtoken]部分中,配置身份服務訪問:
[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為cinder身份服務中為用戶選擇的密碼。
註意:註釋或刪除該[keystone_authtoken]部分中的任何其他選項 。
在該[DEFAULT]部分中,配置該my_ip選項以使用控制器節點的管理接口IP地址:
[DEFAULT]
# ...
my_ip = 10.0.0.11
在該[oslo_concurrency]部分中,配置鎖定路徑:
[oslo_concurrency]
# ...
lock_path = /var/lib/cinder/tmp
填充Block Storage數據庫:
# su -s /bin/sh -c "cinder-manage db sync" cinder
1.1.1.1.2.3. 配置計算以使用塊存儲
編輯/etc/nova/nova.conf文件並添加以下內容:
[cinder]
os_region_name = RegionOne
1.1.1.1.2.4. 完成安裝
重新啟動Compute API服務:
# systemctl restart openstack-nova-api.service
啟動Block Storage服務並將其配置為在系統啟動時啟動:
# systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
# systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service
本文出自 “yuweibing的技術博客” 博客,請務必保留此出處http://yuweibing.blog.51cto.com/3879355/1981184
Openstack 安裝部署指南翻譯系列 之 Cinder服務安裝(Block Storage)