支持在另一个存储数据库上导入备份

Launchpad 蓝图 URL

https://blueprints.launchpad.net/cinder/+spec/support-backup-import-on-another-storage-database

  • 此备份服务可以使用备份额外元数据,以便在不同的块存储上导入备份。

问题描述

  • 当前,卷备份只能在相同的块存储服务上恢复。这是因为从备份恢复卷需要块存储服务使用的数据库中可用的元数据。

  • 为了在另一个块存储数据库(例如,灾难恢复站点)上导入备份元数据,必须保存源数据库中可用的卷备份的元数据,然后将其与数据一起复制到另一个块存储站点。

  • 将导出并存储此元数据的本地备份服务与复制到另一个块存储站点的功能相结合,即使发生灾难性的数据库故障,也能完全恢复备份。

  • 此外,将卷备份与卷元数据一起使用,还可以提供卷的可移植性。具体来说,备份卷并导出其元数据将允许您在完全不同的块存储数据库甚至不同的云服务上恢复该卷。

用例

  • 当用户希望为了卷的可移植性目的或为了复制到灾难恢复站点而保存备份元数据和卷备份,并能够从另一个块存储站点上的备份恢复卷时。

提议的变更

  • 为了支持在不同的块存储数据库上导入备份,我们需要扩展分块备份驱动程序

    • 启用保存备份元数据和数据。

    • 添加一个 cinder 客户端 api 命令,该命令将解析备份元数据文件,并将该元数据导入到另一个块存储数据库。

    • 用户将能够使用 cinder backup restore api 在另一个块存储上恢复卷备份。

备选方案

仅支持本地存储上的存储。使用缓慢的手动备份和恢复方法。

数据模型影响

无。

REST API 影响

无。

安全影响

无。

通知影响

无。

其他最终用户影响

无。

性能影响

无。

其他部署者影响

无。

开发人员影响

无。

实现

负责人

主要负责人

ronen-mesonzhnik

其他贡献者

工作项

  • 实现 get_extra_metadata,它将返回备份的相应数据库信息作为编码字符串元数据。

  • 实现一个 cinder 客户端 api 命令,该命令可以接收备份元数据文件,并从中导入。

依赖项

无。

测试

无。

文档影响

  • 除了现有的命令 ‘cinder backup-import <METADATA>’ 之外,还将有一个可以接受文件的命令:‘backup-import-record-from-backup-metadata-file <file_path>’

参考资料