默认卷类型

从 Train 版本开始,不允许使用未定义类型的卷(即没有卷类型的卷)。为了便于此操作,Train 数据库迁移中包含了一个 __DEFAULT__ 卷类型。自 Train 版本发布以来,默认卷类型的处理得到了改进

  • default_volume_type 配置选项需要一个值。默认值为 __DEFAULT__

  • 删除当前配置的 default_volume_type 请求将会失败。(您可以删除该卷类型,但不能在它是配置选项值时删除它。)

  • Cinder 安装中始终必须定义至少一个卷类型。这由 type-delete 调用强制执行。

  • 如果 default_volume_type 配置错误(即,如果该值引用一个不存在的卷类型),则依赖于默认卷类型的请求(例如,未指定卷类型的 volume-create 请求)将导致 HTTP 500 响应。

每个项目的默认类型

我们已经覆盖了现有的 Cinder 默认卷类型,按项目划分,以便更轻松地管理复杂的部署。

随着此新的默认卷类型支持的引入,现在我们将拥有 2 种不同的默认卷类型。从更具体到更通用,它们是

  • 每个项目

  • 在 cinder.conf 中定义(默认为 __DEFAULT__ 类型)

因此,当用户创建一个没有定义卷类型(显式或在源中)的新卷时,Cinder 首先会查找适当的默认值,方法是检查数据库中是否存在针对特定项目的默认值,并使用它。如果不存在,它将像今天一样继续使用 cinder.conf 中的默认类型。

管理员和用户在创建卷时仍然需要小心正常的 Cinder 行为,因为 Cinder 只有在用户未在请求中选择一个或源中没有卷类型时,才会使用默认卷类型,这意味着如果我们

  • 提供卷类型创建卷

  • 从快照创建卷

  • 克隆卷

  • 从定义了 cinder_img_volume_type 元数据的镜像创建卷。

python-cinderclient 中有一组新的命令来匹配新的 REST API 端点

  • 设置默认值:cinder default-type-set <project-id> <type-name>

  • 取消设置默认值:cinder default-type-unset <project-id>

  • 列出默认值:cinder default-type-list [--project <project-id>]

默认情况下,限制访问设置、取消设置、获取或列出所有项目默认卷类型的策略设置为仅限管理员。