CentOS7安裝OpenStack(Rocky版)-09.安裝Cinder存儲服務組件(控制節點)

本文分享openstack的Cinder存儲服務組件,cinder服務能夠提供雲磁盤(卷),相似阿里云云盤html

----------------------- 完美的分隔線  -----------------------------node

# openstack-Mitaka-cinder塊存儲服務中文文檔
# https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/cinder.htmlpython

# openstack-rocky版本Cinder官方安裝文檔
# https://docs.openstack.org/cinder/rocky/install/mysql

9.0.Cinder概述

OpenStack塊存儲服務(cinder)爲虛擬機添加持久的存儲,塊存儲提供一個基礎設施爲了管理卷,以及和OpenStack計算服務交互,爲實例提供卷。此服務也會激活管理卷的快照和卷類型的功能。正則表達式

塊存儲服務一般包含下列組件:redis

1)cinder-api
接受API請求,並將其路由到``cinder-volume``執行。
2)cinder-volume
與塊存儲服務和例如``cinder-scheduler``的進程進行直接交互。它也能夠與這些進程經過一個消息隊列進行交互。``cinder-volume``服務響應送到塊存儲服務的讀寫請求來維持狀態。它也能夠和多種存儲提供者在驅動架構下進行交互。
3)cinder-scheduler守護進程
選擇最優存儲提供節點來建立卷。其與``nova-scheduler``組件相似。
4)cinder-backup守護進程
``cinder-backup``服務提供任何種類備份捲到一個備份存儲提供者。就像``cinder-volume``服務,它與多種存儲提供者在驅動架構下進行交互。
5)消息隊列
在塊存儲的進程之間路由信息。sql

9.1.在控制節點安裝cinder存儲服務

# Install and configure controller node
https://docs.openstack.org/cinder/rocky/install/cinder-controller-install-rdo.html數據庫

1)建立cinder數據庫

# 建立相關數據庫,受權訪問用戶json

mysql -u root -p123456
----------------------------------------
CREATE DATABASE cinder;
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'cinder';
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'cinder';
flush privileges;
show databases;
select user,host from mysql.user;
exit
----------------------------------------

2)在keystone上面註冊cinder服務(建立服務證書)

# 在keystone上建立cinder用戶vim

cd /server/tools
source keystone-admin-pass.sh
openstack user create --domain default --password=cinder cinder
openstack user list

# 在keystone上將cinder用戶配置爲admin角色並添加進service項目,如下命令無輸出

openstack role add --project service --user cinder admin

# 建立cinder服務的實體

openstack service create --name cinderv2 --description "OpenStack Block Storage" volumev2
openstack service create --name cinderv3 --description "OpenStack Block Storage" volumev3
openstack service list

# 建立cinder服務的API端點(endpoint)

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
openstack endpoint list

# 實例演示:

