このページでは、VM のノード アフィニティ ラベルを変更して VM テナンシーを更新する方法について説明します。
デフォルトでは、Compute Engine はマルチテナント ホストに VM をデプロイします。マルチテナント ホストでは、VM は通常、他のプロジェクトやユーザーの VM とホストリソースを共有します。VM を単一テナントノードに移動すると、プロジェクトから単一テナントノードのハードウェアに排他的にアクセスし、完全に制御できます。そのノードには他のテナントが存在しないため、ワークロードは他のプロジェクトと VM のワークロードから分離されます。
ノード アフィニティ ラベルを変更することで、次の方法で VM を移動できます。
- マルチテナント ホストから単一テナントノードのグループまたはノード
- 単一テナントノードのグループまたはノードからマルチテナント ホスト
- 1 つの単一テナントノードから別の単一テナントノードまたはノードグループ
- 単一テナントノードのグループから別の単一テナントノードのグループまたはノード
ワークロードを単一テナンシーに一時的に移動する
ワークロード要件の変化、定期的な分離が必要なパフォーマンス調査、コンプライアンス要件の変更などにより、特定のワークロードを単一テナントノードに一時的に移動しなければならない場合があります。その後、単一テナンシーが不要になったら、VM をマルチテナント ホストに再デプロイします。VM のテナンシーを変更すると、Compute Engine は VM の構成を保持します。
単一テナント ワークロードの再調整
VM は、単一テナントノードとノードグループ間だけでなく、ノードとノードグループ間で移動することもできます。これにより、ノードを統合し、ワークロードの再調整を行うことができます。VM を移動すると再起動が必要になるため、ワークロードの可用性要件に基づいて VM の移動を計画する必要があります。
制限事項
- すでに単一テナントノードで実行されている VM を移動すると、その VM は別のノードで再起動します。VM の単一テナンシーがノードグループ名または
node-group-name
デフォルト アフィニティ ラベルで指定されている場合、その VM はノードグループ内の任意のノードで再起動します。VM の単一テナンシーがアフィニティまたはアンチアフィニティのカスタム アフィニティ ラベルで指定されている場合、その VM はゾーン内の任意のノードグループの任意のノードで再起動します。
準備
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
VM を停止します。
gcloud compute instances stop VM_NAME
VM_NAME
は、停止する VM の名前に置き換えます。VM の移動先のノードグループを指定して、テナンシーを更新します。
gcloud compute instances set-scheduling VM_NAME \ --node-group=NODE_GROUP_NAME
以下のように置き換えます。
VM_NAME
: 特定のノードグループに移動する VM の名前NODE_GROUP_NAME
: VM を移動するノードグループの名前
ノードの名前またはアフィニティ ラベルを使用して、単一テナントノードに VM を移動することもできます。詳細については、
gcloud compute instances set-scheduling
コマンドをご覧ください。VM を起動します。
gcloud compute instances start VM_NAME
VM_NAME
は、アフィニティ ラベルファイルの内容で指定されているノードグループで起動する VM の名前に置き換えます。VM を停止します。このコマンドの詳細については、instances.stop をご覧ください。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
以下のように置き換えます。
PROJECT_ID
: 停止する VM が属するプロジェクトの IDZONE
: プロジェクトが存在するゾーンVM_NAME
: 停止する VM の名前
VM の移動先のノードグループを指定して、テナンシーを更新します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling { "nodeAffinities": [ { "key": "compute.googleapis.com/node-group-name", "operator": "IN", "values": [ "NODE_GROUP_NAME" ] } ] }
以下のように置き換えます。
PROJECT_ID
: 移動する VM を含むプロジェクトの IDZONE
: プロジェクトが存在するゾーンVM_NAME
: 特定のノードグループに移動する VM の名前NODE_GROUP_NAME
: VM を移動するノードグループの名前
ノードの名前またはアフィニティ ラベルを使用して、単一テナントノードに VM を移動することもできます。詳細については、
instances.setScheduling
メソッドをご覧ください。VM を起動します。このコマンドの詳細については、
instances.start
をご覧ください。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/start
以下のように置き換えます。
PROJECT_ID
: 起動する VM が属するプロジェクトの IDZONE
: プロジェクトが存在するゾーンVM_NAME
: 起動する VM の名前
VM を停止します。
gcloud compute instances stop VM_NAME
VM_NAME
は、停止する VM の名前に置き換えます。VM からノード アフィニティをクリアして、マルチテナント ホストに移動できるようにします。
gcloud compute instances set-scheduling VM_NAME --clear-node-affinities
VM_NAME
は、ノード アフィニティをクリアする VM の名前に置き換えます。マルチテナント ホストで VM を起動します。
gcloud compute instances start VM_NAME
VM_NAME
は、ノード アフィニティをクリアした VM の名前に置き換えます。VM を停止します。このコマンドの詳細については、
instances.stop
をご覧ください。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
以下のように置き換えます。
PROJECT_ID
: 停止する VM が属するプロジェクトの IDZONE
: プロジェクトが存在するゾーンVM_NAME
: 停止する VM の名前
VM からノード アフィニティをクリアして、マルチテナント ホストに移動します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling { "nodeAffinities": [] }
以下のように置き換えます。
PROJECT_ID
: 移動する VM を含むプロジェクトの IDZONE
: プロジェクトが存在するゾーンVM_NAME
: ノード アフィニティをクリアする VM の名前
マルチテナント ホストで VM を起動します。このコマンドの詳細については、instances.start をご覧ください。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/start
以下のように置き換えます。
PROJECT_ID
: 起動する VM が属するプロジェクトの IDZONE
: プロジェクトが存在するゾーンVM_NAME
: 起動する VM の名前
- VM を単一テナントノードに移行する前に、単一テナントノードの料金を確認する。
- お客様所有ライセンスの使用を確認する。
- Microsoft ライセンスに関するよくある質問を確認する。
- 既存のライセンスを持つイメージを Google Cloud に移行する方法を学習する。
- 単一テナントノード グループを自動スケーリングする方法を学習する。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
詳細については、Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
VM を単一テナンシーに移動する
テナンシーを更新するには、別のノードまたはノードグループから、あるいはマルチテナント ホストから特定の単一テナントノードまたはノードグループに VM を移動します。
gcloud
REST
単一テナンシーからの VM の移動
VM に専用ハードウェアを使用する必要がなくなった場合(たとえば、VM を他の VM から分離する必要がなくなった場合)は、VM を単一テナントノードからマルチテナント ホストに移動します。
gcloud
REST
次のステップ
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2024-11-21 UTC。
-