openstack 管理二十二 - cinder 连接多个存储 backend

简介: cinder backend使用 openstack 集群 cinder 服务存储用户数据, 提供数据安全保障利用 cinder 连接存储集群用于 openstack 云盘cinder 需要连接一个或多个存储 backend [一个鸡蛋不要老放到一个篮子]cinder 后端可以连接多种的 backend, 如: nfs, glusterfs, cinder 等等

cinder backend

使用 openstack 集群 cinder 服务存储用户数据, 提供数据安全保障
利用 cinder 连接存储集群用于 openstack 云盘
cinder 需要连接一个或多个存储 backend [一个鸡蛋不要老放到一个篮子]
cinder 后端可以连接多种的 backend, 如: nfs, glusterfs, cinder 等等

历史

cinder 与 GlusterFS

之前曾经使用 openstack 连接 GlusterFS 用于 cinder 后端存储
GlusterFS 经常会出现需要手动维护问题,  维护过程中严重占用网络带宽
因此后期把 GlusterFS 中数据迁移至 Ceph 中 (手动)

cinder 与独立 Ceph

弃用 GlusterFS 之后, 在一段时间内(24 months) 一直在使用 Ceph 集群
Ceph 总体上维护成本不高, 只会经常出现底层磁盘故障需要更换硬盘问题
Ceph 空间使用率不高, 我们使用 3 replication, 因此只可以使用默认空间 1/3
另外, Ceph 设定空间使用率在 80% 时触发报警, 那么实际可用空间为总容量的 33% * 80% = 26% 左右
当 Ceph 磁盘空间使用率在 100% 时, 将会出现灾难,  任何操作(增删改) 都无法操作, 必须通过扩容解决
后使用 Ceph 时, 也出现过 Ceph 集群扩容时间, 通过添加物理存储实现, 过程相当迂回曲折, 动魄惊心
ceph 扩容的确不是一个十分好的选择

cinder 与多 ceph backend

总结之间的使用习惯与经验, 在之前 Ceph 集群容量用光之前, 决定再添加一个新的 ceph 集群, 而不直接对其进行扩容

环境准备

ceph 集群
openstack cinder 配置

ceph 集群

集群创建

利用 kolla-ansible + docker 容器创建创建 ceph 集群(略)
在第一个 ceph 集群创建池 volumes
在第二个 ceph 集群创建池 dbalogs

创建用户

openstack cinder 在连接 ceph 时候, 需要指定一个用户

当前在第一个 ceph 集群中创建用户 cinder , 允许访问 volumes 池

ceph auth get-or-create client.cinder mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=volumes'

当前在第二个 ceph 集群中创建用户 cinder , 允许访问 dblogs 池

ceph auth get-or-create client.cinder mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=dbalogs'

openstack 集群

cinder 配置

针对第一个 ceph 集群的连接 (/etc/cinder/cinder.conf)

[CEPH_SATA]
glance_api_version=2
volume_backend_name=ceph_sata
rbd_ceph_conf=/etc/ceph/ceph.conf  (复制第一个 ceph 的配置文件到这里)
rbd_user=cinder                    (参考之前创建的 cinder 用户)
rbd_flatten_volume_from_snapshot=False
rados_connect_timeout=-1
rbd_max_clone_depth=5
volume_driver=cinder.volume.drivers.rbd.RBDDriver
rbd_store_chunk_size=4
rbd_secret_uuid=dc4f91c1-8792-4948-b68f-2fcea75f53b9  (第一个 ceph 集群的 uuid)
rbd_pool=volumes           (第一个 ceph 集群的池命名)
host=hh-yun-cinder.vclound.com   (当前主机命名, 用于 cinder-api 连接时候使用)

针对第二个 ceph 集群的连接 (/etc/cinder/cinder.conf)

[CEPH_SSD]
glance_api_version=2
volume_backend_name=ceph_ssd
rbd_ceph_conf=/etc/ceph/ceph2.conf  (复制第二个 ceph 的配置文件到这里)
rbd_user=cinder                    (参考之前创建的 cinder 用户)
rbd_flatten_volume_from_snapshot=False
rados_connect_timeout=-1
rbd_max_clone_depth=5
volume_driver=cinder.volume.drivers.rbd.RBDDriver
rbd_store_chunk_size=4
rbd_secret_uuid=4bf07d3e-a289-456d-9bd9-5a89832b413b  (第二个 ceph 集群的 uuid)
rbd_pool=dbalogs           (第二个 ceph 集群的池命名)
host=hh-yun-cinder.vclound.com   (当前主机命名, 用于 cinder-api 连接时候使用)

定义 cinder 使用两个 backend

enabled_backends=CEPH_SATA, CEPH_SSD

cinder 命令行验证

列出可用的 volume-type

[root@hh-yun-puppet-129021 ~(keystone_admin)]# cinder type-list
+--------------------------------------+----------------+
|                  ID                  |      Name      |
+--------------------------------------+----------------+
| 45fdd68a-ca0f-453c-bd10-17e826a1105e |   CEPH-SATA    |
| 919dc90f-c559-44c9-bc68-2d1dfbe3cf8a |   CEPH-SSD     |
+--------------------------------------+----------------+

列出详细信息

