在虚拟机 (VM) 实例或裸金属实例的生命周期内,您的实例运行的宿主机可能会经历多种主机事件。主机事件可能包括 Compute Engine 基础设施的定期维护,或极少数情况下的主机错误。您可以通过配置主机维护政策,选择虚拟机和裸金属实例在主机事件期间或之后的响应方式。
默认情况下,大多数实例在主机事件期间被设置为实时迁移。您可以覆盖此行为,将实例显式设置为终止,并可选择重启。某些机器类型不支持实时迁移,例如具有 88 个或更多 vCPU 的 Z3 实例、裸金属实例或挂接了 GPU 的实例。这些实例会在主机事件期间终止。如需了解详情,请参阅维护和重启行为。
主机事件类型
主机事件分为两种类型,具体说明见下文:
如果实例无响应,这也可能会触发实例重启或终止。
维护事件
维护事件是指 Compute Engine 必须执行需将虚拟机移出主机服务器的维护或修复活动。如果您为受支持的实例类型启用实时迁移主机维护政策,Compute Engine 会将实例迁移到新主机,您的应用几乎不会中断。
Compute Engine 还会在后台应用一些轻量级 Hypervisor 和网络升级,并在同一主机上保留实例,且不中断服务。
维护事件期间的实例行为可能会因实例租用和机器类型而异。您可以在相应机器家族页面上找到每种机器类型的维护行为信息,如下所示:
如需了解特定机器系列的维护政策,请参阅机器系列比较。
对于单租户虚拟机,计划主机维护事件的大概频率为每 4 到 6 周一次。是否支持实时迁移取决于单租户虚拟机的主机维护政策。
主机错误
主机错误 (compute.instances.hostError
) 表示托管计算实例的物理机或数据中心基础设施出现硬件或软件问题,导致实例崩溃。如果主机错误涉及彻底的硬件故障或其他硬件问题,可能会阻止实例实时迁移。如果您的实例设置为自动重启(这是默认设置),Compute Engine 会在检测到错误后的 3 分钟内重启您的实例。重启可能最多需要 5.5 分钟,具体取决于问题。
有时,计算实例可能会在主机错误信号发出之前无响应。您可以通过设置主机错误恢复超时时长,缩短 Compute Engine 等待重启或终止实例的时间。如需了解详情,请参阅设置可用性政策。
物理硬件故障和软件故障可能会不时发生,但这种情况很少见。为了保护您的应用和服务免受这些可能具有中断性的系统事件的影响,请查看以下资源:
主机维护政策概览
实例的主机维护政策决定它在以下主机事件期间的行为:
- 维护事件
- 主机错误事件或实例未响应
您可以将实例配置为在主机维护期间继续运行,由 Compute Engine 实时迁移到其他主机,或选择停止实例。
您可以通过配置以下设置来更改实例的主机维护政策:
- 维护行为:发生维护事件时,实例是被实时迁移还是停止。
- 重启行为:当实例崩溃、遇到主机错误或无响应时,Compute Engine 是重启还是终止该实例。
- 主机错误检测时间:Compute Engine 在检测到实例无响应后,等待重启或终止的最长时长。
您可以随时更新实例的主机维护政策,以控制其实例行为。
维护和重启行为
发生主机事件时,计算实例可以选择实时迁移或被终止。如果实例被终止,您可以选择自行重启,或让 Compute Engine 自动重启。
以下机器系列可能不支持实时迁移,而是在主机事件期间需要终止:
- 裸金属实例会终止并重启,这意味着它们可能会在其他主机上重启。
- 机密虚拟机实例,但使用运行 AMD SEV 的 AMD EPYC Milan CPU 平台的 N2D 机器类型除外。
- 配备 GPU 的实例
- 配备 TPU 的实例
实时迁移
默认情况下,大多数实例类型均设置为实时迁移,但上一部分中提到的实例类型除外。
在实时迁移期间,Compute Engine 会自动迁移您的实例以使其不受基础架构维护事件影响,并且您的实例在迁移过程中仍会保持运行状态。实例可能会遭遇短暂的性能下降情况,但一般而言,大多数实例的性能应该不会有显著差异。这非常适合那些需要维持正常运行时间并且能够承受短暂性能下降的实例。
Compute Engine 迁移实例时,会报告一个系统事件,而该事件会发布到地区操作列表和系统事件日志。您可以通过查看特定可用区的 Compute Engine 操作来检查此事件。实时迁移事件的操作类型如下:
compute.instances.migrateOnHostMaintenance
终止并重新启动
如果您不希望实时迁移实例,或者您的实例类型不支持实时迁移,则可以改为选择在发生主机事件时允许Trusted Cloud by S3NS 停止实例。使用此配置时,如果发生主机事件,Compute Engine 会发送软关闭电源信号以关停实例。然后,它会等待 60 秒让实例完全关停,并将实例状态设置为 TERMINATED
。如果实例未在 60 秒内完全关停,它会被强制终止。
如果您的实例需要持续保持最高性能,并且您的整个应用设计为可应对实例故障或重启,则此选项非常适用。
Compute Engine 因主机事件而停止实例时,会报告一个系统事件,而该事件会发布到地区操作列表和系统事件日志。您可以通过查看特定可用区的 Compute Engine 操作来检查此事件。实例终止事件的操作类型如下:
compute.instances.terminateOnHostMaintenance
自动重启
如果实例配置为在发生维护事件时停止,或者由于底层硬件问题导致实例崩溃,Compute Engine 可以自动重启实例。系统会在同一主机服务器上重启实例,或将其迁移到同一可用区中未参与维护事件的其他服务器。
默认情况下,Compute Engine 会尝试恢复具有已挂接本地 SSD 磁盘的实例一小时。如果达到时间限制,Compute Engine 会尝试在同一可用区中的其他主机服务器上重启实例。
如需配置自动重启,请将主机维护政策字段 automaticRestart
设置为 true
。如果实例因可用区服务中断或手动操作(例如在客机操作系统中调用 sudo shutdown
)而离线,则此设置不适用。
Compute Engine 自动重启实例时,会报告一个系统事件,而该事件会发布到地区操作列表。您可以通过查看特定可用区的 Compute Engine 操作来检查此事件。自动重启事件的操作类型如下:
compute.instances.automaticRestart
实例终止后磁盘是否保留
由于 Hyperdisk 是网络附加存储,因此当实例重启时,Compute Engine 会将启动磁盘和所有辅助磁盘重新连接到实例。这些磁盘中的数据在实时迁移和实例重启后会继续保留。
维护调度
Trusted Cloud by S3NS 提供了可让您更严格地控制维护的功能。通过使用特定机器系列,您可以指定维护偏好设置,并通过 Cloud Logging、实例的元数据服务器、gcloud CLI compute instances describe
命令或 REST instances.describe
方法接收即将进行的维护事件的通知。收到通知后,您有一定时间可以自行选择何时开始预定维护。如果您不触发预定维护,则维护事件会在通知时段结束时发生,即通知中列出的预定时间。
您可以将这些功能与主机维护政策结合使用,以自定义满足您的工作负载需求的维护时间表。
后续步骤
- 详细了解实时迁移。
- 详细了解如何设置实例主机维护政策。
- 详细了解如何获取实时迁移通知。
- 详细了解如何模拟主机维护。
- 详细了解如何手动实时迁移单租户虚拟机。