本页将引导您了解如何在使用从附加到虚拟机 (VM) 的磁盘的备份中恢复的磁盘时,防止潜在的数据丢失或恢复失败。
恢复附加到虚拟机的单个磁盘可能会在恢复的磁盘资源及其底层 PersistentVolumeClaim
(PVC) 资源上留下特定标签。如果未能按上述说明移除标签,可能会导致:
- 后续完整虚拟机恢复操作期间发生的故障。
- 在后续的完整虚拟机恢复过程中,意外修改或替换了恢复的磁盘的底层 PVC,这可能会导致恢复的磁盘上的数据丢失。
准备工作
如需在恢复挂接到虚拟机的磁盘后清理标签,您必须具备以下条件:
- 必要的身份和访问权限角色。请让您的组织 IAM 管理员向您授予 DBS Debugger (
dbs-debugger
) 角色。 - 对管理这些资源的集群的相应 kubeconfig 文件的访问权限。
- 已安装并配置 kubectl 命令行工具。
清理标签
您必须同时清理 VirtualMachineDisk
资源及其底层 PersistentVolumeClaim
(PVC) 资源。
清理虚拟机磁盘标签
如需清理已恢复的虚拟机磁盘的标签,请按照以下步骤操作:
获取管理 API 服务器的 kubeconfig 文件,并设置
KUBECONFIG
环境变量:export KUBECONFIG=PATH_TO_MANAGEMENT_API_KUBECONFIG
将
PATH_TO_MANAGEMENT_API_KUBECONFIG
替换为 kubeconfig 文件的路径。如需了解详情,请参阅区域管理 API 服务器资源。检查已恢复的
VirtualMachineDisk
资源是否存在于指定命名空间中:kubectl get virtualmachinedisks.virtualmachine.gdc.goog \ -n NAMESPACE RESTORED_VM_DISK_NAME
替换以下内容:
NAMESPACE
:项目命名空间。RESTORED_VM_DISK_NAME
:使用前提条件中收集的值恢复的磁盘的完整名称。此变量的值可从RESTORED_PREFIX
-VM_DISK_NAME
派生。
从
VirtualMachineDisk
资源中移除备份范围标签。标签键后面的尾随连字符表示移除:kubectl label virtualmachinedisks.virtualmachine.gdc.goog -n NAMESPACE \ RESTORED_VM_DISK_NAME bpvms/VM_NAME-
将
VM_NAME
替换为已恢复虚拟机的名称。可选:如需验证
bpvms/VM_NAME
标签是否不再存在,您可以重新运行相应的kubectl get
命令,并根据具体资源类型和集群进行调整:kubectl get virtualmachinedisks.virtualmachine.gdc.goog \ -n NAMESPACE VM_NAME
清理 PVC 标签
如需清理底层 PVC 的标签,请按以下步骤操作:
获取组织基础架构集群的 kubeconfig 文件,并设置
KUBECONFIG
环境变量:export KUBECONFIG=PATH_TO_ORG_INFRA_KUBECONFIG
将
PATH_TO_ORG_INFRA_KUBECONFIG
替换为 kubeconfig 文件的路径。检查已恢复磁盘的底层 PVC 是否存在于指定命名空间中:
kubectl get pvc -n NAMESPACE \ RESTORED_VM_DISK_NAME
替换以下内容:
NAMESPACE
:项目命名空间。RESTORED_VM_DISK_NAME
:已恢复的虚拟机磁盘的名称。
从 PVC 中移除备份范围标签。标签键后面的尾随连字符表示移除:
kubectl label pvc -n NAMESPACE RESTORED_VM_DISK_NAME bpvms/VM_NAME-
将
VM_NAME
替换为已恢复虚拟机的名称。可选:如需验证
bpvms/VM_NAME
标签是否不再存在,您可以重新运行相应的kubectl get
命令,并根据具体资源类型和集群进行调整:kubectl get pvc -n NAMESPACE \ VM_NAME