3.5. 从备份中恢复
在数据库故障或出现数据丢失的其他类型的事件后,使用您创建的备份来恢复数据。
如果将 cinder-backup 服务配置为使用 Ceph RBD 驱动程序,则只能将备份卷恢复到基于 RBD 的块存储(cinder)后端。
3.5.1. 从备份中恢复卷 复制链接链接已复制到粘贴板!
要从备份创建新卷,请完成以下步骤。
流程
查找您要使用的卷备份的 ID:
# cinder backup-list确保卷 ID 与您要恢复的卷 ID 匹配。
恢复卷备份:
# cinder backup-restore _BACKUP_ID_将 BACKUP_ID 替换为您要使用的卷备份的 ID。
如果您不再需要备份,请删除它:
# cinder backup-delete _BACKUP_ID_如果需要将备份的卷恢复到特定类型的卷,请使用 the-
volume选项将备份恢复到特定卷:# cinder backup-restore _BACKUP_ID --volume VOLUME_ID_注意如果您从加密备份中恢复卷,则必须加密目标卷类型。
3.5.2. 在块存储数据库丢失后恢复卷 复制链接链接已复制到粘贴板!
当块存储数据库丢失时,您无法恢复卷备份,因为数据库包含卷备份服务所需的元数据。但是,在创建卷备份后,您可以导出和存储元数据,该元数据由 backup_service 和 backup_url 值组成,以便在数据库丢失时恢复卷备份。如需更多信息,请参阅 第 3.1.1 节 “创建完整卷备份”。
如果您导出并存储了这个元数据,您可以将其导入到新的块存储数据库中,允许您恢复卷备份。
对于增量备份,您必须在恢复其中一个增量备份前导入所有导出的数据。
流程
以具有管理特权的用户身份,运行以下命令:
# cinder backup-import _backup_service_ _backup_url_使用您导出的元数据替换
backup_service和backup_url。例如,使用从 第 3.1.1 节 “创建完整卷备份” 导出的元数据:# cinder backup-import cinder.backup.drivers.swift eyJzdGF0dXMi...c2l6ZSI6IDF9 +----------+--------------------------------------+ | Property | Value | +----------+--------------------------------------+ | id | 77951e2f-4aff-4365-8c64-f833802eaa43 | | name | None | +----------+--------------------------------------+- 将元数据导入到块存储服务数据库后,您可以正常恢复卷,请参阅 第 3.5.1 节 “从备份中恢复卷”。
3.5.3. 取消备份恢复 复制链接链接已复制到粘贴板!
要取消备份恢复操作,请将备份的状态更改为 恢复 以外的任何内容。您可以使用 错误状态 来最大程度减少恢复是否成功的混乱。或者,您可以将值更改为 available。
$ openstack volume backup set --state error BACKUP_ID
备份取消是一种异步操作,因为备份驱动程序必须在取消备份前检测到状态更改。当目标卷中的状态更改为 available 时,取消即完成。
此功能目前在 RBD 备份中不可用。
如果在启动后取消恢复操作,则目标卷将无用处,因为无法知道数据量(如果有)实际被恢复。