[root@hh-yun-puppet-129021 ~(keystone_admin)]# cinder extra-specs-list
+--------------------------------------+----------------+----------------------------------------------------+
|                  ID                  |      Name      |                    extra_specs                     |
+--------------------------------------+----------------+----------------------------------------------------+
| 45fdd68a-ca0f-453c-bd10-17e826a1105e |   CEPH-SATA    |       {u'volume_backend_name': u'ceph_sata'}       |
| 919dc90f-c559-44c9-bc68-2d1dfbe3cf8a |   CEPH-SSD     | {u'volume_backend_name': u'ceph_ssd'}              |
+--------------------------------------+----------------+----------------------------------------------------+

创建 cinder volume 方法, 通过自定 volume-type 定义在那个 ceph 集群中创建卷

[root@hh-yun-puppet-129021 ~(keystone_admin)]# cinder create --display-name terry-test --volume-type CEPH-SATA 10
+---------------------+--------------------------------------+
|       Property      |                Value                 |
+---------------------+--------------------------------------+
|     attachments     |                  []                  |
|  availability_zone  |                 nova                 |
|       bootable      |                false                 |
|      created_at     |      2017-01-20T07:44:33.371970      |
| display_description |                 None                 |
|     display_name    |              terry-test              |
|      encrypted      |                False                 |
|          id         | fbf5dc68-f671-49d1-a32f-7342e6609048 |
|       metadata      |                  {}                  |
|         size        |                  10                  |
|     snapshot_id     |                 None                 |
|     source_volid    |                 None                 |
|        status       |               creating               |
|       user_id       |   226e71f1c1aa4bae85485d1d17b6f0ae   |
|     volume_type     |              CEPH-SATA               |
+---------------------+--------------------------------------+

显示 volume

[root@hh-yun-puppet-129021 ~(keystone_admin)]# cinder show fbf5dc68-f671-49d1-a32f-7342e6609048
+--------------------------------+--------------------------------------+
|            Property            |                Value                 |
+--------------------------------+--------------------------------------+
|          attachments           |                  []                  |
|       availability_zone        |                 nova                 |
|            bootable            |                false                 |
|           created_at           |      2017-01-20T07:44:33.000000      |
|      display_description       |                 None                 |
|          display_name          |              terry-test              |
|           encrypted            |                False                 |
|               id               | fbf5dc68-f671-49d1-a32f-7342e6609048 |
|            metadata            |                  {}                  |
|     os-vol-host-attr:host      | hh-yun-cinder.vclound.com@CEPH_SATA  |
| os-vol-mig-status-attr:migstat |                 None                 |
| os-vol-mig-status-attr:name_id |                 None                 |
|  os-vol-tenant-attr:tenant_id  |   bb0b51d166254dc99bc7462c0ac002ff   |
|              size              |                  10                  |
|          snapshot_id           |                 None                 |
|          source_volid          |                 None                 |
|             status             |              available               |
|            user_id             |   226e71f1c1aa4bae85485d1d17b6f0ae   |
|          volume_type           |              CEPH-SATA               |
+--------------------------------+--------------------------------------+
目录
相关文章
|
4月前
|
存储 消息中间件 数据库
云计算|OpenStack|社区版OpenStack安装部署文档(八--- 存储服务cinder的安装部署---Rocky版)
云计算|OpenStack|社区版OpenStack安装部署文档(八--- 存储服务cinder的安装部署---Rocky版)
82 0
|
存储 负载均衡 监控
金鱼哥RHCA回忆录:CL210管理OPENSTACK网络--开放虚拟网络(OVN)简介
第六章 管理OPENSTACK网络--开放虚拟网络(OVN)简介
1234 0
金鱼哥RHCA回忆录:CL210管理OPENSTACK网络--开放虚拟网络(OVN)简介
|
6月前
|
存储 缓存 运维
openstack对接ceph存储
openstack对接ceph存储
|
11月前
Openstack架构构建及详解(7)--Cinder组件
Openstack架构构建及详解(7)--Cinder组件
93 0
|
块存储
【Openstack】排错:Cinder创建云硬盘状态错误解决
Cinder创建云硬盘状态错误,配置服务器时钟同步
3613 0
【Openstack】排错:Cinder创建云硬盘状态错误解决
|
存储 算法 API
3.2.3存储服务开源 Openstack|学习笔记
快速学习3.2.3存储服务开源 Openstack
594 0
3.2.3存储服务开源 Openstack|学习笔记
|
运维 网络协议 测试技术
金鱼哥RHCA回忆录:CL210管理OPENSTACK网络--网络配置选项+章节实验
第六章 管理OPENSTACK网络--网络配置选项+章节实验
499 1
金鱼哥RHCA回忆录:CL210管理OPENSTACK网络--网络配置选项+章节实验
|
存储 网络协议 安全
金鱼哥RHCA回忆录:CL210管理OPENSTACK网络--网络协议类型
第六章 管理OPENSTACK网络--网络协议类型
338 0
金鱼哥RHCA回忆录:CL210管理OPENSTACK网络--网络协议类型
Openstack架构构建及详解(7)--Cinder组件
本篇内容记录了Cinder组件的详解与安装。
247 0
Openstack架构构建及详解(7)--Cinder组件
|
存储 网络安全
【Openstack】Ceph 与Openstack存储对接
Ceph 与Openstack存储对接
4915 12
【Openstack】Ceph 与Openstack存储对接