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


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

始める前に

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

    Select the tab for how you plan to use the samples on this page:

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

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

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      詳細については、Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。

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 をライブ マイグレーションするノードグループまたはノードの名前。

次のステップ