[root@openstack01 tools]# openstack user create --domain default --password=cinder cinder
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | default                          |
| enabled             | True                             |
| id                  | a1a276d12c4e442ebc9250e4d4148166 |
| name                | cinder                           |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+
[root@openstack01 tools]# openstack user list
+----------------------------------+-----------+
| ID                               | Name      |
+----------------------------------+-----------+
| 26f88ba142d04735936d09caa7c76284 | placement |
| 82a27e65ca644a5eadcd54ff44e5e05b | glance    |
| a1a276d12c4e442ebc9250e4d4148166 | cinder    |
| cbb2b3830a8f44bc837230bca27ae563 | myuser    |
| cc55913a3da44a38939cdc7a2ec764cc | nova      |
| dd35b7396aa94342a01c807aaa707d21 | neutron   |
| e5dbfc8b394c41679fd5ce229cdd6ed3 | admin     |
+----------------------------------+-----------+
[root@openstack01 tools]# openstack role add --project service --user cinder admin
[root@openstack01 tools]# openstack service create --name cinderv2 --description "OpenStack Block Storage" volumev2
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Block Storage          |
| enabled     | True                             |
| id          | 5342850f7fd04f999ab6c6f787baa610 |
| name        | cinderv2                         |
| type        | volumev2                         |
+-------------+----------------------------------+
[root@openstack01 tools]# openstack service create --name cinderv3 --description "OpenStack Block Storage" volumev3
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Block Storage          |
| enabled     | True                             |
| id          | cba2b834789f49f5a9fdac76c09c5fae |
| name        | cinderv3                         |
| type        | volumev3                         |
+-------------+----------------------------------+
[root@openstack01 tools]# openstack service list
+----------------------------------+-----------+-----------+
| ID                               | Name      | Type      |
+----------------------------------+-----------+-----------+
| 5342850f7fd04f999ab6c6f787baa610 | cinderv2  | volumev2  |
| 63c882889b204d81a9867f9b7c0ba7aa | keystone  | identity  |
| 6c31f22e259b460fa0168ac206265c30 | glance    | image     |
| 854ca66666c64e2fbeff1e9c5cc1c4df | nova      | compute   |
| 90b5d791df5e4634848c00ba35390865 | neutron   | network   |
| a79d818312b34c4c8879d7dbbd41a78c | placement | placement |
| cba2b834789f49f5a9fdac76c09c5fae | cinderv3  | volumev3  |
+----------------------------------+-----------+-----------+
[root@openstack01 tools]# openstack endpoint create --region RegionOne volumev2 public http://controller:8776/v2/%\(project_id\)s
+--------------+------------------------------------------+
| Field        | Value                                    |
+--------------+------------------------------------------+
| enabled      | True                                     |
| id           | 1412aab234bf4793bbb55bf938dfabe9         |
| interface    | public                                   |
| region       | RegionOne                                |
| region_id    | RegionOne                                |
| service_id   | 5342850f7fd04f999ab6c6f787baa610         |
| service_name | cinderv2                                 |
| service_type | volumev2                                 |
| url          | http://controller:8776/v2/%(project_id)s |
+--------------+------------------------------------------+
[root@openstack01 tools]# openstack endpoint create --region RegionOne volumev2 internal http://controller:8776/v2/%\(project_id\)s
+--------------+------------------------------------------+
| Field        | Value                                    |
+--------------+------------------------------------------+
| enabled      | True                                     |
| id           | 5421883053d84778b222ed24b424ad71         |
| interface    | internal                                 |
| region       | RegionOne                                |
| region_id    | RegionOne                                |
| service_id   | 5342850f7fd04f999ab6c6f787baa610         |
| service_name | cinderv2                                 |
| service_type | volumev2                                 |
| url          | http://controller:8776/v2/%(project_id)s |
+--------------+------------------------------------------+
[root@openstack01 tools]# openstack endpoint create --region RegionOne volumev2 admin http://controller:8776/v2/%\(project_id\)s
+--------------+------------------------------------------+
| Field        | Value                                    |
+--------------+------------------------------------------+
| enabled      | True                                     |
| id           | 4947b9f1a61f4e5c858e1a2d6dd426eb         |
| interface    | admin                                    |
| region       | RegionOne                                |
| region_id    | RegionOne                                |
| service_id   | 5342850f7fd04f999ab6c6f787baa610         |
| service_name | cinderv2                                 |
| service_type | volumev2                                 |
| url          | http://controller:8776/v2/%(project_id)s |
+--------------+------------------------------------------+
[root@openstack01 tools]# openstack endpoint create --region RegionOne volumev3 public http://controller:8776/v3/%\(project_id\)s
+--------------+------------------------------------------+
| Field        | Value                                    |
+--------------+------------------------------------------+
| enabled      | True                                     |
| id           | 594078e79fd44a8383a9dba42931ff06         |
| interface    | public                                   |
| region       | RegionOne                                |
| region_id    | RegionOne                                |
| service_id   | cba2b834789f49f5a9fdac76c09c5fae         |
| service_name | cinderv3                                 |
| service_type | volumev3                                 |
| url          | http://controller:8776/v3/%(project_id)s |
+--------------+------------------------------------------+
[root@openstack01 tools]# openstack endpoint create --region RegionOne volumev3 internal http://controller:8776/v3/%\(project_id\)s
+--------------+------------------------------------------+
| Field        | Value                                    |
+--------------+------------------------------------------+
| enabled      | True                                     |
| id           | 67735ee3f61d48aea3dc3338d67a1ca8         |
| interface    | internal                                 |
| region       | RegionOne                                |
| region_id    | RegionOne                                |
| service_id   | cba2b834789f49f5a9fdac76c09c5fae         |
| service_name | cinderv3                                 |
| service_type | volumev3                                 |
| url          | http://controller:8776/v3/%(project_id)s |
+--------------+------------------------------------------+
[root@openstack01 tools]# openstack endpoint create --region RegionOne volumev3 admin http://controller:8776/v3/%\(project_id\)s
+--------------+------------------------------------------+
| Field        | Value                                    |
+--------------+------------------------------------------+
| enabled      | True                                     |
| id           | fed47d708ea2407bb2a986a4796719b2         |
| interface    | admin                                    |
| region       | RegionOne                                |
| region_id    | RegionOne                                |
| service_id   | cba2b834789f49f5a9fdac76c09c5fae         |
| service_name | cinderv3                                 |
| service_type | volumev3                                 |
| url          | http://controller:8776/v3/%(project_id)s |
+--------------+------------------------------------------+
[root@openstack01 tools]# openstack endpoint list
+----------------------------------+-----------+--------------+--------------+---------+-----------+------------------------------------------+
| ID                               | Region    | Service Name | Service Type | Enabled | Interface | URL                                      |
+----------------------------------+-----------+--------------+--------------+---------+-----------+------------------------------------------+
| 022711a6476648bda1446ecb7668f315 | RegionOne | placement    | placement    | True    | public    | http://controller:8778                   |
| 1291aa2f71104ce69f9b05905fbc2c8a | RegionOne | placement    | placement    | True    | admin     | http://controller:8778                   |
| 1412aab234bf4793bbb55bf938dfabe9 | RegionOne | cinderv2     | volumev2     | True    | public    | http://controller:8776/v2/%(project_id)s |
| 1cba9e89dc91422390a5b987dbeffdb6 | RegionOne | neutron      | network      | True    | internal  | http://controller:9696                   |
| 2bcda9f77cdb4c06be6f35a3c3312e3d | RegionOne | neutron      | network      | True    | admin     | http://controller:9696                   |
| 3f293d128470468683d5f82a66301232 | RegionOne | placement    | placement    | True    | internal  | http://controller:8778                   |
| 43960ef2a79a45d49bfd22a2dbf4c2ce | RegionOne | nova         | compute      | True    | internal  | http://controller:8774/v2.1              |
| 4947b9f1a61f4e5c858e1a2d6dd426eb | RegionOne | cinderv2     | volumev2     | True    | admin     | http://controller:8776/v2/%(project_id)s |
| 5421883053d84778b222ed24b424ad71 | RegionOne | cinderv2     | volumev2     | True    | internal  | http://controller:8776/v2/%(project_id)s |
| 594078e79fd44a8383a9dba42931ff06 | RegionOne | cinderv3     | volumev3     | True    | public    | http://controller:8776/v3/%(project_id)s |
| 67735ee3f61d48aea3dc3338d67a1ca8 | RegionOne | cinderv3     | volumev3     | True    | internal  | http://controller:8776/v3/%(project_id)s |
| 7129fffdb2614227aca641b10635efdf | RegionOne | nova         | compute      | True    | admin     | http://controller:8774/v2.1              |
| 7226f8f9c7164214b815821b77ae3ce6 | RegionOne | glance       | image        | True    | admin     | http://controller:9292                   |
| 756084d018c948039d2ae55b13fc7d4a | RegionOne | glance       | image        | True    | internal  | http://controller:9292                   |
| 7f0461c745b340ef83372059782d22ee | RegionOne | nova         | compute      | True    | public    | http://controller:8774/v2.1              |
| b8dabe6c548e435eb2b1f7efe3b23236 | RegionOne | keystone     | identity     | True    | admin     | http://controller:5000/v3/               |
| eb72eb6ea51842feb67ba5849beea48c | RegionOne | keystone     | identity     | True    | internal  | http://controller:5000/v3/               |
| ed17939d7623456bb203bb7197fc16c4 | RegionOne | neutron      | network      | True    | public    | http://controller:9696                   |
| f13c44af4e8d45d5b0229ea870f2c24f | RegionOne | glance       | image        | True    | public    | http://controller:9292                   |
| f172f6159ad34fbd8e10e0d42828d8cd | RegionOne | keystone     | identity     | True    | public    | http://controller:5000/v3/               |
| fed47d708ea2407bb2a986a4796719b2 | RegionOne | cinderv3     | volumev3     | True    | admin     | http://controller:8776/v3/%(project_id)s |
+----------------------------------+-----------+--------------+--------------+---------+-----------+------------------------------------------+

