在虚拟机 (VM) 实例 或裸机实例的底层硬件进行计划内维护事件期间,主机服务器不可用。为了在主机事件期间让实例保持运行状态,Compute Engine 会将实例实时迁移到同一可用区中的其他主机服务器。如需详细了解主机事件,请参阅主机事件简介。
通过实时迁移,Google Cloud 可以在不中断工作负载、重新启动实例或修改实例的任何属性(例如 IP 地址、元数据、块存储数据、应用状态或网络设置)的情况下执行维护。
实时迁移可确保实例在发生以下事件时正常运行:
基础架构维护。基础架构维护包括数据中心中的主机硬件、网络和电网以及主机操作系统 (OS) 和 BIOS。
与安全相关的更新和系统配置更改。这包括安装安全补丁以及更改主机根分区的大小以存储主机操作系统映像和软件包等事件。
硬件故障。 这包括内存、CPU、网络接口卡和磁盘故障。如果在服务器完全故障之前检测到故障,Compute Engine 会执行实例的预防性实时迁移到新的主机服务器。如果硬件完全无法运行或阻止实时迁移,则实例会终止并自动重启。
Compute Engine 仅会实时迁移将主机维护政策设置为迁移的虚拟机。如需了解如何更改主机维护政策,请参阅设置虚拟机主机维护政策。
实时迁移过程和本地 SSD 磁盘
Compute Engine 可以实时迁移挂接了本地 SSD 磁盘的实例(不包括 Z3 实例)。Compute Engine 会在进行任何计划内的维护之前,将虚拟机实例及其本地 SSD 数据迁移到新机器。
限制
以下虚拟机类型不支持实时迁移:
- 裸金属实例。C3 和 X4 裸金属实例不支持实时迁移。这些实例的维护行为分别设为
TERMINATE
和RESTART
。 - 大多数机密虚拟机实例。只有使用运行 AMD SEV 的 AMD EPYC Milan CPU 平台的 N2D 机器类型支持机密虚拟机实例的实时迁移。所有其他机密虚拟机实例都不支持实时迁移,并且必须设置为在主机维护事件期间停止并选择性地重启。如需了解详情,请参阅实时迁移。
挂接了 GPU 的虚拟机。挂接了 GPU 的虚拟机实例必须设置为停止并视情况重启。Compute Engine 会在挂接了 GPU 的虚拟机实例停止之前 60 分钟发出通知。如需详细了解这些维护事件通知,请参阅收到实时迁移通知。
如需详细了解如何在挂接了 GPU 的情况下处理主机维护事件,请参阅 GPU 文档中的处理主机维护事件。
- Cloud TPU Cloud TPU 不支持实时迁移。
- 存储优化型虚拟机。Z3 虚拟机不支持实时迁移。Z3 虚拟机的维护行为设置为
TERMINATE
。
实时迁移过程的工作原理
当虚拟机计划进行实时迁移时,Compute Engine 会提供通知,以便您为此实时迁移中断做好工作负载和应用准备。在实时迁移期间,Google Cloud 可确保最短中断时间,通常远小于 1 秒。如果虚拟机未设置为实时迁移,则 Compute Engine 会在主机维护期间终止虚拟机。设置为在主机事件期间终止的虚拟机会停止并(可选)重启。
当 Google Cloud 将正在运行的虚拟机从一个主机迁移到另一个主机时,会以一种对客机操作系统及与之进行通信的任何项都透明的方式,将完整的虚拟机状态从来源位置迁移到目标位置。 无缝地完成这项工作需要使用多种组件,大致步骤如下图所示:
该过程开始后,系统会发出一个关于需要将虚拟机从其当前的宿主机中迁移的通知。该通知的开头可能会阐明文件变更(指示有新的 BIOS 版本可用)、硬件操作计划维护或可预见的硬件故障自动发出的信号。
Google Cloud 的集群管理软件会持续监控这些事件,并根据控制数据中心的政策(例如容量利用率和每位客户可以同时迁移的虚拟机数量)安排这些事件发生的时间。
在选定要迁移的虚拟机后,Google Cloud 会通知客机即将进行迁移。等待一段时间后,系统会选择一个目标主机,并要求该主机设置一个新的空“目标”虚拟机,用于接收要迁移的“源”虚拟机。系统使用身份验证在来源位置和目标位置之间建立连接。
虚拟机迁移过程分为以下三个阶段:
来源位置服务降级。虚拟机仍在来源位置运行,而大部分状态会从来源位置发送到目标位置。例如,Google Cloud 会将所有访客内存复制到目标位置,同时跟踪源位置中已更改的页面。源限电所花费的时间是访客内存大小和页面更改速率的函数。
中断阶段。这是一段非常短暂的时刻。在这段时间内,源虚拟机不会在任何位置运行,并会处于暂停状态,而系统会发送开始在目标位置运行虚拟机所需的所有剩余状态。在来源位置服务降级阶段,当发送状态更改达到回报递减点时,虚拟机会进入中断阶段。系统会使用一种算法,以根据访客虚拟机做出更改的速率来平衡要发送的内存字节数。
在中断事件期间,系统时钟会显示为向前跳转,最多 5 秒。如果中断事件超过 5 秒,Google Cloud 会使用包含在虚拟机访客软件包中的守护进程停止并同步时钟。
目标位置服务降级。虚拟机会在目标虚拟机上运行。源虚拟机仍然存在,并且可以为目标虚拟机提供支持。例如,源虚拟机将为进出目标虚拟机的数据包提供转发服务,直到网络架构与目标虚拟机的新位置一致。
最终,迁移会完成,并且系统会删除源虚拟机。 您可以在虚拟机的 Cloud Logging 日志中查看迁移发生情况。
单租户虚拟机的实时迁移
工作负载运行时,最好将虚拟机迁移到其他单租户节点或节点组。如果您将虚拟机移动到一组节点,Compute Engine 会确定要将虚拟机放置在哪个节点上。如需了解单独租用,请参阅单独租用概览。
如需将单租户虚拟机迁移到其他节点或节点组,您可以手动启动实时迁移。您也可以手动启动实时迁移,以将多租户主机上的虚拟机迁移到单租户节点。如需了解详情,请参阅手动实时迁移虚拟机。
后续步骤
设置虚拟机主机维护政策选项,以将您的实例配置为实时迁移。
请阅读有关设计可处理服务中断情况的可靠系统的提示。