实时迁移

Compute Engine 提供了实时迁移技术,可确保即使在发生主机系统事件(例如软件或硬件更新)时虚拟机实例也能正常运行。Compute Engine 可将正在运行的实例实时迁移到同一地区中的其他主机,而不要求虚拟机重新启动。 这样,Google 即可执行为确保基础架构受到保护且安全可靠所必需的维护任务,且不中断您的任何虚拟机。

实时迁移可确保实例在发生以下事件时正常运行:

  • 常规基础架构维护和升级。
  • 数据中心中的网络和电网维护。
  • 内存、CPU、网络接口卡、磁盘、电源等硬件发生故障。这是系统尽最大努力实现的结果;如果硬件完全无法运行或阻止实时迁移,则虚拟机会崩溃并自动重启,而且系统会记录 hostError
  • 主机操作系统和 BIOS 升级。
  • 与安全相关的更新(需要快速响应)。
  • 系统配置更改,包括更改主机根分区的大小来存储主机映像和软件包。

实时迁移不会更改虚拟机本身的任何属性或特性。 实时迁移过程仅将正在运行的虚拟机从一个主机转移到同一地区中的另一个主机。 所有虚拟机特性和属性会保持不变,包括内部 IP 地址和外部 IP 地址、实例元数据、块存储数据和卷、操作系统和应用状态、网络设置、网络连接等。

实时迁移过程的工作原理是什么?

当 Google 将正在运行的虚拟机实例从一个主机迁移到另一个主机时,会以一种对于来宾操作系统及与之进行通信的任何人都透明的方式,将完整的实例状态从源位置转移到目标位置。无缝地完成这项工作需要使用多种组件,但此处只展示了高级步骤:

实时迁移组件

该过程开始后,系统会发出一个关于需要将虚拟机从其当前的主机中逐出的通知。通知的开头可能会阐明文件变更,以指示有新 BIOS 版本、即将进行硬件操作安排维护或者出现了预示即将发生硬件故障的自动信号。

Google 的集群管理软件会不断监控这些事件,并根据控制数据中心的政策(例如容量利用率和单个客户一次可以迁移的虚拟机数量)安排这些事件发生的时间。

当您选择要迁移的虚拟机后,Google 会通知访客即将进行迁移。等待一段时间后,选择目标主机,系统会要求主机设置一个新的空“目标”虚拟机来接收要迁移的“源”虚拟机。可使用身份验证在源位置和目标位置之间建立连接。

虚拟机迁移包括以下三个阶段:

  • 迁移前限电过程中,虚拟机仍在源位置运行,而大部分状态会从源位置发送到目标位置。例如,Google 会将所有访客内存复制到目标位置,同时跟踪源位置中已更改的页面。迁移前限电所花费的时间是访客内存大小和页面更改速率的函数。

  • 断电过程,这是一段非常短暂的时刻。在这段时间内,虚拟机不在任何位置运行,并会处于暂停状态,而系统会发送开始在目标位置运行虚拟机所需的所有剩余状态。在迁移前限电过程中,当发送状态达到收益递减点时,虚拟机会进入断电阶段。系统会使用一种算法,以根据访客虚拟机做出更改的速率来平衡要发送的内存字节数。

  • 迁移后限电过程中,虚拟机会在目标虚拟机上运行。源虚拟机仍然存在,并且可以为目标虚拟机提供支持的功能。例如,源虚拟机将为进出目标虚拟机的数据包提供转发服务,直到网络架构与目标虚拟机的新位置一致。

最终,迁移会完成,并且系统会删除源虚拟机。您可以在虚拟机日志中查看迁移发生情况。实时迁移是我们平台的关键组件,因此 Google 会以非常高的审查水准持续对实时迁移进行测试。测试期间,我们使用故障注入技术,来触发迁移算法中所有相关点的故障。我们会为每个组件生成主动故障和被动故障。实现此复杂的多方面过程需要在整个基础架构中进行深度集成,并且还需要一组强大的时间安排、编排和自动化过程。

实时迁移和 GPU

附加了 GPU 的实例无法进行实时迁移。这些实例必须设置为终止并选择性地重启。Compute Engine 会在附加了 GPU 的虚拟机实例终止之前 60 分钟发出通知。要详细了解这些维护事件通知,请参阅收到实时迁移通知

要详细了解如何在附加了 GPU 的情况下处理主机维护事件,请阅读 GPU 文档中的处理主机维护事件

实时迁移和本地 SSD

Compute Engine 还可以实时迁移附加了本地 SSD 的实例,从而在进行任何计划中的维护之前将虚拟机和本地 SSD 转移到新机器。

针对抢占式实例的实时迁移

您无法将抢占式实例配置为实时迁移。默认情况下,抢占式实例的维护行为始终设置为 TERMINATE,而且您无法更改此选项。您无法为抢占式实例设置自动重启选项,但您可以在抢占后重新手动重启抢占式实例。

如果需要将实例更改为不再可抢占,请从抢占式实例中分离启动磁盘,并将其挂接到未配置为抢占式的新实例。您还可以为启动磁盘创建快照,并用它创建不具有抢占性的新实例。

后续步骤

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Compute Engine 文档