查看維護作業通知

主機維護事件是指 Google Cloud 必須在 TPU 上執行維護或修復活動時。Google 會在維護作業開始前,傳送即將進行的代管服務器維護作業通知。維護期間開始後, Google Cloud會自動對執行個體執行維護作業。監控執行個體的近期維護期間,您就能主動準備工作負載,以便在維護期間盡量減少中斷情形。

您可以使用 Google Cloud CLI 和查詢中繼資料伺服器,查看 Cloud TPU 的維護通知。您也可以在 Cloud Logging 中查看即將發生的維護事件。如要瞭解如何查看 GKE 中的 TPU 維護通知,請參閱「管理 GPU 和 TPU 的 GKE 節點中斷情形」。

維護通知欄位

維護作業通知包含下列欄位:

  • windowStartTime:維護作業開始的時間範圍
  • windowEndTime:維護作業的時間範圍結束時間
  • latestWindowStartTime:維護時段可延後至的最晚時間
  • maintenanceType:要執行的維護作業類型
    • SCHEDULED:維護作業會提前七天通知
    • 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 中。
  • canReschedule 設為 truemaintenanceStatus 設為 PENDING。這些設定表示您可以在 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"
}

您可以從切片中的任何 TPU VM 查詢中繼資料伺服器,因為切片中的所有 VM 都會收到相同的即將發生維護事件通知。

如要進一步瞭解 VM 中繼資料,請參閱 Compute Engine 說明文件中的「關於 VM 中繼資料」。

查看 Cloud Logging 是否有維護通知

在 Cloud TPU 上排定通知時,Cloud Logging 會包含事件的系統事件記錄,並附上 methodName: compute.instance.upcomingMaintenance。如要查看即將發生的維護事件記錄,請按照下列步驟操作:

  1. 在 Google Cloud 控制台導覽選單中,前往「Logs Explorer」頁面:

    前往「Logs Explorer」

  2. 使用下列搜尋查詢,查看所有已排定維護事件的 TPU:

    "compute.instances.upcomingMaintenance"

    Cloud TPU 會在 Cloud Logging 中,依個別 VM 執行個體記錄即將發生的維護事件,例如 t1v-n-5bdca789-w-0

維護通知記錄範例

記錄檔探索工具會顯示維護事件通知,其中的值類似以下內容:

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

後續步驟