# ok

3)安裝cinder相關軟件包

yum install openstack-cinder -y

4)快速修改cinder配置

openstack-config --set  /etc/cinder/cinder.conf database connection  mysql+pymysql://cinder:cinder@controller/cinder
openstack-config --set  /etc/cinder/cinder.conf DEFAULT transport_url  rabbit://openstack:openstack@controller
openstack-config --set  /etc/cinder/cinder.conf DEFAULT auth_strategy  keystone 
openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken auth_uri  http://controller:5000
openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken auth_url  http://controller:5000
openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken memcached_servers  controller:11211
openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken auth_type  password
openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken project_domain_name  default 
openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken user_domain_name  default
openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken project_name  service 
openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken username  cinder
openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken password  cinder
openstack-config --set  /etc/cinder/cinder.conf DEFAULT my_ip 192.168.1.81
openstack-config --set  /etc/cinder/cinder.conf oslo_concurrency lock_path  /var/lib/nova/tmp 

# 檢查生效的cinder配置

egrep -v "^#|^$" /etc/cinder/cinder.conf
grep '^[a-z]' /etc/cinder/cinder.conf

# 實例演示:

---------------------------------------------
[root@openstack01 tools]# egrep -v "^#|^$" /etc/cinder/cinder.conf
[DEFAULT]
transport_url = rabbit://openstack:openstack@controller
auth_strategy = keystone
my_ip = 192.168.1.81
[backend]
[backend_defaults]
[barbican]
[brcd_fabric_example]
[cisco_fabric_example]
[coordination]
[cors]
[database]
connection = mysql+pymysql://cinder:cinder@controller/cinder
[fc-zone-manager]
[healthcheck]
[key_manager]
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = cinder
password = cinder
[matchmaker_redis]
[nova]
[oslo_concurrency]
lock_path = /var/lib/nova/tmp
[oslo_messaging_amqp]
[oslo_messaging_kafka]
[oslo_messaging_notifications]
[oslo_messaging_rabbit]
[oslo_messaging_zmq]
[oslo_middleware]
[oslo_policy]
[oslo_reports]
[oslo_versionedobjects]
[profiler]
[sample_remote_file_source]
[service_user]
[ssl]
[vault]
---------------------------------------------
[root@openstack01 tools]# grep '^[a-z]' /etc/cinder/cinder.conf
transport_url = rabbit://openstack:openstack@controller
auth_strategy = keystone
my_ip = 192.168.1.81
connection = mysql+pymysql://cinder:cinder@controller/cinder
auth_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = cinder
password = cinder
lock_path = /var/lib/nova/tmp
---------------------------------------------

