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               |
+--------------------------------+--------------------------------------+
目录
相关文章
|
存储 消息中间件 数据库
云计算|OpenStack|社区版OpenStack安装部署文档(八--- 存储服务cinder的安装部署---Rocky版)
云计算|OpenStack|社区版OpenStack安装部署文档(八--- 存储服务cinder的安装部署---Rocky版)
753 0
|
存储 消息中间件 算法
深入解析OpenStack Cinder:块存储服务详解
本文介绍了OpenStack及其块存储服务Cinder。OpenStack是一个开源云计算管理平台,提供基础设施即服务(IaaS),核心服务包括计算、网络、存储等。Cinder主要用于为虚拟机提供持久性块存储,具备多种功能,如卷操作、备份、快照及与实例的交互等。此外,还详细介绍了Cinder的工作流程、命令行操作及不同存储插件的使用。
2377 8
|
存储 API 调度
OpenStack核心组件Cinder
【8月更文挑战第4天】
1066 9
|
存储 固态存储 网络性能优化
OpenStack的块存储(Cinder)
【8月更文挑战第24天】
585 2
|
存储 运维 Swift
openstack cinder、swift运维命令
Cinder是OpenStack的块存储服务,提供虚拟机块设备功能,包括卷的创建、挂载等。它由cinder-api、cinder-scheduler和cinder-volume三个组件构成,前者处理请求,中间者负责调度,后者执行卷管理。Swift是OpenStack的分布式对象存储服务,高可用、持久性,适用于大文件存储。Swift架构对称,无单点故障,提供类似文件系统的简单逻辑和高效读写。Cinder关注虚拟机层面的块存储,而Swift则提供对象存储服务。命令示例展示了如何使用cinder和openstack命令操作云硬盘和Swift容器。
641 0
|
存储 缓存 运维
openstack对接ceph存储
openstack对接ceph存储
|
存储 API 数据库
(八)Open Stack(M)---Cinder安装和配置
(八)Open Stack(M)---Cinder安装和配置
343 0
|
网络协议 Linux 网络安全
openstack 云平台一体化部署(超详细)
openstack 云平台一体化部署(超详细)
2574 0
openstack 云平台一体化部署(超详细)
|
存储 弹性计算 资源调度
openstack组件部署 3
openstack组件部署
504 0
|
存储 数据安全/隐私保护 Docker
Kolla-ansible部署openStack
Kolla-ansible部署openStack
3362 11