Rocky版新功能集锦之二:Cinder

摘要:8月31日,备受业界关注的OpenStack第18个版本Rocky正式发布。在人工智能,机器学习,NFV和边缘计算等用户的驱动下,Rocky版本的OpenStack变得比以往更强大,它带来了数十种增强功能,并支持各种硬件架构,包括裸机管理服务等,这些更新和升级能够很好的满足基础设施的新需求。OpenStack正力争为业界提供一个开放,完善,稳定,功能齐全的最优解决方案。今天将围绕Rocky版本的Cinder项目,对项目的新特性进行展示,业界需要掌握的关键点都在这里。

Cinder简介

Cinder即块存储服务,为实例提供了块存储设备。块存储服务提供了管理卷的基础架构以及通过与计算服务nova的合作,能够将卷挂载到实例上。块存储服务同时能管理卷的快照、卷的备份以及卷的类型。

Cinder架构及流程图

Cinder组件解读

cinder-api:接收API请求,同时将请求送到cinder-volume中来执行操作。

cinder-volume:与底层存储、cinder-scheduler以及消息队列等诸多进行直接交互。运行cinder-volume的节点被称作为存储节点。现在有很多的底层driver来适配不同的存储后端,例如rbd(ceph集群),lvm,nfs等。

cinder-scheduler:调度器用来选择合适的cinder-volume节点来进行volume的最终创建。其功能类似于计算服务中的nova-scheduler。

cinder-backup:备份服务提供了将任何类型的volume备份至存储后端。和cinder-volume类似,拥有driver的设计架构,适配了很多的存储后端,例如ceph,swift等。

Cinder Rocky新特性

scheduler插件能获知operation类型

现在对于scheduler插件来说,operation的类型是可知的,例如操作到底是create_volume还是migrate_volume是可以从RequestSpec中获取。这样带来的好处就是,厂商各自写的scheduler就可以针对某些特定的操作进行过滤,而不必所有的操作。现在支持的operation值有如下:

- create_volume
- extend_volume
- create_snapshot
- retype_volume
- migrate_volume
- manage_existing
- manage_existing_snapshot
- create_group

Code Reivew链接:点击这里

随容量变化的QoS规格

R版本之前,已经支持设置固定QoS的功能。现在能依据比例决定性能,设置per_gb容量的QoS规格即容量的大小决定了性能的高低。一个卷类型可以绑定多个QoS规格,最后传给消费者生效。支持的QoS规格有如下:

- read_iops_sec_per_gb // 每秒每GiB的读IOPs
- write_iops_sec_per_gb // 每秒每GiB的写IOPs
- total_iops_sec_per_gb // 每秒每GiB的总IOPs
- read_bytes_sec_per_gb // 每秒每GiB的读吞吐量(字节)
- write_bytes_sec_per_gb // 每秒每GiB的写吞吐量(字节)
- total_bytes_sec_per_gb // 每秒每GiB的总吞吐量(字节)

例如:设置total_iops_sec_per_gb为30,total_bytes_sec_per_gb为1048576(1MiB),然后根据这个QoS创建100GiB的volume,则最后volume的限制为3000总IOPs和100MiB/s吞吐量。

Code Review链接:点击这里

随容量变化的最小值QoS规格

由于过小的volume而导致分配到计算结果非常小的IOPs或者吞吐量。由此,可以设置per_gb的最小值来保证可以分配到比较客观的QoS。支持的QoS规格有如下:

- read_iops_sec_per_gb_min // 每秒每GiB的最小读IOPs
- write_iops_sec_per_gb_min // 每秒每GiB的最小写IOPs
- total_iops_sec_per_gb_min // 每秒每GiB的最小总IOPs
- read_bytes_sec_per_gb_min // 每秒每GiB的最小读吞吐量(字节)
- write_bytes_sec_per_gb_min // 每秒每GiB的最小写吞吐量(字节)
- total_bytes_sec_per_gb_min // 每秒每GiB的最小总吞吐量(字节)

