VM にアタッチされたディスクの復元後にラベルをクリーンアップする

このページでは、仮想マシン(VM)に接続されたディスクのバックアップから復元されたディスクを使用する場合に、データの損失や復元エラーを防ぐ方法について説明します。

VM にアタッチされた個々のディスクを復元すると、復元されたディスク リソースとその基盤となる PersistentVolumeClaim(PVC)リソースに特定のラベルが残ることがあります。上記の説明どおりにラベルを削除しないと、次の事態につながる可能性があります。

  • 後続の完全な VM 復元オペレーション中の障害。
  • 後続の VM の完全復元中に、復元されたディスクの基盤となる PVC が意図せず変更または置換され、復元されたディスクでデータが失われる可能性があります。

始める前に

VM にアタッチされたディスクを復元した後にラベルをクリーンアップするには、次のものが必要です。

  • 必要な ID とアクセスロール。組織の 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 ファイルのパスに置き換えます。詳細については、Zonal Management API サーバー リソースをご覧ください。

  2. 復元された VirtualMachineDisk リソースが指定された Namespace に存在することを確認します。

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

    次のように置き換えます。

    • NAMESPACE: プロジェクトの Namespace。
    • RESTORED_VM_DISK_NAME: 前提条件で収集した値を使用して復元されたディスクの完全な名前。この変数の値は RESTORED_PREFIXVM_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 が指定された Namespace に存在することを確認します。

    kubectl get pvc -n NAMESPACE \
        RESTORED_VM_DISK_NAME
    

    次のように置き換えます。

    • NAMESPACE: プロジェクトの 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