天天看點

基于OpenStack建構企業私有雲(8)Cinder

目前Cinder支援各類開源和商業的存儲系統。目前開源的支援通過其配置檔案可以看到支援: Nexenta、GlusterFS、NFS、Cepf、ISCSI等。

控制節點部署

1.Cinder安裝

[root@linux-node1 ~]# yum install -y openstack-cinder           

2.資料庫配置

[root@linux-node1 ~]# vim /etc/cinder/cinder.conf
#在 [database] 部分,配置資料庫通路。
connection=mysql+pymysql://cinder:[email protected]/cinder
同步資料庫
[root@linux-node1 ~]# su -s /bin/sh -c "cinder-manage db sync" cinder
驗證資料庫狀态
[root@linux-node1 ~]# mysql -h 192.168.56.11 -ucinder -pcinder -e "use cinder;show tables;"           

3.Keystone相關配置

[root@linux-node1 ~]# vim /etc/cinder/cinder.conf
[DEFAULT]
auth_strategy=keystone
[keystone_authtoken]
auth_uri = http://192.168.56.11:5000
auth_url = http://192.168.56.11:35357
memcached_servers = 192.168.56.11:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = cinder
password = cinder           

4.RabbitMQ相關配置

[root@linux-node1 ~]# vim /etc/cinder/cinder.conf
[DEFAULT]
transport_url = rabbit://openstack:[email protected]           

5.其它配置

在 [oslo_concurrency] 部分,配置鎖路徑:
[oslo_concurrency]
lock_path = /var/lib/cinder/tmp           

6.配置Nova以使用塊裝置存儲,注意所有

編輯檔案 /etc/nova/nova.conf 并添加如下到其中:
[cinder]
os_region_name = RegionOne           

7.重新開機nova-api服務

[root@linux-node1 ~]# systemctl restart openstack-nova-api.service           

8.啟動cinder服務,并設定為開機自動啟動。

# systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
# systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service           

9.Cinder注冊Service和Endpoint

# 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://192.168.56.11:8776/v2/%\(project_id\)s
# openstack endpoint create --region RegionOne \
  volumev2 internal http://192.168.56.11:8776/v2/%\(project_id\)s
# openstack endpoint create --region RegionOne \
  volumev2 admin http://192.168.56.11:8776/v2/%\(project_id\)s           
# openstack endpoint create --region RegionOne \
 volumev3 public http://192.168.56.11:8776/v3/%\(project_id\)s
# openstack endpoint create --region RegionOne \
 volumev3 internal http://192.168.56.11:8776/v3/%\(project_id\)s
# openstack endpoint create --region RegionOne \
 volumev3 admin http://192.168.56.11:8776/v3/%\(project_id\)s           

存儲節點配置

對于CentOS環境,預設是已經安裝了LVM。如果沒有可以使用以下指令安裝并啟動。

安裝 LVM 包:

[root@linux-node1 ~]# yum install -y lvm2 device-mapper-persistent-data           

啟動LVM的metadata服務并且設定該服務随系統啟動:

[root@linux-node1 ~]# systemctl enable lvm2-lvmetad.service
[root@linux-node1 ~]# systemctl start lvm2-lvmetad.service           

把/dev/sdb建立為LVM的實體卷:

[root@linux-node2 ~]# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created           

建立名為cinder-volumes的邏輯卷組

[root@linux-node2 ~]# vgcreate cinder-volumes /dev/sdb
  Volume group "cinder-volumes" successfully created           
[root@linux-node2 ~]# vim /etc/lvm/lvm.conf
   ##### 在``devices``部分,添加一個過濾器,隻接受``/dev/sdb``裝置,拒絕其他所有裝置:
    devices {
    ...
    filter = [ "a/sdb/", "r/.*/"]
    filter = [ "a/sda/", "a/sdb/", "r/.*/"]
    filter = [ "a/sda/", "r/.*/"]           

存儲節點安裝

存儲節點安裝和控制節點類型,還是分為兩步:

  1. 軟體安裝。
  2. 從控制節點SCP配置檔案。

    安裝isci-target和cinder

[root@linux-node2 ~]# yum install -y openstack-cinder targetcli python-keystone

同步控制節點配置檔案

由于存儲節點大多數配置和控制節點相同,可以直接使用控制節點配置好的cinder.conf。再此基礎上進行小的變動。

[root@linux-node1 ~]# scp /etc/cinder/cinder.conf 192.168.56.12:/etc/cinder/           

設定Cinder後端驅動

[root@linux-node2 ~]# vim /etc/cinder/cinder.conf
[lvm]
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
iscsi_protocol = iscsi
iscsi_helper = lioadm
volume_backend_name=iSCSI-Storage           

在 [DEFAULT] 部分,啟用 LVM 後端:

[DEFAULT]
...
enabled_backends = lvm


[DEFAULT]
glance_api_servers = http://192.168.56.11:9292           

啟動塊存儲卷服務及其依賴的服務,并将其配置為随系統啟動:

# systemctl enable openstack-cinder-volume.service target.service
 # systemctl start openstack-cinder-volume.service target.service