备份多后端配置¶
https://blueprints.launchpad.net/cinder/+spec/backup-backends-configuration
添加一个新的配置节用于备份配置选项,以统一我们处理卷驱动程序的方式,并支持在一个服务中使用多个备份驱动程序。
问题描述¶
目前,所有备份相关的配置选项都定义在 [DEFAULT] 节中
[DEFAULT]
backup_driver = cinder.backup.drivers.ceph.CephBackupDriver
backup_ceph_user = cinder-backups
backup_ceph_pool = volume-backups
...
这导致备份相关的配置选项与 Cinder 通用配置混杂在一起。这种方法也不支持备份多后端。操作员只能通过配置多个 cinder-backup 服务来配置多个备份后端。
当前方法阻碍了通用备份的实现,因为驱动程序的 self.configuration 将无法看到在 [DEFAULT] 节中定义的必需配置。
用例¶
这里的核心用例是从 [DEFAULT] 节中解耦备份相关的配置,并引入 backup_type。
提议的变更¶
新的配置选项 ‘enabled_backup_backends’ 将包含一个启用的备份后端列表。这将实现与卷的 ‘enabled_backends’ 配置选项相同的方法。
所有备份相关的配置将被移动到新的后端特定节
[DEFAULT]
enabled_backup_backends = ceph_backup, ceph_backup_ssd
default_backup_type = ceph-backup-type
...
[ceph_backup]
backup_driver = cinder.backup.drivers.ceph.CephBackupDriver
backup_ceph_user = cinder-backups
backup_ceph_pool = volume-backups
[ceph_backup_ssd]
backup_driver = cinder.backup.drivers.ceph.CephBackupDriver
backup_ceph_user = cinder-backups
backup_ceph_pool = volume-backups-ssd
旧式的备份配置将在至少一个版本中得到支持,以遵循所有弃用策略。
使用多备份配置,我们还希望引入备份类型。这将帮助我们利用所有多后端优势。备份类型将遵循与卷类型相同的方法
__DEFAULT__ 备份类型将被引入,并且所有现有的备份都将被迁移到此备份类型。
default_backup_type 配置选项将被引入。
备份类型将拥有自己的额外规格。
备选方案¶
保持一切不变,并在代码中引入一些技巧,使卷驱动程序在通用备份功能的范围内作为备份驱动程序工作。
数据模型影响¶
新的备份类型表将被引入。我们将遵循与卷类型相同的方法,该方法对 Cinder 来说效果很好
BackupType +————–+————–+ | 字段 | 类型 | +————–+————–+ | created_at | datetime | | updated_at | datetime | | id | varchar(36) | | name | varchar(255) | | description | varchar(255) | | deleted | boolean | | is_public | boolean | +————–+————–+
BackupTypeProjects +—————-+————–+ | 字段 | 类型 | +—————-+————–+ | created_at | datetime | | updated_at | datetime | | id | varchar(36) | | project_id | varchar(36) | | backup_type_id | varchar(36) | | deleted | boolean | +—————-+————–+
BackupTypeExtraSpecs +—————-+————–+ | 字段 | 类型 | +—————-+————–+ | created_at | datetime | | updated_at | datetime | | key | varchar(255) | | value | varchar(255) | | deleted | boolean | +—————-+————–+
REST API 影响¶
将为备份类型实现新的 API 端点。它应该类似于卷类型 API。
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
无
性能影响¶
备份创建过程将包含更多数据库调用,但它不应该对性能产生太大影响。
其他部署者影响¶
操作员应该使用新的机制配置备份,并从旧式配置迁移。
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
e0ne
工作项¶
添加一个新的 ‘enabled_backup_backends’ 配置选项并弃用旧式配置
修改备份管理器以尊重新的配置
添加一些单元测试
Devstack 应该能够以新的方式配置 cinder 备份
操作员文档应该更新
API 参考应该更新
依赖项¶
无
测试¶
单元测试
现有的 tempest 测试将涵盖新的功能
文档影响¶
更新文档以描述新的配置选项
新的 REST API 端点将被记录