ホスト メンテナンス イベントをトリガーする


このページでは、特定の VM ファミリー インスタンスでホスト メンテナンス イベントをトリガーする方法について説明します。この機能を使用すると、メンテナンス イベントを手動で開始して、VM のメンテナンスのタイミングを制御できます。これは、特定のメンテナンスの時間枠による影響を受ける可能性のあるワークロードに対して有効です。

メンテナンス イベントを手動でトリガーして、直ちに開始できます。特定の日付または時刻にイベントをトリガーすることはできません。この機能を使用しない場合、メンテナンス イベントはスケジュールどおりに発生します。

制限事項

VM ホスト メンテナンス イベントのトリガーは、次の VM マシンタイプに制限されます。

始める前に

  • C3、C3D、Z3 VM でのみ VM メンテナンスを手動で開始できます。他のマシン ファミリーの VM を使用している場合は、ホスト メンテナンス ポリシーを設定するのドキュメントをご覧ください。
  • まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。

    このページのサンプルをどのように使うかに応じて、タブを選択してください。

    gcloud

    1. Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

      gcloud init
    2. デフォルトのリージョンとゾーンを設定します

    REST

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

      Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

      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"
}

レスポンスでは、maintenanceStatusONGOING に設定されます。メンテナンスが進行中です。

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"
}

レスポンスでは、maintenanceStatusONGOING に設定されます。メンテナンスが進行中です。

メンテナンス ステータスの定義

次のステータス定義では、VM メンテナンス クエリに対するレスポンスについて説明します。VM のメンテナンスに関する情報を提供します。Google Cloud CLI、REST、メタデータ サーバーは、以下に示す同じレスポンスを使用します。

  • windowStartTime: メンテナンスが行われる時間枠の開始時刻。
  • windowEndTime: メンテナンスが行われる時間枠の終了時刻。
  • latestWindowStartTime: 時間枠の移動先に指定できる最も早い時刻。
  • maintenanceType: 実行するメンテナンスのタイプ。
    • なし: この VM にはメンテナンスはスケジュールされていません。
    • スケジュール済み: メンテナンスの 7 日前に通知が届きます。
    • スケジュールなし: メンテナンスは、通知されることがはるかに少ない重要な更新を表します。
  • canReschedule: この VM の通知期間中にメンテナンスをトリガーできるかどうか。
    • TRUE: お客様がトリガーしたメンテナンスは通知期間中に実行できます。
    • FALSE: この VM では、お客様がトリガーするメンテナンスを実行できません。これは多くの場合、VM のメンテナンス期間中に発生します。
  • maintenanceStatus: 現在のメンテナンス オペレーションのステータス。
    • 進行中: メンテナンス オペレーションが進行中です。
    • 保留: メンテナンス オペレーションはスケジュールされていますが、まだ開始されていません。

メンテナンス ステータスの動作

メンテナンス スケジュールを管理する際に、canReschedule=maintenanceStatus= のステータスを確認します。これらのレスポンスの組み合わせにより、機能の想定される動作についての説明を確認でき、次のいずれかのステータスの組み合わせが表示されます。

  • canReschedule=YesmaintenanceStatus=Pending の場合は、VM でメンテナンスをトリガーできます。
  • canReschedule=NomaintenanceStatus=Ongoing の場合、メンテナンスはすでに進行中です。
  • canReschedule=NomaintenanceStatus=Pending の場合、VM は手動トリガーのメンテナンスをサポートしていません。

次のステップ