本文档介绍了如何为 Compute Engine 实例设置主机维护政策,以确定其在主机事件期间的行为。如需详细了解主机维护政策,请参阅主机维护政策。
主机维护政策决定了当实例所在的主机需要维护或遇到错误时,实例的响应方式。为实例配置主机维护政策有助于您执行以下操作:
最大限度地减少停机时间。
防止数据丢失。
限制
对于主机维护政策,存在以下限制:
使用 E2 机器类型的虚拟机实例只能在主机维护事件期间实时迁移,除非它们是 Spot 虚拟机或抢占式虚拟机。
以下实例只能在主机维护事件期间停止:
不支持实时迁移的实例,例如裸机实例或挂接了 GPU 的虚拟机。
Spot 虚拟机或抢占式虚拟机。
Spot 虚拟机和抢占式虚拟机在发生主机错误或按计划停止后无法自动重启。
准备工作
-
如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以通过选择以下选项之一向 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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
-
如需创建实例,请执行以下操作:
- 针对项目的
compute.instances.create
权限 - 使用自定义映像创建虚拟机:针对映像的
compute.images.useReadOnly
权限 - 使用快照创建虚拟机:针对快照的
compute.snapshots.useReadOnly
权限 - 使用实例模板创建虚拟机:针对实例模板的
compute.instanceTemplates.useReadOnly
权限 - 为虚拟机分配旧版网络:针对项目的
compute.networks.use
权限 - 为虚拟机指定静态 IP 地址:针对项目的
compute.addresses.use
权限 - 使用旧版网络时为虚拟机分配外部 IP 地址:针对项目的
compute.networks.useExternalIp
权限 - 为虚拟机指定子网:针对项目或所选子网的
compute.subnetworks.use
权限 - 在使用 VPC 网络时为虚拟机分配外部 IP 地址:针对项目或所选子网的
compute.subnetworks.useExternalIp
权限 - 为虚拟机设置虚拟机实例元数据:针对项目的
compute.instances.setMetadata
权限 - 为虚拟机设置标记:针对虚拟机的
compute.instances.setTags
权限 - 为虚拟机设置标签:针对虚拟机的
compute.instances.setLabels
权限 - 为虚拟机设置要使用的服务账号:针对虚拟机的
compute.instances.setServiceAccount
权限 - 为虚拟机创建新磁盘:针对项目的
compute.disks.create
权限 - 以只读或读写模式挂接现有磁盘:针对磁盘的
compute.disks.use
权限 - 以只读模式挂接现有磁盘:针对磁盘的
compute.disks.useReadOnly
权限
- 针对项目的
- 如需创建实例模板:针对项目的
compute.instanceTemplates.create
权限 -
如需更新实例的主机维护政策,请执行以下操作:
实例上的
compute.instances.setScheduling
维护行为 (
onHostMaintenance
):在实例的主机上发生可能导致实例重启的维护事件期间,实例会发生什么情况。您可以将此属性设置为以下某个值:迁移:Compute Engine 会自动将您的实例实时迁移到另一个主机。这是除 Spot 虚拟机和抢占式虚拟机以外的所有类型实例的默认设置。
终止:Compute Engine 会停止您的实例。这是 Spot 虚拟机或抢占式虚拟机的默认设置,也是 Z3 实例、裸金属实例以及挂接了 GPU 或 TPU 的实例支持的唯一设置。
自动重启 (
automaticRestart
):在实例崩溃或 Compute Engine 因计划性停止(例如维护事件)而停止实例时,实例是否重启。您可以将此属性设置为以下某个值:开启:Compute Engine 会自动重启实例。这是除 Spot 虚拟机和抢占式虚拟机以外的所有类型实例的默认设置。您可以按如下方式指定此设置:
对于 Google Cloud 控制台,在高级窗格中的自动重启列表中,选择开启(推荐)。
对于 Google Cloud CLI,请使用
--restart-on-failure
标志。对于 REST,请将
automaticRestart
字段设置为true
。
关闭:Compute Engine 不会重启实例。这是 Spot 虚拟机或可抢占式虚拟机的默认设置。您可以按如下所示指定此设置:
对于 Google Cloud 控制台,在高级窗格中的自动重启列表中,选择关闭。
对于 gcloud CLI,请使用
--no-restart-on-failure
标志。对于 REST,请将
automaticRestart
字段设置为false
。
本地 SSD 数据恢复超时 (
localSsdRecoveryTimeout
):此设置仅适用于挂接了本地 SSD 磁盘的实例。它决定了 Compute Engine 在主机发生错误后等待从本地 SSD 磁盘恢复数据的时长。默认情况下,此属性未设置。您可以将此属性设置为以下任一项:未设置:Compute Engine 使用默认等待时间:
对于 Z3 虚拟机,为 6 小时
对于所有其他类型的实例,1 小时
一个介于 0 到 168 之间的整数:等待时长(以小时为单位)。将此属性设置为
0
表示 Compute Engine 不会恢复本地 SSD 数据,并会立即重启实例。
主机错误超时 (
hostErrorTimeoutSeconds
):此属性决定 Compute Engine 等待重启无响应实例的时长。您必须在实例变为无响应之前配置此设置。使用足够长的时间来让实例从无响应状态恢复。您可以将此属性设置为以下某个值:未设置:Compute Engine 最长会等待 330 秒(5 分 30 秒)。这是任何类型实例的默认设置。
一个介于 90 到 330 之间的整数:等待时间(以秒为单位),增量为 30 秒。
您无法更改以下类型的实例的维护行为 (
onHostMaintenance
):使用 E2 机器类型的虚拟机。
Spot 虚拟机或抢占式虚拟机。
不支持实时迁移的实例。
您无法将 Spot 虚拟机或抢占式虚拟机配置为在发生主机错误或按计划停止后自动重启。
在 Google Cloud 控制台中,前往虚拟机实例页面。
在名称列中,点击要更新的实例的名称。系统会显示一个页面,其中包含实例的详细信息。
点击
修改。系统随即会显示一个页面,您可以在其中修改实例属性。在管理部分中,您可以执行以下一项或多项操作:
如需更改维护事件期间的行为,请从主机维护时列表中选择其他选项
如需更改在重启无响应实例之前的超时期限,请从主机错误超时列表中选择其他选项。
如需更改在主机出错或按计划停止后是否重启实例,请从自动重启列表中选择其他选项。
点击保存。
如需更改主机维护行为,请添加
--maintenance-policy
标志。如需更改自动重启行为,请执行以下操作之一:
如需自动重启实例,请添加
--restart-on-failure
标志。如需防止实例自动重启,请添加
--no-restart-on-failure
标志。
如果您的实例挂接了本地 SSD 磁盘,如需更改本地 SSD 数据恢复超时设置,请添加
--local-ssd-recovery-timeout
标志。如需更改主机错误超时,请添加
--host-error-timeout-seconds
标志。INSTANCE_NAME
:实例的名称。ERROR_DETECTION_TIMEOUT
:Compute Engine 重启无响应实例之前等待的秒数。该值必须介于90
(90 秒)到330
(330 秒,即 5 分 30 秒)之间。只能以 30 秒为单位进行递增。MAINTENANCE_POLICY
:实例的维护行为。值可以是TERMINATE
或MIGRATE
。LOCAL_SSD_RECOVERY_TIMEOUT
:从已挂接的本地 SSD 磁盘恢复数据所花费的小时数。该值必须介于0
(0 小时)和168
(168 小时或 7 天)之间。将此字段设置为0
表示 Compute Engine 不会恢复本地 SSD 数据。ZONE
:实例所在的可用区。如需更改主机维护行为,请添加
onHostMaintenance
字段。如需更改自动重启行为,请执行以下操作之一:
如需自动重启实例,请添加
automaticRestart
字段。如需防止实例自动重启,请添加
automaticRestart
字段。
如果您的实例挂接了本地 SSD 磁盘,如需更改本地 SSD 数据恢复超时设置,请添加
localSsdRecoveryTimeout
字段。如需更改主机错误超时设置,请添加
hostErrorTimeoutSeconds
字段。PROJECT_ID
:实例所在项目的 ID。ZONE
:实例所在的可用区。INSTANCE_NAME
:实例的名称。AUTOMATIC_RESTART
:实例崩溃或 Compute Engine 因计划性停止而停止实例时的自动重启行为。请指定以下某个值:如需让 Compute Engine 自动重启实例,请执行以下操作:
true
如需防止自动重启,请执行以下操作:
false
ERROR_DETECTION_TIMEOUT
:重启无响应实例之前等待的秒数。该值必须介于90
(90 秒)到330
(330 秒,即 5 分 30 秒)之间。只能以 30 秒为单位进行递增。LOCAL_SSD_RECOVERY_TIMEOUT
:从已挂接的本地 SSD 磁盘恢复数据所花费的小时数。该值必须介于0
(0 小时)和168
(168 小时或 7 天)之间。将此字段设置为0
表示 Compute Engine 不会恢复本地 SSD 数据。MAINTENANCE_POLICY
:实例的维护行为。值可以是TERMINATE
或MIGRATE
。在 Google Cloud 控制台中,前往创建实例页面。
在名称字段中,输入实例的名称。
在区域和可用区字段中,指定要在哪个区域和可用区创建实例。
指定实例的机器类型。
在导航菜单中,点击高级。
在预配模型部分中,展开虚拟机预配模型高级设置,然后执行以下一项或多项操作:
如需设置维护事件期间的行为,请在主机维护时列表中,选择以下选项之一:
如需在主机维护事件期间迁移实例,请选择迁移虚拟机实例(推荐)。
如需在主机维护事件期间停止实例,请选择终止虚拟机实例。
如需设置在重启无响应实例之前的超时期限,请在主机错误超时列表中,选择以下选项之一:
如需不指定主机错误超时,请选择未指定(默认)。
如需指定主机错误超时,请选择一个可用选项(最长为 5 分 30 秒)。
如需设置实例在崩溃或停止时是否重启,请在自动重启列表中,选择以下选项之一:
如需在主机出错或按计划停止后自动重启实例,请选择启用(推荐)。
如需防止实例在主机出错或按计划停止后自动重启,请选择关闭。
点击创建。
如需设置主机维护行为,请添加
--maintenance-policy
标志。如需设置自动重启行为,请执行以下操作之一:
如需自动重启实例,请添加
--restart-on-failure
标志。如需防止实例自动重启,请添加
--no-restart-on-failure
标志。
如果您的实例挂接了本地 SSD 磁盘,如需设置本地 SSD 数据恢复超时,请添加
--local-ssd-recovery-timeout
标志。如需设置主机错误超时,请添加
--host-error-timeout-seconds
标志。INSTANCE_NAME
:实例的名称。ERROR_DETECTION_TIMEOUT
:重启无响应实例之前等待的秒数。该值必须介于90
(90 秒)到330
(330 秒,即 5 分 30 秒)之间。只能以 30 秒为单位进行递增。LOCAL_SSD_RECOVERY_TIMEOUT
:从已挂接的本地 SSD 磁盘恢复数据所花费的小时数。该值必须介于0
(0 小时)和168
(168 小时或 7 天)之间。将此字段设置为0
表示 Compute Engine 不会恢复本地 SSD 数据。MACHINE_TYPE
:要使用的机器类型。MAINTENANCE_POLICY
:实例的维护行为。值可以是TERMINATE
或MIGRATE
。如果您要创建 Spot 虚拟机、抢占式虚拟机或不支持实时迁移的实例,则只能使用TERMINATE
。ZONE
:要在其中创建实例的区域。如需设置主机维护行为,请添加
onHostMaintenance
字段。如需设置自动重启行为,请执行以下操作之一:
如需自动重启实例,请添加
automaticRestart
字段。如需防止实例自动重启,请添加
automaticRestart
字段。
如果您的实例挂接了本地 SSD 磁盘,如需设置本地 SSD 数据恢复超时,请添加
localSsdRecoveryTimeout
字段。如需设置主机错误超时,请添加
hostErrorTimeoutSeconds
字段。PROJECT_ID
:要在其中创建实例的项目的 ID。ZONE
:要在其中创建实例的区域。INSTANCE_NAME
:实例的名称。MACHINE_TYPE
:要使用的机器类型。IMAGE_PROJECT
:映像所属的映像项目;例如debian-cloud
。如需详细了解支持的映像项目,请参阅公共映像。IMAGE
:指定以下其中一项:AUTOMATIC_RESTART
:实例崩溃或 Compute Engine 因计划性停止而停止实例时的自动重启行为。请指定以下某个值:如需让 Compute Engine 自动重启实例,请执行以下操作:
true
如需防止自动重启,请执行以下操作:
false
ERROR_DETECTION_TIMEOUT
:重启无响应实例之前等待的秒数。该值必须介于90
(90 秒)到330
(330 秒,即 5 分 30 秒)之间。只能以 30 秒为单位进行递增。LOCAL_SSD_RECOVERY_TIMEOUT
:从已挂接的本地 SSD 磁盘恢复数据所花费的小时数。此值必须介于0
(0 小时)到168
(168 小时或 7 天)之间。将此字段设置为0
表示 Compute Engine 不会恢复本地 SSD 数据。MAINTENANCE_POLICY
:实例的维护行为。值可以是TERMINATE
或MIGRATE
。如果您要创建的 Spot 虚拟机或实例不支持实时迁移,则只能使用TERMINATE
。如需设置主机维护行为,请添加
--maintenance-policy
标志。如需设置自动重启行为,请执行以下操作之一:
如需自动重启实例,请添加
--restart-on-failure
标志。如需防止实例自动重启,请添加
--no-restart-on-failure
标志。
如果您的实例挂接了本地 SSD 磁盘,如需设置本地 SSD 数据恢复超时,请添加
--local-ssd-recovery-timeout
标志。如需设置主机错误超时,请添加
--host-error-timeout-seconds
标志。COUNT
:要创建的实例数量。ERROR_DETECTION_TIMEOUT
:重启无响应实例之前等待的秒数。该值必须介于90
(90 秒)到330
(330 秒,即 5 分 30 秒)之间。只能以 30 秒为单位进行递增。LOCAL_SSD_RECOVERY_TIMEOUT
:从已挂接的本地 SSD 磁盘恢复数据所花费的小时数。该值必须介于0
(0 小时)和168
(168 小时或 7 天)之间。将此字段设置为0
表示 Compute Engine 不会恢复本地 SSD 数据。MACHINE_TYPE
:要使用的机器类型。MAINTENANCE_POLICY
:实例的维护行为。值可以是TERMINATE
或MIGRATE
。如果您要创建 Spot 虚拟机、抢占式虚拟机或不支持实时迁移的实例,则只能使用TERMINATE
。NAME_PATTERN
:实例的名称模式。如需替换实例名称中的数字序列,请使用哈希值 (#
) 字符序列。例如,使用instance-#
作为名称模式将生成名称以instance-1
、instance-2
开头的实例,一直到由COUNT
指定的实例数量。ZONE
:要在其中创建实例的区域。如需设置主机维护行为,请添加
onHostMaintenance
字段。如需设置自动重启行为,请执行以下操作之一:
如需自动重启实例,请添加
automaticRestart
字段。如需防止实例自动重启,请添加
automaticRestart
字段。
如果您的实例挂接了本地 SSD 磁盘,如需设置本地 SSD 数据恢复超时,请添加
localSsdRecoveryTimeout
字段。如需设置主机错误超时,请添加
hostErrorTimeoutSeconds
字段。PROJECT_ID
:要在其中创建实例的项目的 ID。ZONE
:要在其中创建实例的区域。COUNT
:要创建的实例数量。NAME_PATTERN
:实例的名称模式。如需替换实例名称中的数字序列,请使用哈希值 (#
) 字符序列。例如,使用instance-#
作为名称模式将生成名称以instance-1
、instance-2
开头的实例,一直到由COUNT
指定的实例数量。MACHINE_TYPE
:要使用的机器类型。IMAGE_PROJECT
:映像所属的映像项目;例如debian-cloud
。如需详细了解支持的映像项目,请参阅公共映像。IMAGE
:指定以下其中一项:AUTOMATIC_RESTART
:实例崩溃或 Compute Engine 因计划性停止而停止实例时的自动重启行为。请指定以下某个值:如需让 Compute Engine 自动重启实例,请执行以下操作:
true
如需防止自动重启,请执行以下操作:
false
ERROR_DETECTION_TIMEOUT
:重启无响应实例之前等待的秒数。该值必须介于90
(90 秒)到330
(330 秒,即 5 分 30 秒)之间。只能以 30 秒为单位进行递增。LOCAL_SSD_RECOVERY_TIMEOUT
:从已挂接的本地 SSD 磁盘恢复数据所花费的小时数。此值必须介于0
(0 小时)到168
(168 小时或 7 天)之间。将此字段设置为0
表示 Compute Engine 不会恢复本地 SSD 数据。MAINTENANCE_POLICY
:实例的维护行为。值可以是TERMINATE
或MIGRATE
。如果您要创建 Spot 虚拟机、抢占式虚拟机或不支持实时迁移的实例,则只能使用TERMINATE
。在 Google Cloud 控制台中,前往实例模板页面。
点击创建实例模板。系统随即会显示创建实例模板页面。
在名称字段中,输入实例模板的名称。
在位置部分,选择以下选项之一:
如需创建区域级实例模板,请选择区域级(推荐),然后选择要在其中创建模板的区域。
如需创建全球实例模板,请选择全球。
在机器配置部分中,为实例模板指定机器类型。
在预配模型部分中,展开虚拟机预配模型高级设置,然后执行以下一项或多项操作:
如需更改维护事件期间的行为,请在主机维护时列表中,选择以下选项之一:
如需在主机维护事件期间迁移实例,请选择迁移虚拟机实例(推荐)。
如需在主机维护事件期间停止实例,请选择终止虚拟机实例。
如需更改在重新启动无响应的实例之前的超时期限,请在主机错误超时列表中,选择以下选项之一:
如需不指定主机错误超时,请选择未指定(默认)。
如需指定主机错误超时,请选择一个可用选项(最长为 5 分 30 秒)。
如需更改实例崩溃或停止时是否重启,请在自动重启列表中,选择以下选项之一:
如需在主机出错或按计划停止后自动重启实例,请选择启用(推荐)。
如需防止实例在主机出错或按计划停止后自动重启,请选择关闭。
点击创建。
如需设置主机维护行为,请添加
onHostMaintenance
字段。如需设置自动重启行为,请执行以下操作之一:
如需自动重启实例,请添加
automaticRestart
字段。如需防止实例自动重启,请添加
automaticRestart
字段。
如果您的实例挂接了本地 SSD 磁盘,如需设置本地 SSD 数据恢复超时,请添加
localSsdRecoveryTimeout
字段。如需设置主机错误超时,请添加
hostErrorTimeoutSeconds
字段。INSTANCE_TEMPLATE_NAME
:实例模板的名称。ERROR_DETECTION_TIMEOUT
:重启无响应实例之前等待的秒数。该值必须介于90
(90 秒)到330
(330 秒,即 5 分 30 秒)之间。只能以 30 秒为单位进行递增。REGION
:要在其中创建实例模板的区域。LOCAL_SSD_RECOVERY_TIMEOUT
:从已挂接的本地 SSD 磁盘恢复数据所花费的小时数。该值必须介于0
(0 小时)和168
(168 小时或 7 天)之间。将此字段设置为0
表示 Compute Engine 不会恢复本地 SSD 数据。MACHINE_TYPE
:要使用的机器类型。MAINTENANCE_POLICY
:实例的维护行为。值可以是TERMINATE
或MIGRATE
。如果您在实例模板中指定了 Spot 虚拟机、抢占式虚拟机或不支持实时迁移的实例类型,则只能使用TERMINATE
。如需创建区域实例模板,请使用
regionInstanceTemplates.insert
方法如需创建全球实例模板,请使用
instanceTemplates.insert
方法如需设置主机维护行为,请添加
onHostMaintenance
字段。如需设置自动重启行为,请执行以下操作之一:
如需自动重启实例,请添加
automaticRestart
字段。如需防止实例自动重启,请添加
automaticRestart
字段。
如果您的实例挂接了本地 SSD 磁盘,如需设置本地 SSD 数据恢复超时,请添加
localSsdRecoveryTimeout
字段。如需设置主机错误超时,请添加
hostErrorTimeoutSeconds
字段。PROJECT_ID
:要在其中创建实例模板的项目的 ID。REGION
:要在其中创建实例模板的区域。INSTANCE_TEMPLATE_NAME
:实例模板的名称。IMAGE_PROJECT
:映像所属的映像项目;例如debian-cloud
。如需详细了解支持的映像项目,请参阅公共映像。IMAGE
:指定以下其中一项:MACHINE_TYPE
:要使用的机器类型。AUTOMATIC_RESTART
:实例崩溃或 Compute Engine 因计划性停止而停止实例时的自动重启行为。请指定以下某个值:如需让 Compute Engine 自动重启实例,请执行以下操作:
true
如需防止自动重启,请执行以下操作:
false
ERROR_DETECTION_TIMEOUT
:重启无响应实例之前等待的秒数。该值必须介于90
(90 秒)到330
(330 秒,即 5 分 30 秒)之间。只能以 30 秒为单位进行递增。LOCAL_SSD_RECOVERY_TIMEOUT
:从已挂接的本地 SSD 磁盘恢复数据所花费的小时数。该值必须介于0
(0 小时)和168
(168 小时或 7 天)之间。将此字段设置为0
表示 Compute Engine 不会恢复本地 SSD 数据。MAINTENANCE_POLICY
:实例的维护行为。值可以是TERMINATE
或MIGRATE
。如果您在实例模板中指定了 Spot 虚拟机、抢占式虚拟机或不支持实时迁移的实例类型,则只能使用TERMINATE
。在 Google Cloud 控制台中,前往虚拟机实例页面。
在名称列中,点击要查看的实例。系统会显示一个页面,其中包含实例的详细信息。
在详细信息标签页的管理部分的可用性政策部分,您可以查看以下内容:
在 On host maintenance 字段中,您可以查看实例的主机维护行为事件。
在主机错误超时字段中,您可以查看实例在检测到无响应后等待重启或停止之前等待的时间。如果未设置此值(-),则默认等待时间为 5 分 30 秒。
在自动重启重启字段中,您可以查看实例在崩溃后是否会自动重启,还是 Compute Engine 会根据预定的停止时间停止实例。
INSTANCE_NAME
:实例的名称。ZONE
:实例所在的区域。PROJECT_ID
:实例所在的项目。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 会使用默认设置。
您可以配置以下主机维护属性:
为实例设置主机维护政策
默认情况下,计算实例会为其主机维护政策使用默认设置。如需自定义这些设置,请使用以下任一方法:
为现有实例设置政策
在更改现有实例的主机维护政策之前,请确保满足以下条件:
如需更改已挂接本地 SSD 磁盘的实例中的本地 SSD 数据恢复超时设置,请使用 gcloud CLI 或 REST API。否则,请选择以下任一选项:
控制台
gcloud
如需更改现有实例的主机维护政策,请将
gcloud compute instances set-scheduling
命令与以下一个或多个标志结合使用:例如,如需更改主机维护行为、在主机出错或按计划停止后自动重启实例、更改本地 SSD 数据恢复超时时间,以及更改主机错误超时时间,请运行以下命令:
gcloud compute instances set-scheduling INSTANCE_NAME \ --host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT \ --local-ssd-recovery-timeout=LOCAL_SSD_RECOVERY_TIMEOUT \ --maintenance-policy=MAINTENANCE_POLICY \ --restart-on-failure \ --zone=ZONE
替换以下内容:
REST
如需更改现有实例的主机维护政策,请向
instances.setScheduling
方法发出POST
请求。在请求正文中,添加以下一项或多项字段:例如,如需更改主机维护行为、在主机出错或按计划停止后自动重启实例、更改本地 SSD 数据恢复超时,以及更改主机错误超时,请按如下方式发出请求:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/setScheduling { "automaticRestart": AUTOMATIC_RESTART, "hostErrorTimeoutSeconds": ERROR_DETECTION_TIMEOUT, "localSsdRecoveryTimeout": LOCAL_SSD_RECOVERY_TIMEOUT, "onHostMaintenance": "MAINTENANCE_POLICY" }
替换以下内容:
在创建实例时设置政策
您可以在创建计算实例时设置其主机维护政策。
如需在创建已挂接本地 SSD 磁盘的实例时设置本地 SSD 数据恢复超时,请使用 gcloud CLI 或 REST API。否则,请选择以下任一选项:
控制台
gcloud
如需在创建实例时设置其主机维护政策,请将
gcloud compute instances create
命令与以下一个或多个标志结合使用:例如,如需设置主机维护行为、在发生主机错误或按计划停止后自动重启实例、设置本地 SSD 数据恢复超时,以及设置主机错误超时,请运行以下命令:
gcloud compute instances create INSTANCE_NAME \ --host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT \ --local-ssd-recovery-timeout=LOCAL_SSD_RECOVERY_TIMEOUT \ --machine-type=MACHINE_TYPE \ --maintenance-policy=MAINTENANCE_POLICY \ --restart-on-failure \ --zone=ZONE
替换以下内容:
REST
如需在创建实例时设置其主机维护政策,请向
instances.insert
方法发出POST
请求。在请求正文中,在scheduling
字段中添加以下一个或多个字段:例如,如需设置主机维护行为、在主机出错或按计划停止后自动重启实例、设置本地 SSD 数据恢复超时,以及设置主机错误超时,请发出如下请求:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "INSTANCE_NAME", "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE", "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "networkInterfaces": [ { "network": "global/networks/default" } ], "scheduling": { "automaticRestart": AUTOMATIC_RESTART, "hostErrorTimeoutSeconds": ERROR_DETECTION_TIMEOUT, "localSsdRecoveryTimeout": LOCAL_SSD_RECOVERY_TIMEOUT, "onHostMaintenance": "MAINTENANCE_POLICY" } }
替换以下内容:
如需详细了解如何创建实例,请参阅创建和启动 Compute Engine 实例。
在批量创建实例时设置政策
如需在批量创建实例时设置主机维护政策,请选择以下选项之一:
gcloud
如需在批量创建实例时设置主机维护政策,请将
gcloud compute instances bulk create
命令与以下一个或多个标志结合使用:例如,如需设置主机维护行为、在发生主机错误或按计划停止后自动重启实例、设置本地 SSD 数据恢复超时,以及设置主机错误超时,请运行以下命令。以下示例也会在单个可用区中创建实例,并为实例指定名称模式:
gcloud compute instances bulk create \ --count=COUNT \ --host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT \ --local-ssd-recovery-timeout=LOCAL_SSD_RECOVERY_TIMEOUT \ --machine-type=MACHINE_TYPE \ --maintenance-policy=MAINTENANCE_POLICY \ --name-pattern=NAME_PATTERN \ --restart-on-failure \ --zone=ZONE
替换以下内容:
REST
如需在批量创建实例时设置主机维护政策,请向
instances.bulkInsert
方法发出POST
请求。在请求正文中,在scheduling
字段中添加以下一个或多个字段:例如,如需设置主机维护行为、在发生主机错误或按计划停止后自动重启实例、设置本地 SSD 数据恢复超时,以及设置主机错误超时,请发出如下请求。以下示例也会在单个可用区中创建实例,并为实例指定名称模式:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert { "count": COUNT, "namePattern": "NAME_PATTERN", "instanceProperties": { "machineType": "MACHINE_TYPE", "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "networkInterfaces": [ { "network": "global/networks/default" } ], "scheduling": { "automaticRestart": AUTOMATIC_RESTART, "hostErrorTimeoutSeconds": ERROR_DETECTION_TIMEOUT, "localSsdRecoveryTimeout": LOCAL_SSD_RECOVERY_TIMEOUT, "onHostMaintenance": "MAINTENANCE_POLICY" } } }
替换以下内容:
如需详细了解如何批量创建实例,请参阅批量创建虚拟机。
在创建实例模板时设置政策
您可以在创建实例模板时设置主机维护政策。您使用该模板创建的所有计算实例都会继承模板中指定的主机维护政策。
如需在创建指定本地 SSD 磁盘的实例模板时设置本地 SSD 数据恢复超时,请使用 gcloud CLI 或 REST API。否则,请选择以下任一选项:
控制台
gcloud
如需在创建实例模板时设置主机维护政策,请将
gcloud compute instance-templates create
命令与以下一个或多个标志结合使用:例如,如需设置主机维护行为、在发生主机错误或按计划停止后自动重启实例、设置本地 SSD 数据恢复超时,以及设置主机错误超时,请运行以下命令。以下示例也会创建一个区域实例模板。如需创建全球实例模板,请使用不带
--instance-template-region
标志的相同命令。gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT \ --instance-template-region=REGION \ --local-ssd-recovery-timeout=LOCAL_SSD_RECOVERY_TIMEOUT \ --machine-type=MACHINE_TYPE \ --maintenance-policy=MAINTENANCE_POLICY \ --restart-on-failure
替换以下内容:
REST
如需在创建实例模板时设置主机维护政策,请向以下方法之一发出
POST
请求:在请求正文中,在
scheduling
字段中添加以下一个或多个字段:例如,如需设置主机维护行为、在发生主机错误或按计划停止后自动重启实例、设置本地 SSD 数据恢复超时,以及设置主机错误超时,请发出如下请求。以下示例也会创建一个区域实例模板。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates { "name": "INSTANCE_TEMPLATE_NAME", "properties": { "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "machineType": "MACHINE_TYPE", "networkInterfaces": [ { "network": "global/networks/default" } ], "scheduling": { "automaticRestart": AUTOMATIC_RESTART, "hostErrorTimeoutSeconds": ERROR_DETECTION_TIMEOUT, "localSsdRecoveryTimeout": LOCAL_SSD_RECOVERY_TIMEOUT, "onHostMaintenance": "MAINTENANCE_POLICY" } } }
替换以下内容:
如需详细了解如何创建实例模板,请参阅创建实例模板。
查看实例的主机维护政策
您可以通过查看实例的详细信息来查看实例的主机维护政策。
使用 gcloud CLI 或 REST API 查看实例详情时,只有在创建或更新实例时指定了
localSsdRecoveryTimeout
和hostErrorTimeoutSeconds
字段,您才能查看这些字段。如需查看已挂接本地 SSD 磁盘的实例中的本地 SSD 数据恢复超时设置,请使用 gcloud CLI 或 REST API。否则,请选择以下任一选项:
控制台
gcloud
如需查看实例的主机维护政策,请使用
gcloud compute instances describe
命令,并将--flatten
标志设置为scheduling
:gcloud compute instances describe INSTANCE_NAME \ --flatten=scheduling \ --zone=ZONE
替换以下内容:
输出类似于以下内容:
--- scheduling: automaticRestart: true hostErrorTimeoutSeconds: 120 localSsdRecoveryTimeout: nanos: 0 seconds: '10800' onHostMaintenance: MIGRATE preemptible: false provisioningModel: STANDARD
REST
如需查看实例的主机维护政策,请向
instances.get
方法发出GET
请求。在请求网址中添加fields
查询参数并将其设置为scheduling
:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME?fields=scheduling
替换以下内容:
输出类似于以下内容:
{ "scheduling": { "onHostMaintenance": "MIGRATE", "automaticRestart": true, "preemptible": false, "provisioningModel": "STANDARD", "localSsdRecoveryTimeout": { "seconds": "10800", "nanos": 0 } } }
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-05-13。
-