摘要: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点,诚邀业界同仁一同品鉴。