为卷的元数据添加备份 ID

https://blueprints.launchpad.net/cinder/+spec/add-volume-backup-id

问题描述

目前,最终用户可以从新创建的卷中看到来源(通过快照或镜像等)。但是,当最终用户恢复备份卷时,在卷显示响应中,我们无法看到其来源。这可能会给最终用户带来很多困惑。

用例

作为最终用户,我希望知道恢复的卷来自哪个备份资源。

提议的变更

  • 将属性 src_backup_id 添加到卷的元数据中,以记录新卷是从哪个备份创建的。当从一系列增量备份恢复时,src_backup_id 设置为用于恢复的最后一个增量备份。

添加到卷元数据后,src_backup_id 将出现在显示卷元数据的任何 API 响应中

  • 卷显示响应 (GET /v3/{project_id}/volumes/{volume_id})

  • 卷列表详细响应 (GET /v3/{project_id}/volumes/detail)

  • 卷元数据显示响应 (GET /v3/{project_id}/volumes/{volume_id}/metadata)

  • 卷元数据显示键响应,仅当键为 src_backup_id 时 (GET /v3/{project_id}/volumes/{volume_id}/metadata/{key})

厂商特定更改

备选方案

数据模型影响

REST API 影响

无。卷显示、卷列表详细和卷元数据显示响应当前定义为包含一个 metadata 元素,该元素要么是 JSON null,要么是包含键/值对列表的 JSON 对象。 src_backup_id 将出现在适当卷的此列表中,但它尊重当前的 API,并且不需要新的微版本。

安全影响

通知影响

其他最终用户影响

性能影响

其他部署者影响

开发人员影响

实现

负责人

玄延东

工作项

  • src_backup_id 添加到 volume 元数据

依赖项

测试

  • 添加相关的单元测试

  • 添加相关功能测试

  • 添加 tempest 测试

文档影响

发布说明应指出,由于这存储在卷元数据中,因此最终用户可以修改或删除它,因此操作员不应依赖于其存在用于管理或审计目的。

在管理员文档的某个地方添加类似的注释,可能是在 Cinder 编写的关于卷元数据的页面上(这可能当前不存在)。除了提醒管理员最终用户可以覆盖卷元数据之外,还应说明如何读取 src_backup_id(特别是关于从增量备份恢复时使用的 ID 的部分)。

参考资料