RetainGlanceMetadata
- Launchpad 条目: https://blueprints.launchpad.net/cinder/+spec/retain-glance-metadata-for-billing
- 创建时间: 2012年8月13日
- 贡献者: Dermot Tynan
总结
当从商业镜像创建可启动卷时,建议 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 表具有一对多关系。