在恢复附加了虚拟机的磁盘后清理标签

本页将引导您了解如何在使用从附加到虚拟机 (VM) 的磁盘的备份中恢复的磁盘时,防止潜在的数据丢失或恢复失败。

恢复附加到虚拟机的单个磁盘可能会在恢复的磁盘资源及其底层 PersistentVolumeClaim (PVC) 资源上留下特定标签。如果未能按上述说明移除标签,可能会导致:

  • 后续完整虚拟机恢复操作期间发生的故障。
  • 在后续的完整虚拟机恢复过程中,意外修改或替换了恢复的磁盘的底层 PVC,这可能会导致恢复的磁盘上的数据丢失。

准备工作

如需在恢复挂接到虚拟机的磁盘后清理标签,您必须具备以下条件:

  • 必要的身份和访问权限角色。请让您的组织 IAM 管理员向您授予 DBS Debugger (dbs-debugger) 角色。
  • 对管理这些资源的集群的相应 kubeconfig 文件的访问权限。
  • 已安装并配置 kubectl 命令行工具。

清理标签

您必须同时清理 VirtualMachineDisk 资源及其底层 PersistentVolumeClaim (PVC) 资源。

清理虚拟机磁盘标签

如需清理已恢复的虚拟机磁盘的标签,请按照以下步骤操作:

  1. 获取管理 API 服务器的 kubeconfig 文件,并设置 KUBECONFIG 环境变量:

    export KUBECONFIG=PATH_TO_MANAGEMENT_API_KUBECONFIG
    

    PATH_TO_MANAGEMENT_API_KUBECONFIG 替换为 kubeconfig 文件的路径。如需了解详情,请参阅区域管理 API 服务器资源

  2. 检查已恢复的 VirtualMachineDisk 资源是否存在于指定命名空间中:

    kubectl get virtualmachinedisks.virtualmachine.gdc.goog \
    -n NAMESPACE RESTORED_VM_DISK_NAME
    

    替换以下内容:

    • NAMESPACE:项目命名空间。
    • RESTORED_VM_DISK_NAME:使用前提条件中收集的值恢复的磁盘的完整名称。此变量的值可从 RESTORED_PREFIX-VM_DISK_NAME 派生。
  3. VirtualMachineDisk 资源中移除备份范围标签。标签键后面的尾随连字符表示移除:

    kubectl label virtualmachinedisks.virtualmachine.gdc.goog -n NAMESPACE \
        RESTORED_VM_DISK_NAME bpvms/VM_NAME-
    

    VM_NAME 替换为已恢复虚拟机的名称。

  4. 可选:如需验证 bpvms/VM_NAME 标签是否不再存在,您可以重新运行相应的 kubectl get 命令,并根据具体资源类型和集群进行调整:

    kubectl get virtualmachinedisks.virtualmachine.gdc.goog \
    -n NAMESPACE VM_NAME
    

清理 PVC 标签

如需清理底层 PVC 的标签,请按以下步骤操作:

  1. 获取组织基础架构集群的 kubeconfig 文件,并设置 KUBECONFIG 环境变量:

    export KUBECONFIG=PATH_TO_ORG_INFRA_KUBECONFIG
    

    PATH_TO_ORG_INFRA_KUBECONFIG 替换为 kubeconfig 文件的路径。

  2. 检查已恢复磁盘的底层 PVC 是否存在于指定命名空间中:

    kubectl get pvc -n NAMESPACE \
        RESTORED_VM_DISK_NAME
    

    替换以下内容:

    • NAMESPACE:项目命名空间。
    • RESTORED_VM_DISK_NAME:已恢复的虚拟机磁盘的名称。
  3. 从 PVC 中移除备份范围标签。标签键后面的尾随连字符表示移除:

    kubectl label pvc -n NAMESPACE RESTORED_VM_DISK_NAME bpvms/VM_NAME-
    

    VM_NAME 替换为已恢复虚拟机的名称。

  4. 可选:如需验证 bpvms/VM_NAME 标签是否不再存在,您可以重新运行相应的 kubectl get 命令,并根据具体资源类型和集群进行调整:

    kubectl get pvc -n NAMESPACE \
        VM_NAME