メンテナンス通知を表示する

ホスト メンテナンス イベントとは、Google Cloud が TPU のメンテナンスまたは修理アクティビティを実行する必要がある場合です。Google は、メンテナンスが実行される前に、今後のホストメンテナンスに関する通知を送信します。メンテナンスの時間枠が開始すると、Google Cloud はインスタンスのメンテナンスを自動的に実行します。インスタンスの今後のメンテナンスの時間枠をモニタリングすると、中断を最小限に抑えながら、今後のメンテナンスを処理するワークロードをプロアクティブに準備できます。

Cloud TPU では、Google Cloud CLI を使用して、またはメタデータ サーバーをクエリすることで、メンテナンス通知を表示できます。今後のメンテナンス イベントは Cloud Logging でも確認できます。GKE の TPU のメンテナンス通知を表示する方法については、GPU と TPU の GKE ノードの中断を管理するをご覧ください。

メンテナンス通知フィールド

メンテナンス通知には次のフィールドが含まれます。

  • windowStartTime: メンテナンスが行われる時間枠の開始時刻
  • windowEndTime: メンテナンスが行われる時間枠の終了時刻
  • latestWindowStartTime: メンテナンスの時間枠を移動できる最も遅い時刻
  • maintenanceType: 実行するメンテナンスのタイプ
    • SCHEDULED: メンテナンスの 7 日前に通知が届きます。
    • UNSCHEDULED: メンテナンスは、スケジュールされたメンテナンス イベントよりも通知が少ない重要な更新を表します。
  • canReschedule: この VM の通知期間中にメンテナンスを手動で開始できるかどうか。
    • TRUE: 通知期間中にメンテナンスを手動で開始できます。
    • FALSE: この VM のメンテナンスは手動で開始できません。これは通常、VM がアクティブにメンテナンスされている期間中に発生します。
  • maintenanceStatus: 現在のメンテナンス オペレーションのステータス。
    • ONGOING: メンテナンス オペレーションが進行中です
    • PENDING: メンテナンス オペレーションはまだ開始されていませんが、スケジュールされています。

メンテナンス通知がない場合は、レスポンスは次のようになります。

{ "error": "no notifications have been received yet, try again later" }

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

メンテナンス イベントを管理する際は、canReschedulemaintenanceStatus の値を確認します。これらのフィールドを組み合わせると、メンテナンス イベントを手動で開始する場合に実行できるアクションと実行できないアクションが示されます。

  • canReschedule=TruemaintenanceStatus=Pending: スケジュールされた開始時間より前に、インスタンスのメンテナンス イベントを手動で開始できます。
  • canReschedule=FalsemaintenanceStatus=Ongoing: メンテナンスが進行中であり、スケジュールを変更できません。
  • canReschedule=FalsemaintenanceStatus=Pending: インスタンスは手動トリガーのメンテナンス イベントをサポートしていません。

メンテナンス通知を表示する

メンテナンス通知を表示するには:

  • Google Cloud CLI を使用して Cloud TPU API を呼び出す
  • VM のメタデータ サーバーにクエリを実行する
  • Cloud Logging を確認する

TPU でメンテナンス通知を確認する

gcloud

gcloud alpha compute tpus tpu-vm describe コマンドを使用して、メンテナンス通知を表示します。

gcloud alpha compute tpus tpu-vm describe TPU_NAME \
    --zone=ZONE

今後のメンテナンス イベントがある場合、レスポンスには次のようなセクションが含まれます。

upcomingMaintenance:
    canReschedule: true
    latestWindowStartTime: "2025-12-01T19:00:00Z"
    maintenanceStatus: PENDING
    type: SCHEDULED
    windowEndTime: "2025-12-01T22:00:00Z"
    windowStartTime: "2025-12-01T19:00:00Z"

このレスポンスでは、次のことが行われます。

  • windowStartTime に表示されている日時にメンテナンスがスケジュールされます。
  • canRescheduletrue に、maintenanceStatusPENDING に設定されています。これらの設定は、latestWindowStartTime に表示されている日付より前に、スケジュールされたメンテナンス イベントを手動で開始できることを示します。

