VM が実行されているかどうかに関係なく、予約済みの容量ブロックで今後のメンテナンス ホストイベントをプロアクティブに管理できます。このアプローチにより、中断を最小限に抑え、最適なパフォーマンスを維持できます。 <
始める前に
-
まだ設定していない場合は、認証を設定します。認証では、 Cloud de Confiance by S3NS サービスと API にアクセスするための ID が確認されます。ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。
このページのサンプルをどのように使うかに応じて、タブを選択してください。
コンソール
Cloud de Confiance コンソールを使用して Cloud de Confiance by S3NS サービスと API にアクセスする場合、認証を設定する必要はありません。
gcloud
-
Google Cloud CLI をインストールし、 フェデレーション ID を使用して gcloud CLI にログインします。ログイン後、次のコマンドを実行して Google Cloud CLI を初期化します。
gcloud init
-
- デフォルトのリージョンとゾーンを設定します。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Google Cloud CLI をインストールし、 フェデレーション ID を使用して gcloud CLI にログインします。
詳細については、 Cloud de Confiance 認証ドキュメントの REST を使用して認証するをご覧ください。
必要なロール
予約全体でホスト メンテナンス イベントを管理するために必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
- プロジェクトに対する Compute 管理者(
roles/compute.admin) -
システム イベントの監査ログに対する読み取り専用権限: プロジェクトに対するログ閲覧者 (
roles/logging.viewer)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
これらの事前定義ロールには、予約全体でホスト メンテナンス イベントを管理するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
予約全体でホスト メンテナンス イベントを管理するには、次の権限が必要です。
-
予約のホスト メンテナンスを開始する: プロジェクトに対する
compute.reservations.performMaintenance -
予約ブロックのホスト メンテナンスを開始する: プロジェクトに対する
compute.reservationBlocks.performMaintenance- 予約のリストを表示するには
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
概要
予約済みの容量ブロックのメンテナンスを最適化する手順は次のとおりです。
通知アラートを設定します。ログベースのアラートを作成して、予約または予約ブロックのスケジュール設定、開始、完了したメンテナンス イベントに関する通知を受け取ります。このアプローチにより、アクティビティを事前に計画し、予期しないダウンタイムを回避できます。
容量ブロック全体でメンテナンスを管理します。予約または予約ブロック全体でメンテナンスを表示し、必要に応じて手動で開始します。このプロセスにより、ワークロードのホストエラーに対する復元力を高め、ダウンタイムを防ぎ、アプリケーションの可用性を維持できます。
H4D マシンタイプの頻度とメンテナンスの動作の詳細については、H4D インスタンスのメンテナンス エクスペリエンスをご覧ください。
予約の通知アラートを設定する
予約または予約ブロックのスケジュールされたメンテナンス イベント、開始されたメンテナンス イベント、完了したメンテナンス イベントの通知を受け取るには、ログベースのアラート ポリシーを作成します。
予約または予約ブロックのメンテナンス イベントのアラートを作成する手順は次のとおりです。作成するアラートごとにこの手順を繰り返します。
-
Cloud de Confiance コンソールで、 [ログ エクスプローラ] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [Logging] の結果を選択します。
[クエリを表示] 切り替えボタンをクリックしてオンにします。
クエリペインで、次のいずれかのクエリを作成します。これらのクエリは、ログエントリをフィルタして特定のメンテナンス イベントを識別します。作成するクエリごとにこの手順を繰り返します。
予約のメンテナンス アラートを受け取る:
メンテナンスがスケジュールされたときにアラートを受け取るには:
protoPayload.methodName="compute.reservations.upcomingGroupMaintenance" severity>=DEFAULT protoPayload.status.message =~ "scheduled"メンテナンスが完了したときにアラートを受け取るには:
protoPayload.methodName="compute.reservations.completedGroupMaintenance" severity>=DEFAULT protoPayload.status.message =~ "completed"
予約ブロックのメンテナンス アラートを受信する:
メンテナンスがスケジュールされたときにアラートを受け取るには:
protoPayload.methodName="compute.reservations.block.upcomingGroupMaintenance" severity>=DEFAULT protoPayload.status.message =~ "scheduled"メンテナンスが開始されたときにアラートを受け取るには:
protoPayload.methodName="compute.reservations.block.startGroupMaintenance" severity>=DEFAULT protoPayload.status.message =~ "started"メンテナンスが完了したときにアラートを受け取るには:
protoPayload.methodName="compute.reservations.block.completedGroupMaintenance" severity>=DEFAULT protoPayload.status.message =~ "completed"
クエリを検証するため、[クエリを実行] をクリックします。クエリが有効な場合、[クエリ結果] ペインにクエリに一致するログエントリが表示されます。
[クエリ] 結果ツールバーで、[アクション] リストをクリックし、[ ログアラートの作成] を選択します。[ログベースのアラート ポリシーを作成] ペインが表示されます。
[アラートの詳細] セクションで、次の操作を行います。
[アラート ポリシー名] フィールドに、ポリシーの名前を入力します。
[ポリシーの重大度] リストで、[警告](またはそれ以上の重大度)を選択します。
[次へ] をクリックします。
[アラートに含めるログを選択] セクションで、[次へ] をクリックします。
[通知頻度と自動クローズ期間の設定] セクションで、次の項目を指定します。
[通知の間隔] リストで、通知を受け取る頻度を選択します。
[インシデントの自動クローズ期間] リストで、Cloud Logging が通知の送信を停止し、インシデントを自動的にクローズするまでの期間を選択します。
[次へ] をクリックします。
[通知を受信するユーザー] セクションで、Logging が通知を送信する通知チャネルを指定します。
[保存] をクリックします。
予約全体でメンテナンスを管理する
予約と予約ブロックのメンテナンスは、次のように表示して制御できます。
予約または予約ブロックの今後のメンテナンスの状態とスケジュールされた時間を確認するには、メンテナンス状態を表示します。
スケジュールされたメンテナンスの日時を待つのではなく、予約または予約ブロックのメンテナンスを手動で開始するには、メンテナンスを手動で開始します。
ホストエラーまたは障害のあるホストの報告後に VM のホストで緊急の計画外メンテナンスが必要になったときに、通知を受け取るタイミングを管理するには、ハードウェアの緊急メンテナンス通知を管理します。
メンテナンス状態を表示する
予約または予約ブロックの今後のメンテナンスの状態は、予約メタデータの
upcomingGroupMaintenanceフィールドの値を確認することで表示できます。予約にupcomingGroupMaintenanceフィールドがない場合、予約または予約ブロックのメンテナンスはスケジュールされません。upcomingGroupMaintenanceのフィールドの詳細については、メンテナンス ステータスの定義をご覧ください。また、予約ブロックのメンテナンスがスケジュールされている場合、
upcomingGroupMaintenanceフィールドにはmaintenanceReasonsフィールドが含まれます。このフィールドには、次の表に示すように、予約ブロックのメンテナンスがスケジュールされた理由が記述されます。メンテナンスの種類 メンテナンスの理由 VM の状態 定期的なメンテナンスの計画的なメンテナンス PLANNED_UPDATE: インフラストラクチャの計画的なメンテナンスPLANNED_NETWORK_UPDATE: ネットワークの計画的なメンテナンス
実行中、停止中、一時停止中の VM に適用されます。 計画外の緊急メンテナンス FAILURE_DISK: VM にアタッチされたディスクのエラーによりスケジュールされた計画外のメンテナンス。FAILURE_INFRA: インフラストラクチャのエラーによりスケジュールされた計画外のメンテナンス。FAILURE_INTERFACE: NIC のエラーによりスケジュールされた計画外のメンテナンス。FAILURE_MEMORY: VM のメモリのエラーによりスケジュールされた計画外のメンテナンス。FAILURE_NETWORK: ネットワークのエラーによりスケジュールされた計画外のメンテナンス。
実行中の VM にのみ適用されます。 予約ブロックまたはサブブロックの
maintenanceReasonsフィールドを表示するには、gcloud CLI または REST API を使用する必要があります。または、次のオプションのいずれかを選択します。コンソール
Cloud de Confiance コンソールで、[予約] ページに移動します。
Compute Engine の [メンテナンス ステータス] 列に、予約のメンテナンス状態が表示されます。[オンデマンド予約] テーブルにこの列が表示されていない場合は、 [列表示オプション] をクリックし、[メンテナンス ステータス] チェックボックスをオンにして、[OK] をクリックします。
予約ブロックのメンテナンス状態を表示する手順は次のとおりです。
[名前] 列で、予約の名前をクリックします。予約の詳細を示すページが表示されます。
[Blocks] テーブルの [メンテナンス] 列に、Compute Engine が予約内のブロックのメンテナンス状態を表示します。
gcloud
予約のメンテナンス状態を表示するには、
--flattenフラグをresourceStatus.reservationMaintenanceに設定してgcloud compute reservations describeコマンドを使用します。gcloud compute reservations describe RESERVATION_NAME \ --flatten=resourceStatus.reservationMaintenance \ --zone=ZONE次のように置き換えます。
RESERVATION_NAME: 予約の名前。ZONE: 予約が存在するゾーン。
出力は次のいずれかのようになります。
予約にメンテナンスがスケジュールされている場合、出力は次のようになります。
--- maintenanceOngoingCount: 0 maintenancePendingCount: 6 schedulingType: GROUPED upcomingGroupMaintenance: canReschedule: true maintenanceStatus: PENDING type: UNSCHEDULED windowEndTime: '2025-11-13T14:00:00.000-08:00' windowStartTime: '2025-11-13T12:00:00.000-08:00'schedulingTypeフィールドがINDEPENDENTに設定されている場合、upcomingGroupMaintenanceフィールドにwindowStartTimeフィールドとwindowEndTimeフィールドは含まれません。予約のメンテナンスがスケジュールされていない場合、出力は次のようになります。
--- schedulingType: GROUPED
予約にメンテナンスがスケジュールされている場合は、予約内のブロックのメンテナンス状態を表示するために、
gcloud compute reservations blocks listコマンドを使用します。gcloud compute reservations blocks list RESERVATION_NAME \ --zone=ZONE予約ブロックのメンテナンスがスケジュールされているか進行中の場合、出力は次のようになります。
--- ... name: example-fr-h4d-dense-1-block-0001 ... reservationBlockMaintenance: maintenanceOngoingCount: 0 maintenancePendingCount: 6 schedulingType: GROUPED upcomingGroupMaintenance: canReschedule: true maintenanceReasons: - PLANNED_UPDATE - PLANNED_NETWORK_UPDATE maintenanceStatus: PENDING type: UNSCHEDULED windowEndTime: '2025-11-13T14:00:00.000-08:00' windowStartTime: '2025-11-13T12:00:00.000-08:00' ... --- ... name: example-fr-h4d-dense-1-block-0002 ... schedulingType: GROUPED ...
REST
予約のメンテナンス状態を表示するには、次のいずれかのメソッドに
GETリクエストを送信します。すべてのゾーンの予約を表示するには、
reservations.aggregatedListメソッドを使用します。特定のゾーンの予約を表示するには、
reservations.listメソッドを使用します。
リクエスト URL に次のクエリ パラメータを含めます。
予約の名前、予約済みマシンタイプ、メンテナンス ステータスのみを表示するには、
items.name,items.specificReservation.instanceProperties.machineType,items.resourceStatus.reservationMaintenanceに設定されたfieldsクエリ パラメータを含めます。特定のマシンタイプを指定する予約でフィルタリングするだけの場合は、URL エンコードされた値を使用して
specificReservation.instanceProperties.machineType:MACHINE_TYPEに設定されたfilterクエリ パラメータを指定します。
たとえば、すべてのゾーンの予約を表示するには、次のように
GETリクエストを送信します。GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/reservations?fields=items.name,items.specificReservation.instanceProperties.machineType,items.resourceStatus.reservationMaintenance&filter=specificReservation.instanceProperties.machineType%3AMACHINE_TYPE次のように置き換えます。
PROJECT_ID: 予約が存在するプロジェクトの ID。MACHINE_TYPE: 予約のフィルタリングに使用する予約済みマシンタイプ。
予約のメンテナンスがスケジュールされているか進行中の場合、出力は次のようになります。
{ "items": [ { "specificReservation": { "instanceProperties": { "machineType": "MACHINE_TYPE" } }, "name": "example-reservation", "resourceStatus": { "reservationMaintenance": { maintenanceOngoingCount: 0, maintenancePendingCount: 6, "schedulingType": "GROUPED", "upcomingGroupMaintenance": { "type": "SCHEDULED", "canReschedule": true, "windowStartTime": "2025-11-13T12:00:00.000-08:00", "windowEndTime": "2025-11-13T14:00:00.000-08:00", "maintenanceStatus": "PENDING" } } } }, ... ] }必要に応じて、VM のリストをさらに絞り込むには、
filterクエリ パラメータを別のフィルタ式に設定します。予約のメンテナンスがスケジュールされている場合、予約内のブロックのメンテナンス状態を表示するには、
reservationBlocks.listメソッドにGETリクエストを送信します。リクエスト URL に、items.name,items.reservationMaintenanceに設定されたfieldsクエリ パラメータを含めます。GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME/reservationBlocks?fields=items.name,items.reservationMaintenanceRESERVATION_NAMEは、予約の名前に置き換えます。予約ブロックのメンテナンスがスケジュールされているか進行中の場合、出力は次のようになります。
{ "items": [ { "name": "example-fr-h4d-dense-1-block-0001", "reservationBlockMaintenance": { "maintenanceOngoingCount": 0, "maintenancePendingCount": 6, "schedulingType": "GROUPED", "upcomingGroupMaintenance": { "type": "SCHEDULED", "canReschedule": true, "windowStartTime": "2025-11-13T12:00:00.000-08:00", "windowEndTime": "2025-11-13T14:00:00.000-08:00", "maintenanceStatus": "PENDING", "maintenanceReasons": [ "PLANNED_UPDATE", "PLANNED_NETWORK_UPDATE" ] } } }, ... ] }ブロックの
schedulingTypeフィールドがINDEPENDENTに設定されている場合、upcomingGroupMaintenanceフィールドにはwindowStartTimeフィールドとwindowEndTimeフィールドは含まれません。
メンテナンスを手動で開始する
スケジュールされた時間を待つのではなく、予約または予約ブロックのメンテナンスを手動で開始できます。このアクションにより、ワークロードの中断をより積極的に制御できます。
予約または予約ブロックのメンテナンス状態に応じて、次の処理が行われます。
メンテナンス状態 説明 表示される内容 スケジュール設定済み Compute Engine で、予約の定期メンテナンスがスケジュールされています。スケジュールされた時間より前に、メンテナンスを手動で開始できます。 - Cloud de Confiance コンソールでは、メンテナンス状態が [実行準備完了 - DATE に実行されます] と表示されます。
- gcloud CLI または REST API では、Compute Engine は
maintenanceStatusフィールドをPENDINGに設定します。
進行中 メンテナンスが進行中です。スケジュールを変更することはできません。 - Cloud de Confiance コンソールでは、メンテナンス状態が [実行中] と表示されます。
- gcloud CLI または REST API では、Compute Engine は
maintenanceStatusフィールドをONGOINGに設定します。
完了 メンテナンスが完了しました。Compute Engine は、VM からすべてのメンテナンス通知を削除しました。 - Cloud de Confiance コンソールでは、メンテナンス状態が [—] と表示されます。
- gcloud CLI または REST API には、
maintenanceStatusフィールドはありません。
予約ブロック内の特定のホストでメンテナンスを手動で開始するには、gcloud CLI または REST API を使用します。それ以外の場合は、次のいずれかのオプションを選択します。
コンソール
Cloud de Confiance コンソールで、[予約] ページに移動します。
[名前] 列で、予約の名前をクリックします。予約の詳細を示すページが表示されます。
[メンテナンスを実行] をクリックし、次のいずれかのオプションを選択します。
すべてのブロックでメンテナンスを開始するには、[すべての容量] を選択します。
実行中の VM があるブロックでのみメンテナンスを開始するには、[使用中の容量] を選択します。
未使用のブロックと、停止または一時停止された VM を含むブロックでのみメンテナンスを開始するには、[未使用の容量] を選択します。
[OK] をクリックして確定します。
gcloud
予約のメンテナンスを開始するには、
gcloud compute reservations perform-maintenanceコマンドを使用します。gcloud compute reservations perform-maintenance RESERVATION_NAME \ --scope=RESERVATION_MAINTENANCE_SCOPE \ --zone=ZONE予約ブロックでメンテナンスを開始するには、
gcloud compute reservations blocks perform-maintenanceコマンドを使用します。gcloud compute reservations blocks perform-maintenance RESERVATION_NAME \ --block-name=BLOCK_NAME \ --scope=BLOCK_MAINTENANCE_SCOPE \ --zone=ZONE次のように置き換えます。
RESERVATION_NAME: 予約の名前。RESERVATION_MAINTENANCE_SCOPE: 予約のメンテナンス スコープ。次のいずれかの値を指定します。すべてのブロックでメンテナンスを開始するには:
all実行中の VM があるブロックでのみメンテナンスを開始するには:
running未使用のブロックと、停止または一時停止された VM を含むブロックでのみメンテナンスを開始するには:
unused
BLOCK_NAME: 予約内に存在するブロックの名前。BLOCK_MAINTENANCE_SCOPE: 予約ブロックのメンテナンス スコープ。次のいずれかの値を指定します。すべてのホストでメンテナンスを開始するには:
all実行中の VM を含むホストでのみメンテナンスを開始するには:
running未使用のホストと、停止または一時停止された VM を含むホストでのみメンテナンスを開始するには:
unused
ZONE: 予約が存在するゾーン。
REST
予約のメンテナンスを開始するには、
reservations.performMaintenanceメソッドにPOSTリクエストを送信します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME/performMaintenance { "maintenanceScope": "RESERVATION_MAINTENANCE_SCOPE" }予約ブロックのメンテナンスを開始するには、
reservationBlocks.performMaintenanceメソッドにPOSTリクエストを送信します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME/reservationBlocks/BLOCK_NAME/performMaintenance { "maintenanceScope": "BLOCK_MAINTENANCE_SCOPE" }
次のように置き換えます。
PROJECT_ID: Compute Engine が予約を自動的に作成したプロジェクトの ID。ZONE: 予約が存在するゾーン。RESERVATION_NAME: 予約の名前。RESERVATION_MAINTENANCE_SCOPE: 予約のメンテナンス スコープ。次のいずれかの値を指定します。すべてのブロックでメンテナンスを開始するには:
ALL実行中の VM があるブロックでのみメンテナンスを開始するには:
RUNNING未使用のブロックと、停止または一時停止された VM を含むブロックでのみメンテナンスを開始するには:
UNUSED
BLOCK_NAME: 予約内に存在するブロックの名前。SUB_BLOCK_NAME: 予約ブロック内に存在するサブブロックの名前。BLOCK_MAINTENANCE_SCOPE: 予約ブロックのメンテナンス スコープ。次のいずれかの値を指定します。すべてのホストでメンテナンスを開始するには:
ALL実行中の VM を含むホストでのみメンテナンスを開始するには:
RUNNING未使用のホストと、停止または一時停止された VM を含むホストでのみメンテナンスを開始するには:
UNUSED
ハードウェアの緊急メンテナンスの通知を管理する
VM でホストエラーが発生した場合、またはホストに障害があると報告した場合、VM のホストには緊急の計画外のメンテナンスが必要です。デフォルトでは、Compute Engine はこのタイプのメンテナンスをスケジュールするときに、数時間前に通知します。予約済みホストの場合は、緊急メンテナンス通知を有効にして、この通知期間を 7 日以上に延長できます。このアプローチにより、ワークロードの中断をより積極的に制御できます。
予約のハードウェア緊急メンテナンス通知を有効または無効にするには、次のいずれかのオプションを選択します。
gcloud
予約のハードウェア緊急メンテナンス通知を有効にするには、
--enable-emergent-maintenanceフラグを指定してgcloud compute reservations updateコマンドを使用します。gcloud compute reservations update RESERVATION_NAME \ --enable-emergent-maintenance \ --zone=ZONE予約のハードウェア緊急メンテナンス通知を無効にするには、
--no-enable-emergent-maintenanceフラグを指定してgcloud compute reservations updateコマンドを使用します。gcloud compute reservations update RESERVATION_NAME \ --no-enable-emergent-maintenance \ --zone=ZONE
次のように置き換えます。
RESERVATION_NAME: 予約の名前。ZONE: 予約が存在するゾーン。
REST
予約のハードウェア緊急メンテナンス通知を有効または無効にするには、
reservations.updateメソッドにPATCHリクエストを送信します。リクエスト URL に、enableEmergentMaintenanceに設定されたpathsクエリ パラメータを含めます。PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME?paths=enableEmergentMaintenance { "name": "RESERVATION_NAME", "enableEmergentMaintenance": EMERGENCY_MAINTENANCE_NOTIFICATIONS }次のように置き換えます。
PROJECT_ID: 予約が存在するプロジェクトの ID。ZONE: 予約が存在するゾーン。RESERVATION_NAME: 予約の名前。EMERGENCY_MAINTENANCE_NOTIFICATIONS: 次のいずれかの値を指定します。通知を有効にするには:
true通知を無効にするには:
false
次のステップ
ホストイベント中のローカル SSD データの永続性について学習する
ローカル SSD データのバックアップを実行してデータを保持する方法を学習する
ホスト メンテナンス イベントをモニタリングする際のメンテナンス ステータスの定義について確認する