本文档介绍了如何使用 AI Hypercomputer 中提供的主机维护功能。本文介绍了如何监控、规划和执行预留容量块的定期维护。如需管理 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
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭证。
安装 Google Cloud CLI。 安装完成后,运行以下命令来初始化 Google Cloud CLI:
gcloud init如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
所需的角色
如需获得管理整个预留过程中的宿主机维护事件所需的权限,请让您的管理员为您授予以下 IAM 角色:
-
针对项目的 Compute Admin (
roles/compute.admin) -
拥有对系统事件审核日志的只读权限:针对项目的 Logs Viewer (
roles/logging.viewer)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色包含管理预留中的主机维护事件所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需跨预留管理主机维护事件,您需要具备以下权限:
-
启动预留的主机维护:项目的
compute.reservations.performMaintenance权限 -
启动预留块的主机维护:针对项目的
compute.reservationBlocks.performMaintenance权限 -
启动预留子块的主机维护:针对项目的
compute.reservationSubBlocks.performMaintenance权限 -
项目的
compute.reservations.list权限(查看预留列表) -
项目的
compute.reservations.get权限(查看预留的详细信息) -
项目的
compute.reservationBlocks.list权限(查看预留中的块列表) -
项目的
compute.reservationSubBlocks.list权限(查看预留块中的子块列表)
概览
如果您尚未查看,请先查看了解并处理主机维护。
如需优化预留容量块的维护,请完成以下步骤:
设置通知提醒。创建基于日志的提醒,以便在预留、预留块或预留子块的维护事件已安排、已开始或已完成时收到通知。此方法有助于您主动规划活动,避免意外停机。
管理各个容量块的维护。查看并根据需要手动启动预留、预留块或预留子块的维护。此流程有助于您提高工作负载对宿主机错误的弹性,防止停机,并确保应用保持可用状态。
为预留设置通知提醒
您可以创建基于日志的提醒政策,以便在预留、预留块或预留子块的维护事件安排、开始或完成时收到通知。
如需为预留、预留块或预留子块的维护事件创建提醒,请完成以下步骤。针对要创建的每项提醒重复此过程。
-
在 Google Cloud 控制台中,前往 Logs Explorer 页面:
如果您使用搜索栏查找此页面,请选择子标题为 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"
接收 A4X Max 或 A4X 实例的预留子块的维护提醒:
如需在安排维护时收到提醒,请执行以下操作:
protoPayload.methodName="compute.reservations.subBlock.upcomingGroupMaintenance" severity>=DEFAULT protoPayload.status.message =~ "scheduled"如需在维护开始时接收提醒,请执行以下操作:
protoPayload.methodName="compute.reservations.subBlock.startGroupMaintenance" severity>=DEFAULT protoPayload.status.message =~ "started"如需在维护完成后接收提醒,请执行以下操作:
protoPayload.methodName="compute.reservations.subBlock.completedGroupMaintenance" severity>=DEFAULT protoPayload.status.message =~ "completed"如需在 A4X Max 或 A4X 机器遇到错误且 Compute Engine 开始维护时收到提醒,请构建以下查询:
protoPayload.methodName="compute.reservations.subblock.unusedmachinerepair" severity>=DEFAULT protoPayload.status.message =~ "maintenance"如需在 A4X Max 或遇到错误的 A4X 机器的维护完成后收到提醒,请构建以下查询:
protoPayload.methodName="compute.reservations.subblock.unusedmachinerepaircomplete" severity>=DEFAULT protoPayload.status.message =~ "repaired"
如需验证查询,请点击运行查询。如果查询有效,则查询结果窗格会显示与查询匹配的日志条目。
在查询结果工具栏中,点击操作列表,然后选择 创建日志提醒。系统会显示创建基于日志的提醒政策窗格。
在提醒详情部分中,执行以下操作:
在提醒政策名称字段中,输入政策的名称。
在政策严重级别列表中,选择警告(或更高的严重级别)。
点击下一步。
在选择要包含在提醒中的日志部分中,点击下一步。
在设置通知频率和自动关闭时长部分中,指定以下内容:
在通知间隔时间列表中,选择您希望接收通知的频率。
在突发事件自动关闭时长列表中,选择 Cloud Logging 在多久后停止发送通知并自动关闭突发事件。
点击下一步。
在应通知的人员部分中,为 Logging 指定通知渠道,以便向其发送通知。
点击保存。
跨预留管理维护
您可以按如下方式查看和控制预留、预留块和预留子块的维护:
如需查看预留、预留块或预留子块即将进行的维护的状态和安排时间,请查看维护状态。
如需在预留、预留块或预留子块上手动启动维护,而不是等待预定的维护日期和时间,请参阅手动启动维护。
如需管理在计算实例的主机因主机错误或主机故障报告而需要紧急、计划外维护时,您希望提前多久收到通知,请管理硬件紧急维护通知。
查看维护状态
您可以通过检查预留、预留块或预留子块的元数据中 upcomingGroupMaintenance 字段的值,查看即将进行的维护的状态。如果预留缺少 upcomingGroupMaintenance 字段,则表示未为相应预留、预留块或预留子块安排维护。如需详细了解 upcomingGroupMaintenance 中的字段,请参阅 Compute Engine 文档中的维护状态定义。
此外,如果预订块或子块已安排维护,则 upcomingGroupMaintenance 字段会包含 maintenanceReasons 字段。此字段用于说明为何为预留块或子块安排了维护,如下表所示:
| 维护类型 | 维护原因 | 计算实例状态 |
|---|---|---|
| 报告有故障的主机后的计划内维护 | FAILURE_GPU_CUSTOMER_REPORTED |
仅适用于在您报告为有故障的主机上运行的实例。 |
| 计划内维护(常规维护) |
|
适用于正在运行、已停止或已暂停的实例。 |
| 计划外紧急维护 |
|
仅适用于正在运行的实例。 |
如需查看预留块或子块中的 maintenanceReasons 字段,或查看子块的维护状态,您必须使用 gcloud CLI 或 REST API。否则,请选择以下选项之一:
控制台
在 Google Cloud 控制台中,前往预留页面。
在维护状态列中,Compute Engine 会显示预留的维护状态。如果您在按需预留表格中没有看到此列,请点击 列显示选项,选中维护状态复选框,然后点击确定。
如需查看预留块的维护状态,请完成以下步骤:
在名称列中,点击预留的名称。系统会显示一个提供相应预留详细信息的页面。
在块表格的维护列中,Compute Engine 会显示预留中块的维护状态。
gcloud
如需查看预留的维护状态,请使用
gcloud compute reservations describe命令,并将--flatten标志设置为resourceStatus.reservationMaintenance: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-a3u-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-a3u-dense-1-block-0002 ... schedulingType: GROUPED ...如果预留块已安排维护,如需查看预留块中子块的维护状态,请使用
gcloud compute reservations sub-blocks list命令:gcloud compute reservations sub-blocks list RESERVATION_NAME \ --block-name=BLOCK_NAME \ --zone=ZONE将
BLOCK_NAME替换为预留中存在的块的名称。如果预留子块已安排维护或正在进行维护,则输出类似于以下内容:
... reservationSubBlockMaintenance: instanceMaintenanceOngoingCount: 0 instanceMaintenancePendingCount: 3 maintenanceOngoingCount: 0 maintenancePendingCount: 32 schedulingType: GROUPED subblockInfraMaintenanceOngoingCount: 0 subblockInfraMaintenancePendingCount: 0 upcomingGroupMaintenance: canReschedule: true maintenanceReasons: - PLANNED_UPDATE - PLANNED_NETWORK_UPDATE maintenanceStatus: PENDING type: SCHEDULED windowEndTime: '2025-11-13T14:00:00.000-08:00' windowStartTime: '2025-11-13T12:00:00.000-08:00' ...
REST
如需查看预留的维护状态,请向以下方法之一发出
GET请求:如需查看所有可用区中的预留,请使用
reservations.aggregatedList方法。如需查看特定可用区中的预留,请使用
reservations.list方法。
在请求网址中,添加以下查询参数:
如需仅显示预留的名称、预留的机器类型和维护状态,请添加设置为
items.name,items.specificReservation.instanceProperties.machineType,items.resourceStatus.reservationMaintenance的fields查询参数。如需仅按指定特定机器类型的预留进行过滤,请使用网址编码的值添加设置为
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" } } } }, ... ] }(可选)如需进一步缩小计算实例列表的范围,请将
filter查询参数设置为其他过滤条件表达式。如果预留已安排维护,那么如需查看预留中块的维护状态,请向
reservationBlocks.list方法发出GET请求。在请求网址中添加fields查询参数并设置为items.name,items.reservationMaintenance:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME/reservationBlocks?fields=items.name,items.reservationMaintenance将
RESERVATION_NAME替换为预留的名称。如果预留块已安排维护或正在进行维护,则输出类似于以下内容:
{ "items": [ { "name": "example-fr-a3u-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字段。如需查看在预留块上运行的实例何时安排了维护,请查看该实例的维护状态。如果预留块已安排维护,那么如需查看预留块中子块的维护状态,请向
reservationSubBlocks.list方法发出GET请求:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME/reservationBlocks/BLOCK_NAME/reservationSubBlocks将
BLOCK_NAME替换为预留中存在的块的名称。如果预留子块已安排维护或正在进行维护,则输出类似于以下内容:
{ "items": [ { "name": "example-fr-a3u-dense-1-block-0001", "reservationSubBlockMaintenance": { "instanceMaintenanceOngoingCount": 0, "instanceMaintenancePendingCount": 3, "maintenanceOngoingCount": 0, "maintenancePendingCount": 6, "schedulingType": "GROUPED", "subblockInfraMaintenanceOngoingCount": 0, "subblockInfraMaintenancePendingCount": 0, "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" ] } } }, ... ] }
手动启动维护
您可以手动开始预留、预留块或预留子块的维护,而无需等待预定时间。此操作有助于您更主动地控制工作负载的中断。
根据预留、预留块或预留子块的维护状态,会发生以下情况:
| 维护状态 | 说明 | 看到的内容 |
|---|---|---|
| 已安排 | Compute Engine 已为预留安排了维护。您可以在预定时间之前手动开始维护。 |
|
| 进行中 | 维护正在进行中。您无法重新安排。 |
|
| 已完成 | 维护已完成。Compute Engine 已从实例中移除所有维护通知。 |
|
如需手动启动预留块内特定宿主的维护,或手动启动预留子块的维护,请使用 gcloud CLI 或 REST API。否则,请选择以下选项之一:
控制台
在 Google Cloud 控制台中,前往预留页面。
在名称列中,点击预留的名称。系统会显示一个提供相应预留详细信息的页面。
点击运行维护,然后选择以下选项之一:
如需对所有块开始维护,请选择所有容量。
如需仅对包含正在运行的实例的块启动维护,请选择使用中的容量。
如需仅对未使用的块以及包含已停止或已暂停实例的块启动维护,请选择未使用的容量。
点击确定进行确认。
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如需在预留子块上开始维护,请使用
gcloud compute reservations sub-blocks perform-maintenance命令:gcloud compute reservations sub-blocks perform-maintenance RESERVATION_NAME \ --block-name=BLOCK_NAME \ --subblock-name=SUB_BLOCK_NAME \ --zone=ZONE
替换以下内容:
RESERVATION_NAME:预留的名称。RESERVATION_MAINTENANCE_SCOPE:预留的维护范围。请指定以下某个值:如需为所有区块启动维护,请执行以下操作:
all如需仅对运行实例的区块启动维护,请执行以下操作:
running如需仅对未使用的块以及包含已停止或已暂停实例的块启动维护,请运行以下命令:
unused
BLOCK_NAME:预留中存在的块的名称。SUB_BLOCK_NAME:预留块中存在的子块的名称。BLOCK_MAINTENANCE_SCOPE:预留块的维护范围。请指定以下某个值:如需在所有主机上启动维护,请执行以下操作:
all仅对运行实例的宿主机启动维护:
running如需仅在未使用的主机以及已停止或已暂停实例的主机上开始维护,请运行以下命令:
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" }如需开始对预留子块进行维护,请向
reservationSubBlocks.performMaintenance方法发出POST请求:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME/reservationBlocks/BLOCK_NAME/reservationSubBlocks/SUB_BLOCK_NAME/performMaintenance { "maintenanceScope": "BLOCK_MAINTENANCE_SCOPE" }
替换以下内容:
PROJECT_ID:Compute Engine 自动创建预留的项目 ID。ZONE:预留所在的可用区。RESERVATION_NAME:预留的名称。RESERVATION_MAINTENANCE_SCOPE:预留的维护范围。请指定以下某个值:如需为所有区块启动维护,请执行以下操作:
ALL如需仅对运行实例的区块启动维护,请执行以下操作:
RUNNING如需仅对未使用的块以及包含已停止或已暂停实例的块启动维护,请运行以下命令:
UNUSED
BLOCK_NAME:预留中存在的块的名称。SUB_BLOCK_NAME:预留块中存在的子块的名称。BLOCK_MAINTENANCE_SCOPE:预留块的维护范围。请指定以下某个值:如需在所有主机上启动维护,请执行以下操作:
ALL仅对运行实例的宿主机启动维护:
RUNNING如需仅在未使用的主机以及已停止或已暂停实例的主机上开始维护,请运行以下命令:
UNUSED
管理硬件紧急维护通知
当实例遇到主机错误或您报告其主机出现故障后,该实例的主机需要进行紧急的临时维护。默认情况下,Compute Engine 在安排此类维护时会提前数小时发出通知。对于预留主机,您可以启用紧急维护通知,将此通知期延长至至少七天。此方法有助于您更主动地控制工作负载中断。
如需为预留启用或停用硬件紧急维护通知,请选择以下选项之一:
gcloud
如需为预留启用硬件紧急维护通知,请使用
gcloud compute reservations update命令,并添加--enable-emergent-maintenance标志:gcloud compute reservations update RESERVATION_NAME \ --enable-emergent-maintenance \ --zone=ZONE如需针对预留停用硬件紧急维护通知,请使用
gcloud compute reservations update命令并带上--no-enable-emergent-maintenance标志:gcloud compute reservations update RESERVATION_NAME \ --no-enable-emergent-maintenance \ --zone=ZONE
替换以下内容:
RESERVATION_NAME:预留的名称。ZONE:预留所在的可用区。
REST
如需为预留启用或停用硬件紧急维护通知,请向 reservations.update 方法发出 PATCH 请求。在请求网址中添加 paths 查询参数并设置为 enableEmergentMaintenance。
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
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2026-02-24。