# ok

5)同步cinder數據庫

# 有35張表

su -s /bin/sh -c "cinder-manage db sync" cinder

# 驗證數據庫

mysql -h192.168.1.81 -ucinder -pcinder -e "use cinder;show tables;"

# 實例演示:

[root@openstack01 tools]# mysql -h192.168.1.81 -ucinder -pcinder -e "use cinder;show tables;"
+----------------------------+
| Tables_in_cinder           |
+----------------------------+
| attachment_specs           |
| backup_metadata            |
| backups                    |
| cgsnapshots                |
| clusters                   |
| consistencygroups          |
| driver_initiator_data      |
| encryption                 |
| group_snapshots            |
| group_type_projects        |
| group_type_specs           |
| group_types                |
| group_volume_type_mapping  |
| groups                     |
| image_volume_cache_entries |
| messages                   |
| migrate_version            |
| quality_of_service_specs   |
| quota_classes              |
| quota_usages               |
| quotas                     |
| reservations               |
| services                   |
| snapshot_metadata          |
| snapshots                  |
| transfers                  |
| volume_admin_metadata      |
| volume_attachment          |
| volume_glance_metadata     |
| volume_metadata            |
| volume_type_extra_specs    |
| volume_type_projects       |
| volume_types               |
| volumes                    |
| workers                    |
+----------------------------+

