このドキュメントでは、ホストイベントが発生したときのインスタンスの動作を制御するために、仮想マシン(VM)またはベアメタル インスタンスのホスト メンテナンス ポリシーを設定する方法について説明します。
始める前に
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境でコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- プリエンプティブル VM のメンテナンス動作は変更できません。メンテナンス イベントが発生すると、プリエンプティブル VM は停止し、移行されません。プリエンプトされた VM は手動で再起動する必要があります。
- E2 マシンタイプを使用して VM を作成後に、VM のメンテナンス動作を
MIGRATE
からTERMINATE
(またはその逆)に変更することはできません。 c3-standard-192-metal
やx4-megamem-1920-metal
などのベアメタル インスタンスのメンテナンス動作は変更できません。これらのインスタンスはTERMINATE
に設定され、自動的に再起動します。onHostMaintenance
: インスタンスの再起動が必要になるメンテナンス イベントが発生したときの動作を指定します。MIGRATE
: メンテナンス イベント発生時に、Compute Engine がインスタンスをライブ マイグレーションします。ほとんどの VM では、これがデフォルトです。TERMINATE
: ライブ マイグレーションを使用する代わりに、インスタンスを停止します。これは、Z3、ベアメタル インスタンス、GPU や TPU などのアクセラレータを使用するインスタンスのデフォルト オプションです。これらのインスタンス タイプでは、onHostMaintenance
の設定を変更できません。
automaticRestart
: インスタンスがクラッシュしたか、システムによって停止された場合の動作を指定します。true
(デフォルト)では、インスタンスがクラッシュまたは停止した場合、Compute Engine はインスタンスを再起動します。false
: インスタンスがクラッシュまたは停止しても、Compute Engine はインスタンスを再起動しません。
localSsdRecoveryTimeout
: ローカル SSD のリカバリ タイムアウトを設定します。これは、ホストのエラー後に Compute Engine がローカル SSD データの復元を待機する最大時間(時間単位)です。この設定は、ローカル SSD ディスクがアタッチされている VM にのみ適用されます。ローカル SSD ディスクがアタッチされていないインスタンスにこの設定を構成した場合、設定は無視されます。- 設定されていない場合(デフォルト): Compute Engine はローカル SSD データの復元を最大 1 時間待機します。Z3 VM の場合、デフォルトの待機時間は 6 時間です。
- 0~168 の整数: Compute Engine がローカル SSD データの復元を待機する時間数を指定します。最大値は 7 日間に相当します。値が 0 の場合、Compute Engine はローカル SSD データの復元を待機せず、インスタンスを直ちに再起動します。
hostErrorTimeoutSeconds
(プレビュー): インスタンスが応答していないことを検出した後、Compute Engine がコンピューティング インスタンスを再起動または終了するまで待機する最大時間を秒単位で設定します。- 設定されていない場合(デフォルト): Compute Engine は最大 5.5 分(330 秒)待機してから、応答しないインスタンスを再起動します。
- 90~330 の整数: Compute Engine が応答しないコンピューティング インスタンスを再起動するまで待機する秒数(30 秒単位で指定)。
Google Cloud コンソールで、[インスタンスの作成] ページに移動します。
インスタンスの名前を指定します。
インスタンスの [リージョン] と [ゾーン] を選択します。
[マシンの構成] セクションで、次の操作を行います。
- インスタンスのマシンタイプの詳細を指定します。
- [VM プロビジョニング モデルの詳細設定] メニューを開きます。
- [ホスト メンテナンス時] メニューで、次のいずれかの手順を選択します。
- メンテナンス イベント中に VM を移行するには、[VM インスタンスを移行] を選択します。
- メンテナンス イベント中にインスタンスを停止するには、[VM インスタンスを終了] を選択します。
インスタンスを作成するには、[作成] をクリックします。
INSTANCE_NAME
: インスタンス名。- ZONE: インスタンスが配置されているゾーン。
MAINTENANCE_BEHAVIOR
: インスタンスのメンテナンス イベント時の動作(TERMINATE
またはMIGRATE
)。ほとんどのマシンタイプでは、このプロパティを省略すると、VM はデフォルトでマイグレーションされます。Z3 インスタンスとベアメタル インスタンスは終了します。RESTART_ON_FAILURE_BEHAVIOR
: 終了したインスタンスまたは応答しないインスタンスの再起動動作。restart-on-failure
(デフォルト)またはno-restart-on-failure
に設定します。SSD_RECOVERY_TIMEOUT
: 終了したインスタンスまたは応答しないインスタンスにアタッチされたローカル SSD ディスクの復元に費やす時間数。有効な値は 0 から 168 で、1 時間単位で指定します。ERROR_DETECTION_TIMEOUT
: 応答しないインスタンスを再起動するまで Compute Engine が待機する秒数(90~330 秒(5.5 分))。30 秒単位で指定します。PROJECT_ID
: インスタンスのプロジェクト。ZONE
: インスタンスを作成するゾーン。INSTANCE_NAME
: インスタンス名。MAINTENANCE_BEHAVIOR
: インスタンスのメンテナンス イベント時の動作(TERMINATE
またはMIGRATE
)。ほとんどのマシンタイプでは、このフィールドを省略すると、VM はデフォルトでマイグレーションされます。Z3 インスタンスとベアメタル インスタンスは終了します。RESTART_POLICY
: メンテナンス イベントまたはホストエラーの発生後にインスタンスを自動的に再起動するかどうか。true
(デフォルト)またはfalse
のいずれか。SSD_RECOVERY_TIMEOUT
: 応答しないインスタンスまたは終了したインスタンスにアタッチされたローカル SSD ディスクの復元に Compute Engine が費やす時間数。有効な値は 0 から 168 で、1 時間単位で指定します。Z3 のデフォルト値は 6 時間で、その他すべての VM のデフォルト値は 1 時間です。Google Cloud コンソールで [VM インスタンス] ページに移動します。
設定を変更するインスタンスの名前をクリックします。インスタンスの詳細ページが表示されます。
[詳細] タブを選択して、次の手順を完了します。
- ページの上部にある [編集] ボタンをクリックします。
- [管理] セクションに移動します。[可用性ポリシー] セクションで、ホスト メンテナンス オプションを変更できます。
- [保存] をクリックします。
NUMBER_OF_SECONDS
: 応答しない VM を再起動または終了するまで Compute Engine が待機する秒数(90~330(5.5 分))。30 秒単位で指定します。INSTANCE_NAME
: インスタンス名。MAINTENANCE_BEHAVIOR
: インスタンスのメンテナンス イベント時の動作(TERMINATE
またはMIGRATE
)。ほとんどのマシンタイプでは、このプロパティを省略すると、VM はデフォルトでマイグレーションされます。Z3 インスタンスとベアメタル インスタンスは終了します。RESTART_ON_FAILURE_BEHAVIOR
: 終了したインスタンスまたは応答しないインスタンスの再起動動作。restart-on-failure
(デフォルト)またはno-restart-on-failure
に設定します。SSD_RECOVERY_TIMEOUT
: 終了したインスタンスまたは応答しないインスタンスにアタッチされたローカル SSD ディスクの復元に費やす時間数。有効な値は 0 から 168 で、1 時間単位で指定します。NUMBER_OF_SECONDS
: 応答しないインスタンスを再起動するまで Compute Engine が待機する秒数(90~330 秒(5.5 分))。30 秒単位で指定します。
PROJECT_ID
: インスタンスのプロジェクト。ZONE
: インスタンスが配置されているゾーン。INSTANCE_NAME
: インスタンス名。MAINTENANCE_BEHAVIOR
: このインスタンスのメンテナンス イベント時の動作(TERMINATE
またはMIGRATE
)。RESTART_POLICY
: インスタンスを自動的に再起動するかどうか(true
またはfalse
)。SSD_RECOVERY_TIMEOUT
: インスタンスにアタッチされたローカル SSD ディスクの復元に費やす時間数。有効な値は 0 から 168 で、1 時間単位で指定します。
[VM インスタンス] ページに移動します。
設定を表示する対象のインスタンスの名前をクリックします。インスタンスの詳細ページが開きます。
[管理] セクションに移動します。[可用性ポリシー] サブセクションには、次の設定の現在値が表示されます。
- ホスト メンテナンス時
- 自動再起動
- ホストエラーのタイムアウト
INSTANCE_NAME
: インスタンスの名前ZONE
: インスタンスが配置されているゾーンPROJECT_ID
: インスタンスが配置されているプロジェクト。ZONE
: インスタンスが配置されているゾーン。INSTANCE_NAME
: インスタンス名。PROJECT_ID
: インスタンスのプロジェクト。ZONE
: インスタンスが配置されているゾーン。INSTANCE_NAME
: インスタンス名。- ホスト メンテナンスの詳細を見る。
- ライブ マイグレーションの詳細を見る。
- ライブ マイグレーション イベントを検出する方法を学習する。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
詳細については、Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
制限事項
利用可能なホスト メンテナンス プロパティ
コンピューティング インスタンスのメンテナンス動作、再起動動作、ホストエラー時の待機動作を構成できます。特に指定しない限り、Compute Engine は各インスタンスをデフォルト値で構成します。
ホストイベント中、ライブ マイグレーションをサポートしていないインスタンスは、構成済みのホスト メンテナンス ポリシーに応じて、終了されるか自動的に再起動されます。
インスタンスのホスト メンテナンス ポリシーを設定する
インスタンスのホスト メンテナンス ポリシーは、最初にインスタンスを作成するとき、またはインスタンスの作成後に変更できます。
インスタンスの作成時にホスト メンテナンス ポリシーを設定する
このセクションでは、インスタンスの作成時にホスト メンテナンス ポリシーを設定する方法について説明します。他のインスタンス作成例については、Compute Engine インスタンスの作成と開始をご覧ください。
コンピューティング インスタンスのホスト メンテナンス ポリシーは、Google Cloud コンソール、gcloud CLI、または REST を使用して作成時に設定できます。
コンソール
gcloud
新しいインスタンスのホスト メンテナンス ポリシーを設定するには、
gcloud compute instances create
コマンドを使用します。--host-error-timeout-seconds
プロパティ(プレビュー)を設定するには、gcloud beta compute instances create
コマンドを使用する必要があります。次のコマンドを使用して、新しいインスタンスのホスト メンテナンス ポリシーを設定できます。いずれかのフラグを省略すると、フラグのデフォルト値が使用されます。
gcloud compute instances create INSTANCE_NAME \ --zone=ZONE \ --maintenance-policy=MAINTENANCE_BEHAVIOR \ --RESTART_ON_FAILURE_BEHAVIOR \ --local-ssd-recovery-timeout=SSD_RECOVERY_TIMEOUT \ --host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT
次のように置き換えます。
REST
REST を使用して新しいインスタンスのホスト メンテナンス ポリシーを設定するには、
instances.insert
メソッドを使用します。次のコマンドを使用して、新しいインスタンスのホスト メンテナンス ポリシーを設定できます。いずれかのフィールドを省略すると、そのフィールドのデフォルト値が使用されます。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "INSTANCE_NAME", "scheduling": { "onHostMaintenance": "MAINTENANCE_BEHAVIOR", "automaticRestart": "RESTART_POLICY, "localSsdRecoveryTimeout": SSD_RECOVERY_TIMEOUT } }
次のように置き換えます。
ホストエラー検出のタイムアウトを設定する
Compute Engine が応答しないインスタンスの再起動または終了を待機する最大時間を設定する場合、このオプションはプレビュー版であるため、ベータ版
instances.insert
メソッドを使用します。リクエスト本文の
scheduling
オブジェクトにhostErrorTimeoutSeconds
プロパティを追加します。ここで、HOST_ERROR_TIMEOUT
は、Compute Engine が応答しないインスタンスを再起動または終了するまで待機する秒数です。有効な値は 90~330(5.5 分)で、30 秒単位で指定します。POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances { "name": "INSTANCE_NAME", "scheduling": { "onHostMaintenance": "MAINTENANCE_BEHAVIOR", "automaticRestart": "RESTART_POLICY, "localSsdRecoveryTimeout": SSD_RECOVERY_TIMEOUT "hostErrorTimeoutSeconds": HOST_ERROR_TIMEOUT, } }
既存のインスタンスのホスト メンテナンス ポリシーを更新する
コンソール
gcloud
gcloud compute instances set-scheduling
コマンドを使用して、既存のインスタンスのホスト メンテナンス ポリシーを更新します。前のセクションで説明した、インスタンス作成コマンドと同じパラメータを使用します。Compute Engine が応答しないインスタンスの再起動または終了を待機する最大時間を更新するには(プレビュー)、
gcloud beta compute instances set-scheduling
コマンドを使用し、このコマンドに--host-error-timeout-seconds=NUMBER_OF_SECONDS
を含めます。gcloud compute instances set-scheduling INSTANCE_NAME \ --maintenance-policy=MAINTENANCE_BEHAVIOR \ --RESTART_ON_FAILURE_BEHAVIOR \ --local-ssd-recovery-timeout=SSD_RECOVERY_TIMEOUT
次のように置き換えます。
REST
instances.setScheduling
メソッドに対するPOST
リクエストを使用して、既存のインスタンスのホスト メンテナンス ポリシーを更新します。POST https://compute.googleapis.com/compute/v1projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/setScheduling { "onHostMaintenance": "MAINTENANCE_BEHAVIOR", "automaticRestart": RESTART_POLICY, "localSsdRecoveryTimeout": SSD_RECOVERY_TIMEOUT }
次のように置き換えます。
ホストエラー検出タイムアウトを更新する
Compute Engine が応答しない VM の再起動や終了を待機する最大時間を更新する場合、この機能はプレビューであるため、ベータ版
instances.setScheduling
メソッドを使用する必要があります。hostErrorTimeoutSeconds
プロパティをリクエスト本文に追加します。ここで、HOST_ERROR_TIMEOUT
は、Compute Engine が応答しないインスタンスを再起動または終了するまで待機する秒数です。有効な値は 90~330(5.5 分)で、30 秒単位で指定します。POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/setScheduling { ... "hostErrorTimeoutSeconds": NUMBER_OF_SECONDS }
インスタンスのホスト メンテナンス ポリシー設定を表示する
コンソール
gcloud
gcloud compute instances describe
コマンドを使用して、インスタンスのホスト メンテナンス オプションの設定を表示します。hostErrorTimeoutSeconds
設定の現在値を表示するには(プレビュー)、gcloud beta compute instances describe
コマンドを使用します。gcloud compute instances describe INSTANCE_NAME \ --zone ZONE --format="yaml(scheduling)"
次のように置き換えます。
出力には、ホスト メンテナンス ポリシーの現在の設定が含まれます。次に例を示します。
scheduling: automaticRestart: true hostErrorTimeoutSeconds: 120 localSsdRecoveryTimeout: nanos: 0 seconds: '10800' onHostMaintenance: MIGRATE preemptible: false provisioningModel: STANDARD
REST
インスタンスのホスト メンテナンス設定を表示するには、
instances.get
メソッドを使用します。GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
次のように置き換えます。
出力には、インスタンスのホスト メンテナンス ポリシーの設定を含む
scheduling
オブジェクトが表示されます。次に例を示します。{ ... "scheduling": { "onHostMaintenance": "MIGRATE", "automaticRestart": true, "preemptible": false, "provisioningModel": "STANDARD", "localSsdRecoveryTimeout": { "seconds": "10800", "nanos": 0 } }, ... }
ホストエラー タイムアウトの設定を表示する
現在の
hostErrorTimeoutSeconds
設定を表示するには、ベータ版のinstances.get
メソッドを使用してGET
リクエストを作成します。GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
次のように置き換えます。
出力には、インスタンスのホストエラー検出タイムアウトを含む
scheduling
オブジェクトが表示されます。次に例を示します。{ ... "scheduling": { "onHostMaintenance": "MIGRATE", "automaticRestart": true, "preemptible": false, "provisioningModel": "STANDARD", "hostErrorTimeoutSeconds": 120, "localSsdRecoveryTimeout": { "seconds": "10800", "nanos": 0 } }, ... }
次のステップ
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2024-12-23 UTC。
-