本页介绍了如何在受支持的 Compute Engine 实例上手动启动主机维护事件。借助此功能,您可以启动维护事件以控制实例的维护时间。这对于可能受性能下降或停机时间影响的工作负载非常有用,因为您需要维护窗口在特定时间开始。
手动启动维护事件后,主机维护会立即开始。您无法指定维护活动的开始日期或时间。如果您不使用此功能,则维护事件会在即将进行的维护通知中所示的时间进行。
如果您想先测试应用将如何处理维护事件,可以模拟维护事件。
限制
您可以为使用以下机器类型的实例手动启动主机维护事件:
加速器优化机器系列:
计算优化虚拟机系列:
通用机器系列:
内存优化机器系列:
存储优化机器系列:
准备工作
-
如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以选择以下任一选项向 Compute Engine 进行身份验证:
Select the tab for how you plan to use the samples on this page:
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
-
如需获取计算实例的相关信息,请执行以下操作:
compute.instances.get
INSTANCE_NAME
:计算实例的名称。ZONE
:实例所在的可用区。PROJECT_NAME
:项目的名称ZONE
:计算实例所在的可用区INSTANCE_NAME
:实例的名称- 了解如何模拟主机维护事件。
- 了解如何获取实时迁移通知。
- 了解如何为主机维护通知配置提醒。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
所需的角色
如需获得管理虚拟机维护所需的权限,请让管理员向您授予项目的 Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。此预定义角色包含管理虚拟机维护所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
管理虚拟机维护需要以下权限:
手动启动主机维护事件
Compute Engine 会通过多种方法针对即将进行的维护事件发送通知。您可以根据通知中的信息确定手动启动维护事件的时间范围。
查看通知信息
您可以通过以下方式查找维护事件通知:
如果有关主机维护事件的通知包含
canReschedule=True
和maintenanceStatus=Pending
,则您可以选择在自己选择的时间开始维护,也可以等待维护事件在windowStartTime
指定的时间发生。如果没有收到通知,并且您尝试手动启动维护事件,则会显示以下消息:
There is no reschedulable upcoming maintenance.
这表示未安排维护事件,无需执行任何操作。
启动维护事件
您可以选择何时开始主机维护,而不必等到安排的时间。使用 Google Cloud CLI 或 REST 触发维护事件,该事件会立即开始。
gcloud
如需启动维护事件,请使用
compute instances perform-maintenance
命令。输入命令后,主机维护会立即开始。gcloud compute instances perform-maintenance INSTANCE_NAME \ --zone=ZONE
替换以下内容:
响应类似于以下示例:
upcomingMaintenance:{ "canReschedule":false "latestWindowStartTime": "2023-12-01T19:00:01Z" "maintenanceStatus":"ONGOING" "type":"SCHEDULED" "windowEndTime": "2023-12-01T22:00:00Z" "windowStartTime": "2023-12-01T19:00:00Z" }
在响应中,
canReschedule
设置为false
,maintenanceStatus
设置为ONGOING
,这表示主机维护操作正在进行中。REST
如需启动维护事件,请使用
instances.performMaintenance
方法构建POST
请求。POST: https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/INSTANCE_NAME/performMaintenance
替换以下内容:
响应如下所示:
upcomingMaintenance:{ "canReschedule":false "latestWindowStartTime": "2023-12-01T19:00:01Z" "maintenanceStatus":"ONGOING" "type":"SCHEDULED" "windowEndTime": "2023-12-01T22:00:00Z" "windowStartTime": "2023-12-01T19:00:00Z" }
在响应中,
canReschedule
设置为false
,maintenanceStatus
设置为ONGOING
,这表示主机维护操作正在进行中。后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-12-22。
-