このページでは、サポートされている Compute Engine インスタンスでホスト メンテナンス イベントを手動で開始する方法について説明します。この機能を使用すると、メンテナンス イベントを開始して、インスタンスのメンテナンスのタイミングを制御できます。これは、パフォーマンスの低下やダウンタイムの影響を受ける可能性のあるワークロードに対して有効です。このようなワークロードでは、メンテナンスの時間枠を特定の時間に開始する必要があります。
メンテナンス イベントを手動で開始すると、ホスト メンテナンスがすぐに開始されます。メンテナンス イベントの開始日時を指定することはできません。この機能を使用しない場合、メンテナンス イベントは今後のメンテナンスに関する通知に示されている時間に発生します。
最初にアプリケーションがメンテナンス イベントを処理する方法を確認したい場合は、メンテナンス イベントをシミュレートします。
制限事項
インスタンスのホスト メンテナンス イベントを手動で開始できるのは、次のマシンタイプに限られています。
- 192 個の vCPU を備えたホスト全体の C4
standard
、highmem
、highcpu
マシンタイプ - 176 個の vCPU を備えたホスト全体の C3
standard
、highmem
、highcpu
マシンタイプ、または 192 個の vCPU を備えたベアメタル インスタンス - 88 個の vCPU を備えたホスト全体の H3 VM
- ローカル SSD を搭載した C3 VM
- 360 個の vCPU を備えたホスト全体の C3D
standard
、highmem
、highcpu
マシンタイプ - ローカル SSD を搭載した C3D VM
- 176 個の vCPU を備えたホスト全体の Z3 VM
- すべての M1、M2、M3 VM
- ホスト全体の X4 ベアメタル インスタンス
始める前に
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
-
必要なロール
VM メンテナンスの管理に必要な権限を取得するには、プロジェクトに対する Compute インスタンス管理者(v1)(roles/compute.instanceAdmin.v1
)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
この事前定義ロールには、VM メンテナンスの管理に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
VM メンテナンスを管理するには、次の権限が必要です。
-
コンピューティング インスタンスに関する情報を取得する:
compute.instances.get
-
インスタンスのホスト メンテナンスを行う:
compute.instances.performMaintenance
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
ホスト メンテナンス イベントを手動で開始する
Compute Engine は、今後のメンテナンス イベントに関する通知を複数の方法で送信します。通知に表示される情報を使用して、メンテナンス イベントを手動で開始できる期間を確認できます。
通知情報を確認する
メンテナンス イベントの通知は、次の方法で確認できます。
ホスト メンテナンス イベントに関する通知に canReschedule=True
と maintenanceStatus=Pending
が含まれている場合は、任意のタイミングでメンテナンスを開始するか、windowStartTime
で指定された時間にメンテナンス イベントが実行されるまで待つことができます。
通知がない場合にメンテナンス イベントを手動で開始しようとすると、次のメッセージが表示されます。
There is no reschedulable upcoming maintenance.
これは、メンテナンス イベントがスケジュールされておらず、処理を行う必要がないことを示します。
メンテナンス イベントを開始する
スケジュールされ時間まで待たずに、任意のタイミングでホスト メンテナンスを開始できます。Google Cloud CLI または REST を使用してメンテナンス イベントをトリガーすると、メンテナンス イベントは直ちに開始されます。
メンテナンス イベントを開始するには、compute instances perform-maintenance
コマンドを使用します。このコマンドを入力すると、ホストのメンテナンスがすぐに開始されます。
gcloud compute instances perform-maintenanceINSTANCE_NAME \ --zone=ZONE
次のように置き換えます。
INSTANCE_NAME
: コンピューティング インスタンスの名前。ZONE
: インスタンスが配置されているゾーン。
レスポンスは次の例のようになります。
upcomingMaintenance:{
"canReschedule":false
"latestWindowStartTime": "2023-12-01T19:00:01Z"
"maintenanceStatus":"ONGOING"
"type":"SCHEDULED"
"windowEndTime": "2023-12-01T22:00:00Z"
"windowStartTime": "2023-12-01T19:00:00Z"
}
レスポンスでは canReschedule
が false
に、maintenanceStatus
が ONGOING
に設定されています。これは、ホスト メンテナンス オペレーションが進行中であることを示します。
メンテナンス イベントを開始するには、instances.performMaintenance
メソッドを使用して POST
リクエストを作成します。
POST: https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME /zones/ZONE /instances/INSTANCE_NAME /performMaintenance
次のように置き換えます。
PROJECT_NAME
: プロジェクトの名前ZONE
: コンピューティング インスタンスが配置されているゾーンINSTANCE_NAME
: インスタンスの名前
レスポンスは次のようになります。
upcomingMaintenance:{
"canReschedule":false
"latestWindowStartTime": "2023-12-01T19:00:01Z"
"maintenanceStatus":"ONGOING"
"type":"SCHEDULED"
"windowEndTime": "2023-12-01T22:00:00Z"
"windowStartTime": "2023-12-01T19:00:00Z"
}
レスポンスでは canReschedule
が false
に、maintenanceStatus
が ONGOING
に設定されています。これは、ホスト メンテナンス オペレーションが進行中であることを示します。
次のステップ
- ホスト メンテナンス イベントをシミュレートする方法を確認する。
- ライブ マイグレーションの通知を取得する方法を確認する。
- ホスト メンテナンス通知のアラートを構成する方法を確認する。