Code Review链接:点击这里

备份支持设置可用域AZ

从微版本3.51及以上开始,cinder backup的创建支持接收可用域AZ即指定备份存放的AZ。可以通过CLI来创建指定AZ,如下命令:

`cinder --os-volume-api-version 3.51 backup-create <volume> --availability-zone AVAILABILITY_ZONE ……`

Code Review链接:点击这里

卷类型支持设置可用域AZ

对于卷类型,AZ已经被支持了,如下:

- availability_zones现在已经是AZ volume type的一个预留值。管理员可以通过为volume type设置key/value例如availability_zones: az1,az2来做AZ的限制。
- availability_zones只能在creating或者retyping卷的时候用来过滤backends。
- 从微版本3.52及以上开始,卷类型能通过extra spec进行过滤查询。

Code Review链接:点击这里

备份服务支持多线程

Cinder backup服务现在支持运行多进程来尽可能的利用多核的优势。在通过并发执行多个压缩备份或者恢复的时候,性能方面有显著的提升。进程数量可以通过`backup_worker`进行配置。

Code Review链接:点击这里

从image创建volume时添加image签名认证

在glance创建image时,如果extra_properties中存在CERT_UUID、HASH_METHOD、SIGNATURE以及KEY_TYPE时,会生成image的签名。此时,如果从image创建volume,则会对image进行签名认证,如果签名认证失败,则不会创建相应的volume,状态置为error。

默认现在为开启签名认证,当然管理员也可以通过更新verify_glance_signatures来更改行为。

同时,会往cinder库中的volume_glance_metadata表中添加一个附加的image元数据signature_verified来标识在创建的过程中签名认证是否被执行了。

Code Review链接:点击这里

cinder-manage命令新增reset_active_backend

场景为,A为主节点,B为从节点,当A挂掉后,故障转移从A到B后,需要一个机制能够将B提升为master backend,这样B能够复制到重新准备的C后端。

因此,命令reset_active_backend能够直接重置backend而不需要手动的修改数据库。

usage: cinder-manage db reset_active_backend [-h] [--enable-replication]
                                             [--active-backend-id ACTIVE_BACKEND_ID]
                                             --backend-host BACKEND_HOST
optional arguments:
  -h, --help            show this help message and exit
  --enable-replication  Set replication status to enabled (default: False).
  --active-backend-id ACTIVE_BACKEND_ID
                        Change the active backend ID (default: None).
  --backend-host BACKEND_HOST
                        The backend host name.

Code Review链接:点击这里

RBD驱动支持Active-Active的复制

RBD驱动添加支持Active-Active的复制。允许用户配置multiple volume backends,它们参与复制且均来自于同一集群的成员。

Code Review链接:点击这里

针对RBD驱动的rbd_exclusive_cinder_pool参数设置

如果查询每一个image(rbd)的预分配的大小,消耗大量的时间去采集provisioned_capacity_gb,而此时所使用的pool只供给cinder服务使用,那么为了提高reporting的速度以及取消大小的采集,我们可以设置rbd_exclusive_cinder_pool此参数。

Code Review链接:点击这里

RBD驱动list_manageable_snapshots

通过RBD驱动获取rbd backend中可管理的snapshots。

Code Review链接:点击这里

RBD驱动报告backend状态

在获取volume service状态时,返回backend_state字段用于标识backend状态。
Code Review链接:点击这里

以上是对Cinder Rocky的新特性进行简单概述,欲了解其他第三方驱动更新及其他特性,可以参考“链接”,掌握详细信息。


搞个大事件

值此Rocky版本发布之际,九州云将于10月10日上午10:00,正式线上同步发布全球首款基于 Rocky版本第七代全新开源云管理平台 ——Animbus® 7.0系列产品。

10月10日10点,诚邀业界同仁一同品鉴。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值