# ok

6)修改nova配置文件

# 配置nova調用cinder服務

openstack-config --set  /etc/nova/nova.conf cinder os_region_name  RegionOne

# 檢查生效的nova配置

grep '^[a-z]' /etc/nova/nova.conf |grep os_region_name

7)重啓nova-api服務

systemctl restart openstack-nova-api.service
systemctl status openstack-nova-api.service

8)啓動cinder存儲服務

# 須要啓動2個服務

systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service
systemctl status openstack-cinder-api.service openstack-cinder-scheduler.service

systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
systemctl list-unit-files |grep openstack-cinder |grep enabled

# 實例演示:

[root@openstack01 tools]# systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service
[root@openstack01 tools]# systemctl status openstack-cinder-api.service openstack-cinder-scheduler.service
● openstack-cinder-api.service - OpenStack Cinder API Server
   Loaded: loaded (/usr/lib/systemd/system/openstack-cinder-api.service; disabled; vendor preset: disabled)
   Active: active (running) since 二 2018-10-30 16:01:27 CST; 600ms ago
 Main PID: 19104 (cinder-api)
   CGroup: /system.slice/openstack-cinder-api.service
           └─19104 /usr/bin/python2 /usr/bin/cinder-api --config-file /usr/share/cinder/cinder-dist.conf --config-file /etc/cinder/cinder.conf --logfile /var/log/cinde...

10月 30 16:01:27 openstack01.zuiyoujie.com systemd[1]: Started OpenStack Cinder API Server.
10月 30 16:01:27 openstack01.zuiyoujie.com systemd[1]: Starting OpenStack Cinder API Server...

● openstack-cinder-scheduler.service - OpenStack Cinder Scheduler Server
   Loaded: loaded (/usr/lib/systemd/system/openstack-cinder-scheduler.service; disabled; vendor preset: disabled)
   Active: active (running) since 二 2018-10-30 16:01:27 CST; 700ms ago
 Main PID: 19105 (cinder-schedule)
   CGroup: /system.slice/openstack-cinder-scheduler.service
           └─19105 /usr/bin/python2 /usr/bin/cinder-scheduler --config-file /usr/share/cinder/cinder-dist.conf --config-file /etc/cinder/cinder.conf --logfile /var/log...

10月 30 16:01:27 openstack01.zuiyoujie.com systemd[1]: Started OpenStack Cinder Scheduler Server.
10月 30 16:01:27 openstack01.zuiyoujie.com systemd[1]: Starting OpenStack Cinder Scheduler Server...
[root@openstack01 tools]# systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-cinder-api.service to /usr/lib/systemd/system/openstack-cinder-api.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-cinder-scheduler.service to /usr/lib/systemd/system/openstack-cinder-scheduler.service.
[root@openstack01 tools]# systemctl list-unit-files |grep openstack-cinder |grep enabled     
openstack-cinder-api.service                  enabled 
openstack-cinder-scheduler.service            enabled 

