天天看點

OpenStack-M版(Mitaka)搭建基于(Centos7.2)+++十一、Openstack塊存儲服務(cinder)

十一、Openstack塊存儲服務(cinder)

配置:我在計算點添加了一塊硬碟(sdb)用來當塊存儲用,在我這搭建中控制節點也就是塊存儲節點了

簡單介紹:

cinder主要有四個元件:cinder-api、cinder-volume、cinder-scheduler、cinder-backup

cinder-api:接受API請求,并将其路由到cinder-volume執行

cinder-volume:與塊存儲服務cinder-scheduler的程序進行直接互動

cinder-scheduler:選擇最優存儲提供節點來建立卷

cinder-backup:提供任何種類備份卷到一個備份存儲提供者

後面操作都将在控制節點上

1.進入SQL建立cinder資料庫并授予權限

mysql -uroot -p
           
CREATE DATABASE cinder;

GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY '123456';  
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY '123456';
           

2.建立cinder使用者(需要管理者權限) . admin-openrc

openstack user create --domain default --password-prompt cinder

[[email protected] ~]# . admin-openrc
[[email protected] ~]# openstack user create --domain default --password-prompt cinder
User Password:
Repeat User Password:
+-----------+----------------------------------+
| Field     | Value                            |
+-----------+----------------------------------+
| domain_id | b24b3093654b4ba4be706fe675a03b2d |
| enabled   | True                             |
| id        | abf7418a5e90422cab6ae4df523cd850 |
| name      | cinder                           |
+-----------+----------------------------------+
           

3.添加 admin 角色到 cinder 使用者上

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

此操作無傳回

4.建立 cinder 和 cinderv2 服務實體

openstack service create --name cinder --description "OpenStack Block Storage" volume

[[email protected] ~]# openstack service create --name cinder \
>   --description "OpenStack Block Storage" volume
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Block Storage          |
| enabled     | True                             |
| id          | 148fef5f0fae4569b7f7d89d855c7066 |
| name        | cinder                           |
| type        | volume                           |
+-------------+----------------------------------+
           

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

[[email protected] ~]# openstack service create --name cinderv2 \
>   --description "OpenStack Block Storage" volumev2
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Block Storage          |
| enabled     | True                             |
| id          | a041d71904364c59a5e65ef49450db70 |
| name        | cinderv2                         |
| type        | volumev2                         |
+-------------+----------------------------------+
           

5. 建立塊裝置存儲服務的 API 入口點 (括号前面有“  \ ”)

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

volume:

[[email protected] ~]# openstack endpoint create --region RegionOne volume public http://controller:8776/v1/%(tenant_id)s
+--------------+-----------------------------------------+
| Field        | Value                                   |
+--------------+-----------------------------------------+
| enabled      | True                                    |
| id           | 764744c5a9ce488f98d65f6d9c38b86a        |
| interface    | public                                  |
| region       | RegionOne                               |
| region_id    | RegionOne                               |
| service_id   | 148fef5f0fae4569b7f7d89d855c7066        |
| service_name | cinder                                  |
| service_type | volume                                  |
| url          | http://controller:8776/v1/%(tenant_id)s |
+--------------+-----------------------------------------+
[[email protected] ~]# openstack endpoint create --region RegionOne volume internal http://controller:8776/v1/%(tenant_id)s
+--------------+-----------------------------------------+
| Field        | Value                                   |
+--------------+-----------------------------------------+
| enabled      | True                                    |
| id           | 563d6c54f3cd4ad293cd86aec1a7c20f        |
| interface    | internal                                |
| region       | RegionOne                               |
| region_id    | RegionOne                               |
| service_id   | 148fef5f0fae4569b7f7d89d855c7066        |
| service_name | cinder                                  |
| service_type | volume                                  |
| url          | http://controller:8776/v1/%(tenant_id)s |
+--------------+-----------------------------------------+
[[email protected] ~]# openstack endpoint create --region RegionOne  volume admin http://controller:8776/v1/%(tenant_id)s
+--------------+-----------------------------------------+
| Field        | Value                                   |
+--------------+-----------------------------------------+
| enabled      | True                                    |
| id           | ad5bf2d6772046958d6cbba29af5201d        |
| interface    | admin                                   |
| region       | RegionOne                               |
| region_id    | RegionOne                               |
| service_id   | 148fef5f0fae4569b7f7d89d855c7066        |
| service_name | cinder                                  |
| service_type | volume                                  |
| url          | http://controller:8776/v1/%(tenant_id)s |
+--------------+-----------------------------------------+
           

