十一、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.登陸管理者賬号——選擇計算——卷——建立雲硬碟
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiclRnblN0LclHdpZXYyd2LcBzNvwVZ2x2bzNXak9CX90TQNNkRrFlQKBTSvwFbslmZvwFMwQzLcVmepNHdu9mZvwFVywUNMZTY18CX052bm9CXohWbjxGeHJmdKhEZ1ljMZZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39TNzETMwcTNyEjMwITM3EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
2.建立雲硬碟
建立完成
3.選擇編輯雲硬碟———管理連接配接
4.使雲硬碟連接配接到雲主機
完成
5.虛拟機控制台檢視挂載的盤
你會發現多了一塊盤叫vdb