通用备份实现¶
https://blueprints.launchpad.net/cinder/+spec/generic-backup-implementation
通用备份实现将允许我们使用任何支持的卷后端作为备份存储。因此,我们不需要为支持的后端实现特定的备份驱动程序。
问题描述¶
我们现在有不同的备份和卷驱动程序。这就是为什么如果我们想在相同的存储上使用备份,我们必须将卷驱动程序的一部分重新实现为备份驱动程序。
用例¶
能够将任何 cinder 支持的存储后端用于备份。
提议的变更¶
像卷迁移一样,在基础卷驱动程序中实现通用的备份实现。在此之后,供应商可以轻松地为他们的驱动程序实现存储辅助备份。
我们将为 Swift、Google Cloud Storage 等存储提供基础备份驱动程序类,这些类将仅实现与备份相关的特性。
这将允许备份到存储 A 的卷恢复到存储 B 上的卷。
Cinder 不应允许将相同的存储同时用于卷和备份。在这种情况下,备份驱动程序初始化应失败。如果存储支持不同的池,Cinder 将允许在相同的存储上创建备份,但使用不同的池。
我们不需要在 Cinder 中提供“备份和卷在同一存储中”的功能,即使是可配置的,因为我们可以使用快照或克隆卷来实现它。备份应在不同的存储中,或者至少在另一个池中。
作为通用实现,cinder 将使用与通用卷迁移相同的机制
在目标存储上创建卷
将源卷和目标卷都附加到 cinder 节点
使用 ‘dd’ 工具复制卷数据
将两个卷从 cinder 节点分离
如果卷“正在使用”,我们将创建临时快照并从中进行备份。
我们不能在不同的存储之间使用“克隆卷”功能。
厂商特定更改¶
供应商或驱动程序维护者可以实现特定于供应商的备份实现,以使用存储 API 以获得更快的备份过程。
备选方案¶
遵循当前使用单独的卷和备份驱动程序的方法。
数据模型影响¶
无
REST API 影响¶
无
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
无
性能影响¶
备份到块后端可能比备份到 swift 更快。这意味着备份到块存储可能比备份到对象存储更快。
其他部署者影响¶
操作员应该能够配置备份存储和 cinder 备份驱动程序。
开发人员影响¶
卷驱动程序可以实现特定于供应商的备份实现
实现¶
负责人¶
- 主要负责人
Ivan Kolodyazhny <e0ne@e0ne.info>
- 其他贡献者
卷驱动程序维护者
工作项¶
待定 (TDB)
依赖项¶
无
测试¶
单元测试
Tempest 测试应在新的功能组中实现
文档影响¶
操作员文档应根据规范实现进行更新。