# 至此,控制端的cinder服務安裝完畢,在dashboard上面能夠看到項目目錄中多了一個卷服務

# 接下來安裝塊存儲節點服務器storage node

9.2.在存儲節點服務器安裝cinder存儲服務

# 存儲節點建議單獨部署服務器(最好是物理機),測試時也能夠部署在控制節點或者計算節點
# 在本文,存儲節點使用LVM邏輯卷提供服務,須要提供一塊空的磁盤用以建立LVM邏輯卷
# 我這裏在VMware虛擬機增長一塊100GB的磁盤

1)安裝LVM相關軟件包

yum install lvm2 device-mapper-persistent-data -y

2)啓動LVM的metadata服務並配置開機自啓動

systemctl start lvm2-lvmetad.service
systemctl status lvm2-lvmetad.service

systemctl enable lvm2-lvmetad.service
systemctl list-unit-files |grep lvm2-lvmetad |grep enabled

3)建立LVM邏輯卷

# 檢查磁盤狀態

fdisk -l

# 建立LVM 物理卷 /dev/sdb

pvcreate /dev/sdb

# 建立 LVM 卷組 cinder-volumes,塊存儲服務會在這個卷組中建立邏輯卷

vgcreate cinder-volumes /dev/sdb

# 實例演示:

[root@openstack02 ~]# fdisk -l

磁盤 /dev/sda:536.9 GB, 536870912000 字節,1048576000 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標籤類型:dos
磁盤標識符:0x0003970d

   設備 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048  1044381695   521677824   83  Linux
/dev/sda3      1044381696  1048575999     2097152   82  Linux swap / Solaris

磁盤 /dev/sdb:107.4 GB, 107374182400 字節,209715200 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節

[root@openstack02 ~]# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created.
[root@openstack02 ~]# vgcreate cinder-volumes /dev/sdb
  Volume group "cinder-volumes" successfully created

# ok

4)配置過濾器,防止系統出錯

# 默認只會有openstack實例訪問塊存儲卷組,不過,底層的操做系統也會管理這些設備並嘗試將邏輯卷與系統關聯。
# 默認狀況下LVM卷掃描工具會掃描整個/dev目錄,查找全部包含lvm卷的塊存儲設備。若是其餘項目在某個磁盤設備sda,sdc等上使用了lvm卷,那麼掃描工具檢測到這些卷時會嘗試緩存這些lvm卷,可能致使底層操做系統或者其餘服務沒法正常調用他們的lvm卷組,從而產生各類問題,須要手動配置LVM,讓LVM卷掃描工具只掃描包含"cinder-volume"卷組的設備/dev/sdb,我這邊磁盤分區都是格式化的手工分區,目前不存在這個問題,如下是配置演示

vim /etc/lvm/lvm.conf
-----------------------------
devices {
filter = [ "a/sdb/", "r/.*/"]
}
-----------------------------

# 配置規則:

# 每一個過濾器組中的元素都以a開頭accept接受,或以 r 開頭reject拒絕,後面鏈接設備名稱的正則表達式規則。
# 過濾器組必須以"r/.*/"結束,過濾全部保留設備。
# 可使用命令:vgs -vvvv來測試過濾器。

# 注意:

# 若是存儲節點的操做系統磁盤/dev/sda使用的是LVM卷組,也須要將該設備添加到過濾器中,例如:
filter = [ "a/sda/", "a/sdb/", "r/.*/"]
# 若是計算節點的操做系統磁盤/dev/sda使用的是LVM卷組,也須要修改這些節點的/etc/lvm/lvm.conf,在過濾器中增長該類型的磁盤設備,例如:
filter = [ "a/sda/", "r/.*/"]

5)在存儲節點安裝配置cinder組件

yum install openstack-cinder targetcli python-keystone -y

6)在存儲節點快速修改cinder配置