volume2:

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

[[email protected] ~]# openstack endpoint create --region RegionOne volumev2 public http://controller:8776/v2/%(tenant_id)s
+--------------+-----------------------------------------+
| Field        | Value                                   |
+--------------+-----------------------------------------+
| enabled      | True                                    |
| id           | aa5366acb5634b6dbd4dd3e86d8115be        |
| interface    | public                                  |
| region       | RegionOne                               |
| region_id    | RegionOne                               |
| service_id   | a041d71904364c59a5e65ef49450db70        |
| service_name | cinderv2                                |
| service_type | volumev2                                |
| url          | http://controller:8776/v2/%(tenant_id)s |
+--------------+-----------------------------------------+
[[email protected] ~]# openstack endpoint create --region RegionOne volumev2 internal http://controller:8776/v2/%(tenant_id)s
+--------------+-----------------------------------------+
| Field        | Value                                   |
+--------------+-----------------------------------------+
| enabled      | True                                    |
| id           | 0f0ea4d5f5914717b196f8b7cb6d17ae        |
| interface    | internal                                |
| region       | RegionOne                               |
| region_id    | RegionOne                               |
| service_id   | a041d71904364c59a5e65ef49450db70        |
| service_name | cinderv2                                |
| service_type | volumev2                                |
| url          | http://controller:8776/v2/%(tenant_id)s |
+--------------+-----------------------------------------+
[[email protected] ~]# openstack endpoint create --region RegionOne volumev2 admin http://controller:8776/v2/%(tenant_id)s
+--------------+-----------------------------------------+
| Field        | Value                                   |
+--------------+-----------------------------------------+
| enabled      | True                                    |
| id           | c616c24c31e34d20b6e860e609109ceb        |
| interface    | admin                                   |
| region       | RegionOne                               |
| region_id    | RegionOne                               |
| service_id   | a041d71904364c59a5e65ef49450db70        |
| service_name | cinderv2                                |
| service_type | volumev2                                |
| url          | http://controller:8776/v2/%(tenant_id)s |
+--------------+-----------------------------------------+
           

安裝配置:

1.安裝軟體包

yum install openstack-cinder lvm2 targetcli python-keystone

yum install openstack-cinder lvm2 targetcli python-keystone
           

2.修改配置檔案/etc/cinder/cinder.conf

vi /etc/cinder/cinder.conf

[DEFAULT]
rpc_backend = rabbit#啟用消息隊列
auth_strategy = keystone#啟用keystone認證
my_ip = 192.168.100.10#控制節點管理接口ip位址
enabled_backends = lvm#啟用 LVM 後端
glance_api_servers = http://controller:9292#配置鏡像api位置
配置資料庫通路

[database]
connection = mysql+pymysql://cinder:[email protected]/cinder

配置消息隊列

[oslo_messaging_rabbit]
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = 123456

配置認證服務通路

