VM を手動でライブ マイグレーションする


単一テナント VM を別のノードまたはノードグループに移動するには、ライブ マイグレーションを手動で開始します。ライブ マイグレーションを手動で開始して、マルチテナント VM を単一テナンシーに移動させることもできます。VM を単一テナンシーから移動する方法については、単一テナンシーから VM を移動するをご覧ください。

始める前に

  • まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。

    このページのサンプルをどのように使うかに応じて、タブを選択してください。

    gcloud

    1. Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

      gcloud init
    2. デフォルトのリージョンとゾーンを設定します

    REST

    このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。

      Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

      gcloud init

API レート上限

手動ライブ マイグレーション リクエストは、クエリAPI レート制限に分類されます。

単一テナンシー内へ、または単一テナンシー内で VM を手動でライブ マイグレーションする

単一テナンシー内へ、または単一テナンシー内で VM を手動でライブ マイグレーションするには、gcloud CLI または REST を使用します。

VM の宛先がノードグループの場合、Compute Engine は VM に必要な空き容量があり、予備容量が最も少ないノードを選択します。

共有の単一テナントノード グループを使用している間は、プロジェクト間のライブ マイグレーションを実行できません。

このタスクに必要な権限

このタスクを行うには、次の権限が必要です。

  • VM に対する compute.instances.update 権限。

gcloud

単一テナンシー内へ、または単一テナンシー内で VM を手動でライブ マイグレーションするには、次の gcloud compute instances update コマンドを使用します。

gcloud compute instances update VM_NAME \
    ( --node=NODE \
      --node-group=NODE_GROUP \
      --node-affinity-file=NODE_AFFINITY_FILE )

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

  • VM_NAME: ノード アフィニティ ラベルを更新する VM の名前。

次のいずれかを置き換えます。

  • NODE: VM をライブ マイグレーションするノードの名前。

  • NODE_GROUP: VM をライブ マイグレーションするノードグループの名前。

  • NODE_AFFINITY_FILE: この VM をスケジュールできるノード構成を含む JSON ファイルの名前。詳細については、ノード アフィニティ ラベルの構成をご覧ください。

REST

単一テナンシー内へ、または単一テナンシー内で VM を手動でライブ マイグレーションするには、次の instances.update メソッドを使用します。

PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME

{
  ...
  "scheduling": {
    "nodeAffinities": [
      {
        "key": "NODE_AFFINITY_LABEL_KEY",
        "operator": "IN",
        "values": [
          "[NODE_AFFINITY_LABEL_VALUE]"
        ]
      }
    ]
  }
  ...
}

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

  • PROJECT_ID: ノード アフィニティ ラベルを更新する VM が属するプロジェクトの ID。

  • ZONE: ノード アフィニティ ラベルを更新する VM のゾーン。

  • VM_NAME: ノード アフィニティ ラベルを更新する VM の名前。

  • NODE_AFFINITY_LABEL_KEY: VM のライブ マイグレーションの宛先(ノードグループかノード)を指定する文字列。次のいずれかになります。

    VM の宛先 指定するキー
    ノードグループ compute.googleapis.com/node-group-name
    ノード compute.googleapis.com/node-name
  • NODE_AFFINITY_LABEL_VALUE: VM をライブ マイグレーションするノードグループまたはノードの名前。

次のステップ