未指定类型的卷到默认卷类型¶
https://blueprints.launchpad.net/cinder/+spec/untyped-volumes-default-volume-type
此蓝图建议使用默认卷类型,而不是允许用户创建未指定类型的卷。
问题描述¶
目前,用户可以创建没有卷类型的卷。由于卷的特性是由卷类型定义的,因此不应允许创建未指定类型的卷。
用例¶
大多数用户使用卷类型,如果始终将卷类型附加到卷,我们的代码会更简单且错误更少,因此我们应该强制所有部署使用卷类型。
提议的变更¶
此规范提出以下更改
在 cinder 数据库迁移或 cinder 服务启动时创建默认卷类型。默认卷类型将没有分配额外的规格,并命名为
__DEFAULT__如果已经存在名为
__DEFAULT__的卷类型,部署者需要在升级之前重命名或删除它添加在线迁移,将所有未指定类型的卷和快照转换为
__DEFAULT__卷类型为
default_volume_type配置选项设置默认值__DEFAULT__,以便在 cinder.conf 中未设置时选择默认值不允许通过 type-delete 删除
__DEFAULT__卷类型卷类型 (
__DEFAULT__) 的更新将由 MANAGE_POLICY 处理,默认情况下仅限管理员操作
备选方案¶
强制在创建卷时指定卷类型。
将其作为幕后数据库迁移进行,而不是依赖于升级检查器的手动干预。
将其作为最佳实践操作在卷管理器中进行,如果出于任何原因被排除在外,则迁移大多数部署,并跳过那些被排除的部署。
REST API 影响¶
无
数据模型影响¶
无
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
所有在未指定 volume-type 参数的情况下创建的卷都将与默认卷类型关联。
未指定类型的卷和快照将被分配
__DEFAULT__卷类型用户将不再能够创建卷类型为 None 的卷。
性能影响¶
无
其他部署者影响¶
无
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
Rajat Dhasmana <rajatdhasmana@gmail.com>
- 其他负责人
Eric Harney <eharney@redhat.com>
工作项¶
通过限制未指定类型的卷,我们需要进行以下更改
添加升级检查,以验证当前部署是否包含名为
__DEFAULT__的卷类型,否则升级将失败在 cinder 数据库迁移或服务启动时创建
__DEFAULT__卷类型添加升级检查,以验证在升级之前是否存在名为
__DEFAULT__的类型添加在线迁移,将所有未指定类型的卷和快照转换为
__DEFAULT__卷类型与将 default_volume_type 关联到卷的相关代码更改(如果用户未指定卷类型)
依赖项¶
无
测试¶
将实现单元测试、tempest 和其他相关测试。
文档影响¶
需要更新卷类型相关的文档。
参考资料¶
无