本頁面將逐步說明如何避免潛在的資料遺失問題,或解決還原虛擬機器 (VM) 附加磁碟備份時發生的還原失敗問題。
還原附加至 VM 的個別磁碟時,還原的磁碟資源及其基礎 PersistentVolumeClaim
(PVC) 資源可能會留下特定標籤。如未按照上述方式移除標籤,可能會導致:
- 後續完整 VM 還原作業期間發生失敗。
- 在後續完整 VM 還原期間,意外修改或替換還原磁碟的基礎 PVC,可能導致還原磁碟上的資料遺失。
事前準備
如要在還原 VM 連結的磁碟後清除標籤,您必須具備下列條件:
- 必要的身分與存取權角色。請要求機構 IAM 管理員授予您 DBS Debugger (
dbs-debugger
) 角色。 - 有權存取管理這些資源的叢集適當 kubeconfig 檔案。
- 已安裝並設定 kubectl 指令列工具。
清理標籤
您必須清除 VirtualMachineDisk
資源及其基礎 PersistentVolumeClaim
(PVC) 資源。
清除 VM 磁碟標籤
如要清除還原 VM 磁碟的標籤,請按照下列步驟操作:
取得管理 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
替換為還原的 VM 名稱。(選用) 如要確認
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
:還原的 VM 磁碟名稱。
從 PVC 移除備份範圍標籤。標籤鍵後方的尾端連字號表示要移除標籤:
kubectl label pvc -n NAMESPACE RESTORED_VM_DISK_NAME bpvms/VM_NAME-
將
VM_NAME
替換為還原的 VM 名稱。(選用) 如要確認
bpvms/VM_NAME
標籤已移除,可以重新執行對應的kubectl get
指令,並根據特定資源類型和叢集進行調整:kubectl get pvc -n NAMESPACE \ VM_NAME