跳转到: 导航, 搜索

RetainGlanceMetadata

总结

当从商业镜像创建可启动卷时,建议 Cinder 保留原始镜像中存储的 Glance 元数据。 此数据无需对最终用户可见。 意图是保留用于计费系统的许可和收费信息。

进一步地,当克隆带有保留元数据的卷时,元数据也应存储到克隆卷中。 克隆副本可以扩展元数据,但核心 Glance 数据应保持不变。 同样,意图是跟踪克隆实例并正确地为许可镜像收费。

发布说明

对最终用户的影响应尽可能小。 理想情况下,如果源镜像以不同的方式许可,例如按实例许可费或按小时使用费,则应在 describe-volume API 中反映这一点,以便用户可以清楚地看到从该卷启动的实例将以不同的费率收费。 实现此目的的最简单方法是以原始(且只读)形式显示元数据。 如果使用 Glance 替代方案,则没有最终用户更改,因为信息保留在 Glance 中。

原理

云提供商需要能够对某些镜像按实例或按使用率收取额外费用。 例如,商业云设备或具有使用或许可费用的操作系统。 意图是将此元数据保存到 Cinder/nova-volumes 表中,并根据需要将其数据传递到计费子系统中。

用户故事

  • 用户从镜像创建可启动卷。
  • 卷的来源和 Glance 元数据由 Cinder 保留。
  • 一旦从该卷启动实例,就会创建一个计费记录,引用 Glance 元数据。
  • 如果卷被克隆,Cinder 存储的元数据也会被克隆。

前提条件

设计

实现

需要在 Cinder 数据库中创建一个新表,名为 volume_glance_metadata,结构如下

id
volume_id
key
value

该表将以 key = value 对的形式保留 Glance 元数据,并与 volumes 表具有一对多关系。

迁移

未解决的问题