還原 VM 連接的磁碟後清除標籤

本頁面將逐步說明如何避免潛在的資料遺失問題,或解決還原虛擬機器 (VM) 附加磁碟備份時發生的還原失敗問題。

還原附加至 VM 的個別磁碟時,還原的磁碟資源及其基礎 PersistentVolumeClaim (PVC) 資源可能會留下特定標籤。如未按照上述方式移除標籤,可能會導致:

  • 後續完整 VM 還原作業期間發生失敗。
  • 在後續完整 VM 還原期間,意外修改或替換還原磁碟的基礎 PVC,可能導致還原磁碟上的資料遺失。

事前準備

如要在還原 VM 連結的磁碟後清除標籤,您必須具備下列條件:

  • 必要的身分與存取權角色。請要求機構 IAM 管理員授予您 DBS Debugger (dbs-debugger) 角色。
  • 有權存取管理這些資源的叢集適當 kubeconfig 檔案。
  • 已安裝並設定 kubectl 指令列工具。

清理標籤

您必須清除 VirtualMachineDisk 資源及其基礎 PersistentVolumeClaim (PVC) 資源。

清除 VM 磁碟標籤

如要清除還原 VM 磁碟的標籤,請按照下列步驟操作:

  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 替換為還原的 VM 名稱。

  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:還原的 VM 磁碟名稱。
  3. 從 PVC 移除備份範圍標籤。標籤鍵後方的尾端連字號表示要移除標籤:

    kubectl label pvc -n NAMESPACE RESTORED_VM_DISK_NAME bpvms/VM_NAME-
    

    VM_NAME 替換為還原的 VM 名稱。

  4. (選用) 如要確認 bpvms/VM_NAME 標籤已移除,可以重新執行對應的 kubectl get 指令,並根據特定資源類型和叢集進行調整:

    kubectl get pvc -n NAMESPACE \
        VM_NAME