openstack-config --set  /etc/cinder/cinder.conf database connection  mysql+pymysql://cinder:cinder@controller/cinder
openstack-config --set  /etc/cinder/cinder.conf DEFAULT transport_url  rabbit://openstack:openstack@controller
openstack-config --set  /etc/cinder/cinder.conf DEFAULT auth_strategy  keystone 
openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken www_authenticate_uri  http://controller:5000
openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken auth_url  http://controller:5000
openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken memcached_servers  controller:11211
openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken auth_type  password
openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken project_domain_name  default 
openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken user_domain_name  default
openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken project_name  service 
openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken username  cinder
openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken password  cinder
openstack-config --set  /etc/cinder/cinder.conf DEFAULT my_ip 192.168.1.82
openstack-config --set  /etc/cinder/cinder.conf lvm volume_driver cinder.volume.drivers.lvm.LVMVolumeDriver
openstack-config --set  /etc/cinder/cinder.conf lvm volume_group cinder-volumes
openstack-config --set  /etc/cinder/cinder.conf lvm iscsi_protocol  iscsi
openstack-config --set  /etc/cinder/cinder.conf lvm iscsi_helper  lioadm
openstack-config --set  /etc/cinder/cinder.conf DEFAULT enabled_backends  lvm
openstack-config --set  /etc/cinder/cinder.conf DEFAULT glance_api_servers  http://controller:9292
openstack-config --set  /etc/cinder/cinder.conf oslo_concurrency lock_path  /var/lib/cinder/tmp

# 若是存儲節點是雙網卡,選項my_ip須要配置存儲節點的管理IP,不然配置本機IP
# 檢查生效的cinder配置

egrep -v "^#|^$" /etc/cinder/cinder.conf
grep '^[a-z]' /etc/cinder/cinder.conf

# 實例演示:

[root@openstack02 ~]# egrep -v "^#|^$" /etc/cinder/cinder.conf
[DEFAULT]
transport_url = rabbit://openstack:openstack@controller
auth_strategy = keystone
my_ip = 192.168.1.82
enabled_backends = lvm
glance_api_servers = http://controller:9292
[backend]
[backend_defaults]
[barbican]
[brcd_fabric_example]
[cisco_fabric_example]
[coordination]
[cors]
[database]
connection = mysql+pymysql://cinder:cinder@controller/cinder
[fc-zone-manager]
[healthcheck]
[key_manager]
[keystone_authtoken]
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = cinder
password = cinder
[matchmaker_redis]
[nova]
[oslo_concurrency]
lock_path = /var/lib/cinder/tmp
[oslo_messaging_amqp]
[oslo_messaging_kafka]
[oslo_messaging_notifications]
[oslo_messaging_rabbit]
[oslo_messaging_zmq]
[oslo_middleware]
[oslo_policy]
[oslo_reports]
[oslo_versionedobjects]
[profiler]
[sample_remote_file_source]
[service_user]
[ssl]
[vault]
[lvm]
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
iscsi_protocol = iscsi
iscsi_helper = lioadm
---------------------------------------------------------
[root@openstack02 ~]# grep '^[a-z]' /etc/cinder/cinder.conf
transport_url = rabbit://openstack:openstack@controller
auth_strategy = keystone
my_ip = 192.168.1.82
enabled_backends = lvm
glance_api_servers = http://controller:9292
connection = mysql+pymysql://cinder:cinder@controller/cinder
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = cinder
password = cinder
lock_path = /var/lib/cinder/tmp
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
iscsi_protocol = iscsi
iscsi_helper = lioadm

7)在存儲節點啓動cinder服務並配置開機自啓動

# 須要啓動2個服務

systemctl start openstack-cinder-volume.service target.service
systemctl status openstack-cinder-volume.service target.service

systemctl enable openstack-cinder-volume.service target.service
systemctl list-unit-files |grep openstack-cinder |grep enabled
systemctl list-unit-files |grep target.service |grep enabled

