查看维护通知
主机维护事件是指 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
:您是否可以在此虚拟机的通知期内手动启动维护。TRUE
:您可以在通知期内手动启动维护。FALSE
:您无法手动为此虚拟机启动维护。这通常在虚拟机正在积极进行维护期间发生。
maintenanceStatus
:当前维护操作的状态ONGOING
:维护操作正在进行中PENDING
:维护操作尚未开始,但已安排
如果没有维护通知,则响应类似于以下内容:
{ "error": "no notifications have been received yet, try again later" }
维护状态行为
管理维护事件时,请检查 canReschedule
和 maintenanceStatus
的值。这些字段组合起来,表示您可以或不可以执行哪些操作来手动启动维护事件:
canReschedule=True
和maintenanceStatus=Pending
:您可以在预定的开始时间之前手动为实例启动维护事件。canReschedule=False
和maintenanceStatus=Ongoing
:维护正在进行,无法重新安排。canReschedule=False
和maintenanceStatus=Pending
:您的实例不支持手动触发的维护事件。
查看维护通知
您可以通过以下方式查看维护通知:
- 使用 Google Cloud CLI 调用 Cloud TPU API
- 在虚拟机上查询元数据服务器
- 检查 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
设置为true
,maintenanceStatus
设置为PENDING
。这些设置表明,您可以在latestWindowStartTime
中显示的日期之前手动启动预定的维护活动。
元数据服务器
在 TPU 虚拟机中,查询元数据服务器以查看下一个维护事件:
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 虚拟机查询元数据服务器,因为分片中的所有虚拟机都会收到相同的即将发生的维护事件通知。
如需详细了解虚拟机元数据,请参阅 Compute Engine 文档中的虚拟机元数据简介。
检查 Cloud Logging 是否存在维护通知
在 Cloud TPU 上安排通知后,Cloud Logging 中将包含相应事件的系统事件日志,其中包含 methodName
:compute.instance.upcomingMaintenance
。如需查看即将进行的维护事件的日志,请执行以下操作:
在 Google Cloud 控制台导航菜单中,前往“日志浏览器”页面:
使用以下搜索查询可查看安排了即将进行的维护事件的所有 TPU:
"compute.instances.upcomingMaintenance"
Cloud TPU 会按各个虚拟机实例(例如
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." }