Cinder安裝python
塊存儲服務cinder提供了塊存儲給instance使用,這種存儲的提供和消耗的方法是由塊存儲驅動肯定的,支持多種可用驅動:NAS/SAN, NFS, iSCSI, Ceph和更多。mysql
塊存儲API和調度程序服務一般在控制器節點上運行。根據所使用的驅動程序,卷服務能夠在控制器節點、計算節點或獨立存儲節點上運行。linux
本節描述如何爲塊存儲服務安裝和配置存儲節點。爲簡單起見,此配置操做一個帶有空的本地塊存儲設備的存儲節點,使用/dev/sdb。在設備上使用LVM驅動提供一個邏輯卷並經過iSCSI提供。正則表達式
安裝和配置存儲節點sql
安裝和配置控制節點:數據庫
前期準備:vim
一、建立數據庫並受權:後端
MariaDB [(none)]> CREATE DATABASE cinder; Query OK, 1 row affected (0.00 sec) MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' \ -> IDENTIFIED BY '123456'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY '123456'; Query OK, 0 rows affected (0.00 sec)
一、執行admin憑證以訪問命令行centos
[root@controller /]# source admin-openrc
建立cinder用戶api
openstack user create --domain default --password-prompt cinder
爲cinder用戶賦予admin角色,沒有任何輸出
[root@controller /]# openstack role add --project service --user cinder admin
建立cinderv2和cinderv3服務項:塊存儲服務要求2個服務項
openstack service create --name cinderv2 --description "OpenStack Block Storage" volumev2
openstack service create --name cinderv3 --description "OpenStack Block Storage" volumev3
建立塊存儲服務API的endpoints:
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 admin http://controller:8776/v3/%\(project_id\)s
配置和安裝組件:
一、安裝包:
二、編輯/etc/cinder/cinder.conf文件完成如下設置:
在[database]部分,配置到數據庫的鏈接
[database]
connection = mysql+pymysql://cinder:123456@controller/cinder
在[DEFAULT]部分,配置到RabbitMQ消息隊列的訪問:
transport_url = rabbit://openstack:123456@controller
在[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 = 123456
在[DEFAULT]部分配置my_ip選項:
[DEFAULT]
my_ip = 10.0.0.11 添加
一、在[oslo_concurrency]部分配置鎖定路徑
[oslo_concurrency].
lock_path = /var/lib/cinder/tmp
一、初始生成存儲數據庫
[root@controller /]# su -s /bin/sh -c "cinder-manage db sync" cinder
一、配置計算使用塊存儲:
編輯/etc/nova/nova.conf文件
[cinder]
os_region_name = RegionOne
完成安裝:
1、重啓nova計算服務
2、啓動塊服務並設置開機啓動
root@controller /]# systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
[root@controller /]# systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service
存儲節點配置安裝
環境準備:在存儲節點block1上操做
1、安裝規劃配置IP地址
2、主機名配置和/etc/hosts文件配置,要肯定能夠解析
3、配置NTP服務,安裝chrony,並配置controller做爲NTP服務器
4、配置基本的openstack包環境:
um install centos-release-openstack-pike 安裝pike源
yum upgrade 更新,若是升級過程包含一個新內核,請重啓主機以激活它。
yum install python-openstackclient 安裝openstack客戶端
yum install openstack-selinux 爲openstack服務自動管理Selinux中的安全策略
準備存儲設備:
一、安裝支持單元包:
安裝LVM包
Yum -y install lvm
[root@block1 /]# systemctl enable lvm2-lvmetad.service [root@block1 /]# systemctl start lvm2-lvmetad.service
一、建立LVM物理卷/dev/sdb
[root@block1 ~]# pvcreate /dev/sdb Physical volume "/dev/sdb" successfully created
一、建立LVM卷組cinder-volumes
[root@block1 ~]# vgcreate cinder-volumes /dev/sdb Volume group "cinder-volumes" successfully created
一、只有實例才能訪問塊存儲卷,然而,底層操做系統管理關於卷的管理設備,默認LVM卷掃描工具會爲塊存儲掃描 /dev目錄。若是租戶使用LVM,掃描工具會檢測這些卷和緩存他們,這會形成各類各樣的問題,必須從新配置LVM僅掃描包含cinder-volumes卷組的設備,配置/etc/lvm/lvm.conf文件完成如下設置:
在devices部分,添加過濾器接受/dev/sdb設備,拒絕其它設備:
每一個過濾器組中的元素都以「a」開頭,即爲 accept,或以」b」開頭,即爲reject,而且包括一個設備名稱的正則表達式規則。過濾器組必須以 r/.*/ 結束,過濾全部其它剩餘設備。能夠經過vgs -vvv命令來測試過濾器。
注意:
若是你的存儲節點的操做系統也使用LVM,你必需要添加相關設備到過濾器中,例如,若是/dev/sda包含操做系統:
filter = [ "a/sda/", "a/sdb/", "r/.*/"]
相似,若是你的計算節點的操做系統也使用LVM,你也必須在全部的這些計算節點上配置/etc/lvm/lvm.conf文件設置過濾器,只包含操做系統磁盤。例如,若是/dev/sda包含操做系統: vim /etc/lvm/lvm.conf
filter = [ "a/sda/", "r/.*/"]
安裝和配置組件:
一、安裝數據包:
二、配置/etc/cinder/cinder.conf文件完成如下設置:
在[database]部分,配置到數據庫的鏈接
[database]
connection = mysql+pymysql://cinder:123456@controller/cinder
在[DEFAULT]部分,配置到RabbitMQ消息隊列的訪問:
[DEFAULT]
transport_url = rabbit://openstack:123456@controller
在[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 = 123456
在[DEFAULT]部分配置my_ip選項:
[DEFAULT]
.my_ip = 10.0.0.41
在[lvm]部分,配置LVM後端LVM驅動,卷組cinder-volumes,iSCSI協議和正確的iSCSI服務,若是[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]部分,配置本地鏡像服務的API
[DEFAULT]
glance_api_servers = http://controller:9292
在[oslo_concurrency]部分配置鎖定路徑:
[oslo_concurrency]
lock_path = /var/lib/cinder/tmp
一、完成安裝
啓動並設置開機啓動:
[root@controller /]# systemctl enable openstack-cinder-volume.service target.service [root@controller /]# systemctl start openstack-cinder-volume.service target.service
檢查存儲服務:
在控制節點controller上執行如下命令:
openstack volume service list