[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

[lvm](配置檔案中沒有直接添加在最後,不放心自己看看)
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver#配置LVM後端以LVM驅動結束
volume_group = cinder-volumes#卷組
iscsi_protocol = iscsi#配置iSCSI服務
iscsi_helper = lioadm#配置iSCSI服務


配置鎖路徑

[oslo_concurrency]
lock_path = /var/lib/cinder/tmp
           

3.初始化塊裝置服務的資料庫

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

[[email protected] ~]# su -s /bin/sh -c "cinder-manage db sync" cinder
Option "logdir" from group "DEFAULT" is deprecated. Use option "log-dir" from group "DEFAULT".
2017-11-16 10:58:23.327 16679 WARNING py.warnings [-] /usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py:241: NotSupportedWarning: Configuration option(s) ['use_tpool'] not supported
  exception.NotSupportedWarning

2017-11-16 10:58:24.219 16679 INFO migrate.versioning.api [-] 0 -> 1... 
2017-11-16 10:58:25.740 16679 INFO migrate.versioning.api [-] done
2017-11-16 10:58:25.740 16679 INFO migrate.versioning.api [-] 1 -> 2... 
2017-11-16 10:58:26.533 16679 INFO migrate.versioning.api [-] done
2017-11-16 10:58:26.534 16679 INFO migrate.versioning.api [-] 2 -> 3... 
2017-11-16 10:58:26.573 16679 INFO migrate.versioning.api [-] done
2017-11-16 10:58:26.574 16679 INFO migrate.versioning.api [-] 3 -> 4... 
2017-11-16 10:58:27.002 16679 INFO migrate.versioning.api [-] done
2017-11-16 10:58:27.003 16679 INFO migrate.versioning.api [-] 4 -> 5... 
2017-11-16 10:58:27.315 16679 INFO migrate.versioning.api [-] done
2017-11-16 10:58:27.315 16679 INFO migrate.versioning.api [-] 5 -> 6... 
...
...
...
2017-11-16 10:58:48.228 16679 INFO migrate.versioning.api [-] 68 -> 69... 
2017-11-16 10:58:48.248 16679 INFO migrate.versioning.api [-] done
2017-11-16 10:58:48.248 16679 INFO migrate.versioning.api [-] 69 -> 70... 
2017-11-16 10:58:48.262 16679 INFO migrate.versioning.api [-] done
2017-11-16 10:58:48.263 16679 INFO migrate.versioning.api [-] 70 -> 71... 
2017-11-16 10:58:48.274 16679 INFO migrate.versioning.api [-] done
2017-11-16 10:58:48.277 16679 INFO migrate.versioning.api [-] 71 -> 72... 
2017-11-16 10:58:48.289 16679 INFO migrate.versioning.api [-] done
           

4.建立LVM 實體卷 /dev/sdb

pvcreate /dev/sdb

[[email protected] ~]# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created
           

vgcreate cinder-volumes /dev/sdb

[[email protected] ~]# vgcreate cinder-volumes /dev/sdb
  Volume group "cinder-volumes" successfully created
           

5.修改配置檔案/etc/lvm/lvm.conf

vi /etc/lvm/lvm.conf

找到添加一個過濾器

devices {
filter = [ "a/sdb/", "r/.*/"]

}
           

完成安裝:

控制節點上啟動:

systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service openstack-cinder-volume.service target.service lvm2-lvmetad.service

systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service openstack-cinder-volume.service target.service lvm2-lvmetad.service

[[email protected] ~]# systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service openstack-cinder-volume.service target.service lvm2-lvmetad.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.
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.
Created symlink from /etc/systemd/system/sysinit.target.wants/lvm2-lvmetad.service to /usr/lib/systemd/system/lvm2-lvmetad.service.

[[email protected] ~]# systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service openstack-cinder-volume.service target.service lvm2-lvmetad.service
           

計算節點修改配置檔案/etc/nova/nova.conf

vi /etc/nova/nova.conf

配置計算節點使用塊裝置存儲

[cinder]
os_region_name = RegionOne
           

重新開機計算API

systemctl restart openstack-nova-api.service

驗證:

1.擷取管理者權限

. admin-openrc
           

2.列出服務元件以驗證是否每個程序都成功啟動

cinder service-list

[[email protected] ~]# . admin-openrc 
[[email protected] ~]# cinder service-list
+------------------+----------------+------+---------+-------+----------------------------+-----------------+
|      Binary      |      Host      | Zone |  Status | State |         Updated_at         | Disabled Reason |
+------------------+----------------+------+---------+-------+----------------------------+-----------------+
| cinder-scheduler |   controller   | nova | enabled |   up  | 2017-11-16T16:18:40.000000 |        -        |
|  cinder-volume   | [email protected] | nova | enabled |   up  | 2017-11-16T16:18:42.000000 |        -        |
+------------------+----------------+------+---------+-------+----------------------------+-----------------+
           

添加一塊雲盤:

1.登陸管理者賬号——選擇計算——卷——建立雲硬碟

OpenStack-M版(Mitaka)搭建基于(Centos7.2)+++十一、Openstack塊存儲服務(cinder)

2.建立雲硬碟

OpenStack-M版(Mitaka)搭建基于(Centos7.2)+++十一、Openstack塊存儲服務(cinder)

建立完成

OpenStack-M版(Mitaka)搭建基于(Centos7.2)+++十一、Openstack塊存儲服務(cinder)

3.選擇編輯雲硬碟———管理連接配接

OpenStack-M版(Mitaka)搭建基于(Centos7.2)+++十一、Openstack塊存儲服務(cinder)

4.使雲硬碟連接配接到雲主機

OpenStack-M版(Mitaka)搭建基于(Centos7.2)+++十一、Openstack塊存儲服務(cinder)

完成

OpenStack-M版(Mitaka)搭建基于(Centos7.2)+++十一、Openstack塊存儲服務(cinder)

5.虛拟機控制台檢視挂載的盤

你會發現多了一塊盤叫vdb

OpenStack-M版(Mitaka)搭建基于(Centos7.2)+++十一、Openstack塊存儲服務(cinder)

繼續閱讀