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

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               |
+--------------------------------+--------------------------------------+
优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/70813

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。