このページでは、特定の VM ファミリー インスタンスでホスト メンテナンス イベントをトリガーする方法について説明します。この機能を使用すると、メンテナンス イベントを手動で開始して、VM のメンテナンスのタイミングを制御できます。これは、特定のメンテナンスの時間枠による影響を受ける可能性のあるワークロードに対して有効です。
メンテナンス イベントを手動でトリガーして、直ちに開始できます。特定の日付または時刻にイベントをトリガーすることはできません。この機能を使用しない場合、メンテナンス イベントはスケジュールどおりに発生します。
制限事項
VM ホスト メンテナンス イベントのトリガーは、次の VM マシンタイプに制限されます。
- 192 個の vCPU を備えたホスト全体の C4 標準マシン、ハイメモリ マシン、ハイ CPU マシン
- 176 個の vCPU を備えたホスト全体の C3 標準マシン、ハイメモリ マシン、ハイ CPU マシン
- ローカル SSD を搭載した C3 VM
- 360 個の vCPU を備えたホスト全体の C3D 標準マシン、ハイメモリ マシン、ハイ CPU マシン
- ローカル SSD を搭載した C3D VM
- 176 個の vCPU を備えた Z3 highmem マシン
すべての M1、M2、M3 メモリ最適化マシン
他のマシン ファミリーの VM を使用している場合は、ホスト メンテナンス ポリシーを設定するのドキュメントをご覧ください。
始める前に
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。
このページのサンプルをどのように使うかに応じて、タブを選択してください。
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- デフォルトのリージョンとゾーンを設定します。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
必要なロール
VM の作成と VM メンテナンスの管理に必要な権限を取得するには、プロジェクトに対する Compute インスタンス管理者(v1)(roles/compute.instanceAdmin.v1
)IAM ロールを付与するよう管理者に依頼してください。ロールの付与の詳細については、アクセス権の管理に関する記事をご覧ください。
この事前定義ロールには、VM の作成と VM メンテナンスの管理に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
VM を作成し、VM メンテナンスを管理するには、次の権限が必要です。
-
VM に関する情報を取得するには:
compute.instances.get
-
VM を作成するには:
compute.instances.create
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
ホスト メンテナンス イベントをトリガーする
Google は、複数の方法で今後の VM メンテナンスに関する通知を送信します。通知を見つけるには、VM、メタデータ サーバー、または Cloud Logging にクエリを実行します。
ホスト メンテナンス イベントに関する通知を受け取ったら、メンテナンスを直ちにトリガーするか、メンテナンス イベントがスケジュールどおりに行われるのを待つかを選択できます。
メンテナンス イベントを開始する
スケジュールされた時刻を待つのではなく、VM のメンテナンスを直ちに開始できます。Google Cloud CLI または REST メソッドを使用して、VM のメンテナンスを直ちにトリガーします。
通知がない場合にメンテナンス イベントをトリガーしようとすると、次のメッセージが表示されます。
There is no reschedulable upcoming maintenance.
これは、メンテナンス イベントがスケジュールされておらず、処理を行う必要がないことを示します。
gcloud
メンテナンスを直ちに開始するには、gcloud compute instances perform-maintenance
コマンドを使用します。--zone=[ZONE_NAME]
を含める必要があります。
gcloud compute instances perform-maintenance VM_NAME \ --zone=ZONE
次のように置き換えます。
VM_NAME
: VM の名前。ZONE
: VM が存在するゾーン。
レスポンスは次のようになります。
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"
}
レスポンスでは、maintenanceStatus
が ONGOING
に設定されます。メンテナンスが進行中です。
REST
VM のメンテナンスをトリガーするには、instances.performMaintenance
コマンドを実行します。
POST: https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/VM_NAME/performMaintenance
次のように置き換えます。
PROJECT_NAME
: プロジェクトの名前。ZONE
: VM が存在するゾーン。VM_NAME
: VM の名前。
レスポンスは次のようになります。
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"
}
レスポンスでは、maintenanceStatus
が ONGOING
に設定されます。メンテナンスが進行中です。
メンテナンス ステータスの定義
次のステータス定義では、VM メンテナンス クエリに対するレスポンスについて説明します。VM のメンテナンスに関する情報を提供します。Google Cloud CLI、REST、メタデータ サーバーは、以下に示す同じレスポンスを使用します。
- windowStartTime: メンテナンスが行われる時間枠の開始時刻。
- windowEndTime: メンテナンスが行われる時間枠の終了時刻。
- latestWindowStartTime: 時間枠の移動先に指定できる最も早い時刻。
- maintenanceType: 実行するメンテナンスのタイプ。
- なし: この VM にはメンテナンスはスケジュールされていません。
- スケジュール済み: メンテナンスの 7 日前に通知が届きます。
- スケジュールなし: メンテナンスは、通知されることがはるかに少ない重要な更新を表します。
- canReschedule: この VM の通知期間中にメンテナンスをトリガーできるかどうか。
- TRUE: お客様がトリガーしたメンテナンスは通知期間中に実行できます。
- FALSE: この VM では、お客様がトリガーするメンテナンスを実行できません。これは多くの場合、VM のメンテナンス期間中に発生します。
- maintenanceStatus: 現在のメンテナンス オペレーションのステータス。
- 進行中: メンテナンス オペレーションが進行中です。
- 保留: メンテナンス オペレーションはスケジュールされていますが、まだ開始されていません。
メンテナンス ステータスの動作
メンテナンス スケジュールを管理する際に、canReschedule=
と maintenanceStatus=
のステータスを確認します。これらのレスポンスの組み合わせにより、機能の想定される動作についての説明を確認でき、次のいずれかのステータスの組み合わせが表示されます。
-
canReschedule=Yes
とmaintenanceStatus=Pending
の場合は、VM でメンテナンスをトリガーできます。 -
canReschedule=No
とmaintenanceStatus=Ongoing
の場合、メンテナンスはすでに進行中です。 -
canReschedule=No
とmaintenanceStatus=Pending
の場合、VM は手動トリガーのメンテナンスをサポートしていません。
次のステップ
- ホスト メンテナンス イベントをシミュレートする方法を確認する。
- ライブ マイグレーションの通知を取得する方法を確認する。
- Cloud Logging でログベースのアラートを作成する方法を確認する。