# 實例演示:

[root@openstack02 ~]# systemctl start openstack-cinder-volume.service target.service
[root@openstack02 ~]# systemctl status openstack-cinder-volume.service target.service
● openstack-cinder-volume.service - OpenStack Cinder Volume Server
   Loaded: loaded (/usr/lib/systemd/system/openstack-cinder-volume.service; disabled; vendor preset: disabled)
   Active: active (running) since 二 2018-10-30 18:23:10 CST; 668ms ago
 Main PID: 2075 (cinder-volume)
    Tasks: 1
   CGroup: /system.slice/openstack-cinder-volume.service
           └─2075 /usr/bin/python2 /usr/bin/cinder-volume --config-file /usr/share/cinder/cinder-dist.conf --config-file /etc/cinder/cinder.conf --logfile /var/log/cinder/volume.log

10月 30 18:23:10 openstack02.zuiyoujie.com systemd[1]: Started OpenStack Cinder Volume Server.
10月 30 18:23:10 openstack02.zuiyoujie.com systemd[1]: Starting OpenStack Cinder Volume Server...

● target.service - Restore LIO kernel target configuration
   Loaded: loaded (/usr/lib/systemd/system/target.service; disabled; vendor preset: disabled)
   Active: active (exited) since 二 2018-10-30 18:23:11 CST; 49ms ago
  Process: 2076 ExecStart=/usr/bin/targetctl restore (code=exited, status=0/SUCCESS)
 Main PID: 2076 (code=exited, status=0/SUCCESS)

10月 30 18:23:10 openstack02.zuiyoujie.com systemd[1]: Starting Restore LIO kernel target configuration...
10月 30 18:23:11 openstack02.zuiyoujie.com target[2076]: No saved config file at /etc/target/saveconfig.json, ok, exiting
10月 30 18:23:11 openstack02.zuiyoujie.com systemd[1]: Started Restore LIO kernel target configuration.
[root@openstack02 ~]# systemctl enable openstack-cinder-volume.service target.service
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-cinder-volume.service to /usr/lib/systemd/system/openstack-cinder-volume.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/target.service to /usr/lib/systemd/system/target.service.
[root@openstack02 ~]# systemctl list-unit-files |grep openstack-cinder |grep enabled
openstack-cinder-volume.service               enabled 
[root@openstack02 ~]# systemctl list-unit-files |grep target.service |grep enabled
target.service                                enabled 

# 至此,在存儲節點安裝cinder服務就完成了

9.3.在控制節點進行驗證

1)獲取管理員變量

cd /server/tools/
source keystone-admin-pass.sh 

2)查看存儲卷列表

openstack volume service list

# 實例演示:

[root@openstack01 tools]# openstack volume service list
+------------------+-------------------------------+------+---------+-------+----------------------------+
| Binary           | Host                          | Zone | Status  | State | Updated At                 |
+------------------+-------------------------------+------+---------+-------+----------------------------+
| cinder-scheduler | openstack01.zuiyoujie.com     | nova | enabled | up    | 2018-10-31T10:55:19.000000 |
| cinder-volume    | openstack02.zuiyoujie.com@lvm | nova | enabled | up    | 2018-10-31T10:55:21.000000 |
+------------------+-------------------------------+------+---------+-------+----------------------------+

# 返回以上信息,表示cinder相關節點安裝完成

9.4.cinder雲磁盤使用建議

1)雲磁盤能夠進行磁盤遷移,擴容,縮容等操做,但不建議在生產環境進行嘗試,測試環境能夠嘗試,但也要注意備份數據

2)涉及重要數據的話儘可能仍是不使用雲磁盤,而採用本地磁盤存儲數據,若是出現問題至少各個磁盤數據是分開的,磁盤文件還在

3)總的來講,使用openstack部署企業私有云,生產環境用本地磁盤就好,測試環境能夠以嘗試使用雲磁盤

======== 完畢,呵呵呵呵 ========

相關文章
相關標籤/搜索