3.5. 从备份中恢复
在数据库故障或导致数据丢失的另一种事件类型后,使用您创建的备份来恢复数据。
如果将 cinder-backup 服务配置为使用 Ceph RBD 驱动程序,则只能将备份卷恢复到基于 RBD 的块存储(cinder)后端。
3.5.1. 从备份中恢复卷 复制链接链接已复制到粘贴板!
要从备份创建新卷,请完成以下步骤。
流程
查找您要使用的卷备份的 ID:
cinder backup-list
# cinder backup-listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 确保卷 ID 与您要恢复的卷 ID 匹配。
恢复卷备份:
cinder backup-restore _BACKUP_ID_
# cinder backup-restore _BACKUP_ID_Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 BACKUP_ID 替换为您要使用的卷备份的 ID。
如果您不再需要备份,请删除它:
cinder backup-delete _BACKUP_ID_
# cinder backup-delete _BACKUP_ID_Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您需要将备份卷恢复到特定类型的卷,请使用
--volume选项将备份恢复到特定卷:cinder backup-restore _BACKUP_ID --volume VOLUME_ID_
# cinder backup-restore _BACKUP_ID --volume VOLUME_ID_Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您从加密备份中恢复卷,则必须加密目标卷类型。
3.5.2. 在块存储数据库丢失后恢复卷 复制链接链接已复制到粘贴板!
当块存储数据库丢失时,您无法恢复卷备份,因为数据库包含卷备份服务所需的元数据。但是,在创建卷备份后,您可以导出和存储由 backup_service 和 backup_url 值组成的元数据,以便在数据库丢失时,您可以恢复卷备份。如需更多信息,请参阅 第 3.1.1 节 “创建完整卷备份”。
如果您导出并存储此元数据,您可以将其导入到新的块存储数据库,该数据库允许您恢复卷备份。
对于增量备份,您必须先导入所有导出数据,然后才能恢复其中一个增量备份。
流程
以具有管理特权的用户身份,运行以下命令:
cinder backup-import _backup_service_ _backup_url_
# cinder backup-import _backup_service_ _backup_url_Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
backup_service和backup_url替换为您导出的元数据。例如,使用从 第 3.1.1 节 “创建完整卷备份” 导出的元数据:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 将元数据导入到块存储服务数据库后,您可以正常恢复卷,请参阅 第 3.5.1 节 “从备份中恢复卷”。
3.5.3. 取消备份恢复 复制链接链接已复制到粘贴板!
要取消备份恢复操作,请将备份的状态改为 恢复 以外的任何状态。您可以使用 错误状态 来最小化与恢复成功相关的混淆。或者,您可以将值更改为 available。
openstack volume backup set --state error BACKUP_ID
$ openstack volume backup set --state error BACKUP_ID
备份取消是一种异步操作,因为备份驱动程序必须在取消备份前检测状态更改。当目标卷中状态变为 available 时,取消完成。
此功能目前在 RBD 备份上不可用。
如果在启动后取消恢复操作,则目标卷是无用的,因为无法知道实际恢复的数据量(如果有的话)。