メタデータ サーバー

TPU VM からメタデータ サーバーにクエリを実行して、次のメンテナンス イベントを確認します。

curl http://metadata.google.internal/computeMetadata/v1/instance/upcoming-maintenance?alt=json -H "Metadata-Flavor: Google"

今後のメンテナンス イベントがある場合、レスポンスには次のようなセクションが含まれます。

Upcoming maintenance: {
    "can_reschedule" : "true",
    "latest_window_start_time" : "2024-06-12T16:00:01+00:00",
    "maintenance_status" : "PENDING",
    "type" : "SCHEDULED",
    "window_end_time" : "2024-06-12T20:00:00+00:00",
    "window_start_time" : "2024-06-12T16:00:00+00:00"
}

今後のメンテナンス イベント通知はスライス内のすべての VM で同じであるため、スライス内の任意の TPU VM からメタデータ サーバーにクエリを実行できます。

VM メタデータの詳細については、Compute Engine ドキュメントのVM メタデータについてをご覧ください。

Cloud Logging でメンテナンス通知を確認する

Cloud TPU で通知がスケジュールされると、Cloud Logging にイベントのシステム イベントログが methodName:compute.instance.upcomingMaintenance とともに記録されます。今後のメンテナンス イベントのログを表示するには:

  1. Google Cloud コンソールのナビゲーション メニューで、ログ エクスプローラ ページに移動します。

    [ログ エクスプローラ] に移動

  2. 次の検索クエリを使用して、今後のメンテナンス イベントがスケジュールされている TPU を表示します。

    "compute.instances.upcomingMaintenance"

    Cloud TPU は、個々の VM インスタンス(t1v-n-5bdca789-w-0 など)ごとに、今後のメンテナンス イベントを Cloud Logging に記録します。

メンテナンス通知ログの例

ログ エクスプローラに、次のような値を持つメンテナンス イベント通知が表示されます。

  • methodName: "compute.instances.upcomingMaintenance"
  • metadata:
    • maintenanceStatus: "PENDING"
    • windowStartTime: "2024-07-23T20:00:00Z"

今後のメンテナンス イベントの完全なログエントリの例を次に示します。

{
  "protoPayload": {
    "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
    "status": {
      "message": "Maintenance is scheduled for this instance. Review the maintenance schedule by describing the VM with gcloud CLI or querying the http://metadata.google.internal/computeMetadata/v1/instance/upcoming-maintenance metadata key."
    },
    "serviceName": "compute.googleapis.com",
    "methodName": "compute.instances.upcomingMaintenance",
    "resourceName": "projects/cloud-tpu-multipod-dev/zones/europe-west4-b/instances/t1v-n-9472280f-w-0",
    "request": {
      "@type": "type.googleapis.com/compute.instances.upcomingMaintenance"
    },
    "metadata": {
      "type": "SCHEDULED",
      "windowStartTime": "2024-11-15T04:00:00Z",
      "canReschedule": true,
      "latestWindowStartTime": "2024-11-15T04:00:01Z",
      "windowEndTime": "2024-11-15T08:00:00Z",
      "maintenanceStatus": "PENDING"
  },
  "logName": "projects/cloud-tpu-multipod-dev/logs/cloudaudit.googleapis.com%2Fsystem_event",
  "operation": {
    "id": "systemevent-1731038451389-6265ecbfcd453-5127b81e-f40b8149",
    "producer": "compute.instances.upcomingMaintenance",
    "first": true,
    "last": true
  },
  "receiveTimestamp": "2024-11-08T04:00:54.457835088Z"
}

メンテナンス イベントが開始すると、次のような値を持つ新しい情報イベントがログに表示されます。

  • methodName: "compute.instances.upcomingMaintenance"
  • metadata:
    • maintenanceStatus: "ONGOING"
    • windowStartTime: "2024-07-23T20:00:00Z"

メンテナンス イベントが終了すると、次のような値を持つ新しい情報イベントが監査ログに表示されます。

  • methodName: "compute.instances.upcomingMaintenance"
  • status: { message: "Maintenance window has completed for this instance. All maintenance notifications on the instance have been removed." }

次のステップ