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
-
Google Cloud CLI をインストールします。 インストール後、次のコマンドを実行して Google Cloud CLI を初期化します。
gcloud init外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
- Set a default region and zone.
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Google Cloud CLI をインストールします。 インストール後、次のコマンドを実行して Google Cloud CLI を初期化します。
gcloud init外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
必要なロール
予約全体でホスト メンテナンス イベントを管理するために必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
-
プロジェクトに対する Compute 管理者(
roles/compute.admin) -
システム イベントの監査ログに対する読み取り専用権限: プロジェクトに対するログ閲覧者 (
roles/logging.viewer)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
これらの事前定義ロールには、予約全体でホスト メンテナンス イベントを管理するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
予約間でホスト メンテナンス イベントを管理するには、次の権限が必要です。
-
予約のホスト メンテナンスを開始する: プロジェクトに対する
compute.reservations.performMaintenance -
予約ブロックのホスト メンテナンスを開始する: プロジェクトに対する
compute.reservationBlocks.performMaintenance- 予約のリストを表示するには
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
概要
予約済みの容量ブロックのメンテナンスを最適化する手順は次のとおりです。
通知アラートを設定します。ログベースのアラートを作成して、予約または予約ブロックのスケジュール設定、開始、完了したメンテナンス イベントに関する通知を受け取ります。このアプローチにより、アクティビティを事前に計画し、予期しないダウンタイムを回避できます。
容量ブロック全体でメンテナンスを管理します。予約または予約ブロック全体でメンテナンスを表示し、必要に応じて手動で開始します。このプロセスは、ホストエラーに対するワークロードの復元力を高め、ダウンタイムを防止し、アプリケーションの可用性を維持するのに役立ちます。
H4D マシンタイプの頻度とメンテナンスの動作の詳細については、H4D インスタンスのメンテナンス エクスペリエンスをご覧ください。
予約の通知アラートを設定する
予約または予約ブロックのスケジュール設定、開始、完了したメンテナンス イベントに関する通知を受け取るには、ログベースのアラート ポリシーを作成します。
予約または予約ブロックのメンテナンス イベントのアラートを作成する手順は次のとおりです。作成するアラートごとにこの手順を繰り返します。
-
Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [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 を使用する必要があります。または、次のオプションのいずれかを選択します。コンソール
Google Cloud コンソールで、[予約] ページに移動します。
[メンテナンス ステータス] 列に、予約のメンテナンス状態が表示されます。[オンデマンド予約] テーブルにこの列が表示されていない場合は、 [列表示オプション] をクリックし、[メンテナンス ステータス] チェックボックスをオンにして、[OK] をクリックします。
予約ブロックのメンテナンス状態を表示する手順は次のとおりです。
[名前] 列で、予約の名前をクリックします。予約の詳細を示すページが表示されます。
[ブロック] テーブルの [メンテナンス] 列に、予約内のブロックのメンテナンス状態が表示されます。
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 エンコードされた値を使用して
filterクエリ パラメータをspecificReservation.instanceProperties.machineType:MACHINE_TYPEに設定します。
たとえば、すべてのゾーンの予約を表示するには、次のように
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 で、予約の定期メンテナンスがスケジュールされています。スケジュールされた時間より前に、メンテナンスを手動で開始できます。 - Google Cloud コンソールでは、メンテナンス状態が [実行準備完了 - DATE で実行されます] と表示されます。
- gcloud CLI または REST API では、Compute Engine は
maintenanceStatusフィールドをPENDINGに設定します。
処理中 メンテナンスが進行中です。スケジュールを変更することはできません。 - Google Cloud コンソールでは、メンテナンス状態が [実行中] と表示されます。
- gcloud CLI または REST API では、Compute Engine は
maintenanceStatusフィールドをONGOINGに設定します。
完了 メンテナンスが完了しました。Compute Engine は、VM からすべてのメンテナンス通知を削除しました。 - Google Cloud コンソールでは、メンテナンス状態が — と表示されます。
- gcloud CLI または REST API には、
maintenanceStatusフィールドはありません。
予約ブロック内の特定のホストでメンテナンスを手動で開始するには、gcloud CLI または REST API を使用します。それ以外の場合は、次のいずれかのオプションを選択します。
コンソール
Google Cloud コンソールで、[予約] ページに移動します。
[名前] 列で、予約の名前をクリックします。予約の詳細を示すページが表示されます。
[メンテナンスを実行] をクリックし、次のいずれかのオプションを選択します。
すべてのブロックでメンテナンスを開始するには、[すべての容量] を選択します。
実行中の 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 データのバックアップを行う方法を学習する
ホスト メンテナンス イベントをモニタリングする際のメンテナンス ステータスの定義について確認する
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-12-04 UTC。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["わかりにくい","hardToUnderstand","thumb-down"],["情報またはサンプルコードが不正確","incorrectInformationOrSampleCode","thumb-down"],["必要な情報 / サンプルがない","missingTheInformationSamplesINeed","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-12-04 UTC。"],[],[]] -