3.4. 恢复备份
创建块存储卷备份后,您可以根据需要恢复这个备份的数据。
您可以使用以下方法之一恢复备份:
- 将备份恢复到您指定的卷。如需更多信息,请参阅将备份恢复到特定卷。
- 将备份恢复到新卷。如需更多信息,请参阅将备份恢复到新卷。
当块存储服务数据库遇到灾难丢失时,您无法恢复任何备份,除非您导出并保存其元数据。如需更多信息,请参阅保护您的备份。
只有项目管理员可以取消恢复卷备份。如需更多信息,请参阅 取消恢复备份。
3.4.1. 将备份恢复到特定卷
您可以将卷备份恢复到您创建的 可用
卷。
如果您从加密备份中恢复卷,则必须加密目标卷类型。
流程
-
以
stack
用户身份登录 undercloud 主机。 查找
stackrc
undercloud 凭证文件:$ source ~/stackrc
列出备份以获取您要恢复的备份的名称或 ID:
$ openstack volume backup list
例如:
+--------------------------------------+---------+-------------+-----------+------+ | ID | Name | Description | Status | Size | +--------------------------------------+---------+-------------+-----------+------+ | 83dadc43-2aa9-4c0b-bc05-a12203a8f4cb | vol1bu2 | None | available | 1 |
列出卷:
$ openstack volume list
确保所需卷的状态
可用
,然后获取此卷的名称或 ID。例如:+--------------------------------------+----------------+-----------+------+--------------------------------+ | ID | Name | Status | Size | Attached to | +--------------------------------------+----------------+-----------+------+--------------------------------+ | 654e2be8-bc79-4528-96a7-5f773d31c201 | vol_3 | available | 1 | |
将备份恢复到卷:
$ openstack volume backup restore <backup> <volume>
-
将
<backup
> 替换为块存储卷备份的名称或 ID。 将
<volume
> 替换为可用
Block Storage 卷的名称或 ID。例如:
$ openstack volume backup restore vol1bu2 vol_3 +-------------+--------------------------------------+ | Field | Value | +-------------+--------------------------------------+ | backup_id | 83dadc43-2aa9-4c0b-bc05-a12203a8f4cb | | volume_id | 654e2be8-bc79-4528-96a7-5f773d31c201 | | volume_name | vol_3 | +-------------+--------------------------------------+
-
将
-
验证此命令提供的
backup_id
对应于恢复的备份 ID,并且volume_name
和volume_id
值对应于指定卷的名称和 ID。 如果您不再需要备份,请删除备份:
$ openstack volume backup delete <backup>
3.4.2. 将备份恢复到新卷
在恢复块存储卷的备份时,您可以创建新卷。
流程
-
以
stack
用户身份登录 undercloud 主机。 查找
stackrc
undercloud 凭证文件:$ source ~/stackrc
列出备份以获取您要恢复的备份的名称或 ID:
$ openstack volume backup list
例如:
+--------------------------------------+---------+-------------+-----------+------+ | ID | Name | Description | Status | Size | +--------------------------------------+---------+-------------+-----------+------+ | 83dadc43-2aa9-4c0b-bc05-a12203a8f4cb | vol1bu2 | None | available | 1 |
将备份恢复到新卷:
$ cinder backup-restore <backup>
将
<backup
> 替换为块存储卷备份的名称或 ID。例如:
$ cinder backup-restore vol1bu2 +-------------+-----------------------------------------------------+ | Property | Value | +-------------+-----------------------------------------------------+ | backup_id | 83dadc43-2aa9-4c0b-bc05-a12203a8f4cb | | volume_id | 296c853c-c749-4eb6-857a-57ec182232a6 | | volume_name | restore_backup_83dadc43-2aa9-4c0b-bc05-a12203a8f4cb | +-------------+-----------------------------------------------------+
验证此命令提供的
backup_id
对应于恢复的备份 ID。volume_id
值是创建卷的 ID。但是volume_name
可以是替换为备份卷名称的临时名称。列出卷以验证 ID 为
volume_id
的卷是否已创建,并获取此卷名称:$ openstack volume list
例如:
+--------------------------------------+----------------+-----------+------+--------------------------------+ | ID | Name | Status | Size | Attached to | +--------------------------------------+----------------+-----------+------+--------------------------------+ | 296c853c-c749-4eb6-857a-57ec182232a6 | vol_1 | available | 1 | |
如果您不再需要备份,请删除备份:
$ openstack volume backup delete <backup>
3.4.3. 取消恢复备份
项目管理员可以通过将备份的状态更改为 错误
来取消恢复卷备份。但是,当 Red Hat Ceph Storage 是备份存储库的后端时,您无法取消恢复备份。
如果您在启动后取消恢复备份,则目标卷是无用的,因为无法知道实际恢复的数据量(如果有的话)。
先决条件
- 您必须是一个项目管理员,才能取消恢复卷备份。
- 确保备份存储库的后端不是 Red Hat Ceph Storage。
流程
-
以
stack
用户身份登录 undercloud 主机。 查找
stackrc
undercloud 凭证文件:$ source ~/stackrc
列出备份以获取您要停止恢复的备份名称或 ID:
$ openstack volume backup list
将这个备份的状态更改为
错误
以取消其恢复操作:$ openstack volume backup set --state error <backup>
-
将 &
lt;backup
> 替换为您要恢复的卷备份的名称或 ID。
取消恢复是一种异步操作,因为备份存储库的后端必须在取消恢复前检测备份状态的变化。
-
将 &
验证
列出卷备份以验证是否已取消恢复:
$ openstack volume backup list
当备份状态变为
available
时,将取消恢复。