虚拟机迁移生命周期

借助 Migrate to Virtual Machines,您只需进行细微自动修改,即可将虚拟机从来源环境迁移(直接原样迁移)到 Google Compute Engine。Migrate to Virtual Machines 使用数据复制技术,能够将来源虚拟机中的磁盘数据持续复制到 Google Cloud,而不会导致来源虚拟机停机。然后,您根据复制的数据创建用于测试的虚拟机克隆,并对 Google Cloud 上运行的最终工作负载执行可预测的虚拟机割接。

通过数据复制,Migrate to Virtual Machines 可以对来源虚拟机中的数据执行初始复制,以便您可以快速克隆和测试迁移后的虚拟机。但是,由于来源虚拟机会在迁移过程中(包括测试期间)继续运行,因此 Migrate to Virtual Machines 会继续复制数据,直至您对迁移后的虚拟机执行最终割接。

Migrate to Virtual Machines 已完全集成到 Google Cloud 控制台中,这意味着您可以在 Google Cloud 控制台界面中执行所有迁移任务。

迁移过程简介

Migrate to Virtual Machines 为您提供了将虚拟机迁移到 Compute Engine 的简单途径。迁移过程分为以下不同阶段:

  • 添加:选择要迁移的源虚拟机。

  • 复制:将数据从来源虚拟机复制到 Google Cloud。数据复制是在后台运行的持续过程,直到最终割接或删除迁移为止。

  • 设置虚拟机目标详情:为迁移的虚拟机配置 Compute Engine 设置,例如项目、实例类型、内存、网络等。

  • 测试克隆:可选。从复制数据创建源虚拟机的 Compute Engine 克隆,并在 Google Cloud 上进行测试。

  • 割接:将来源虚拟机迁移到 Compute Engine。此过程包括停止来源虚拟机、完成最终复制以及从来源虚拟机创建生产 Compute Engine 实例。

  • 完成:成功迁移后,执行最后的清理。

下图显示了这些阶段:

迁移阶段。

以下各部分详细介绍了各个阶段。

添加阶段

迁移过程的第一个阶段是添加阶段,在此阶段选择要迁移的虚拟机:

迁移添加阶段。

例如,对于 vSphere 数据中心,Google Cloud 控制台会显示数据中心中的所有虚拟机。请仅选择要迁移的本地虚拟机以进行添加。

复制阶段

添加虚拟机后,开始将源虚拟机中的磁盘数据复制到 Google Cloud。在复制期间,源虚拟机会继续运行:

迁移复制阶段。

数据复制是在后台运行的持续过程,对源虚拟机的影响很小。

数据复制包括两个步骤:

  1. 首次复制步骤:Migrate to Virtual Machines 会创建来源虚拟机数据磁盘的初始快照,并将快照数据复制到 Google Cloud。首次复制可能需要几分钟或几小时才能完成,具体取决于源虚拟机上的磁盘数据量。

  2. 增量复制步骤:成功执行首个复制步骤后,系统会在设置的时间间隔(默认为每两个小时)执行增量复制步骤。在每个步骤中,系统会为每个数据磁盘创建一个新的快照。 利用块修改跟踪 (CBT) 机制,只有在上一步骤之后发生的数据更新才会被复制到 Google Cloud。

开始复制来源虚拟机后,复制过程将持续进行,直到您删除迁移为止。

您可以随时暂停虚拟机的复制。例如,您可以在一个或多个虚拟机上暂停复制,以最大限度地减少网络资源,或者为未被暂停的迁移虚拟机设置更高的优先级。然后,您可以日后恢复复制。

操作系统适配

为了在 Google Cloud 上正常运行,迁移后的虚拟机可能需要更改配置。此过程称为“操作系统适配”。操作系统适配过程会在每个复制步骤完成后执行,以使虚拟机准备好在 Google Cloud 中运行。

例如,Migrate to Virtual Machines 会调整网络配置,部署 Compute Engine 代理,并在迁移后的虚拟机上启用串行控制台。如需了解详情,请参阅操作系统适配,包括适用于 Linux 和 Windows 虚拟机的特定适配。

设置目标详情

启动数据复制后,为迁移虚拟机设置 Google Cloud 上的 Compute Engine 目标环境:

迁移设置目标阶段。

Compute Engine 目标详情定义了迁移虚拟机在 Google Cloud 上的着陆区。这些详细信息包括项目、实例类型、网络设置等。然后,Migrate to Virtual Machines 会使用目标详情创建 Compute Engine 实例来托管迁移后的虚拟机。

您可以随时修改目标详情。在针对测试克隆或割接阶段实例化 Compute Engine 实例时,Migrate to Virtual Machines 会使用操作时的目标详情设置。

测试克隆阶段

来源虚拟机磁盘数据初始复制步骤完成后,您可以随时将来源虚拟机克隆到 Compute Engine 实例以进行测试:

迁移测试克隆阶段。

通常,您可以在整个迁移过程中,在修改来源虚拟机或目标详细信息时创建测试克隆。请记住,测试克隆是根据当前复制数据和目标详细信息创建的来源虚拟机的静态快照。新复制数据和对目标详细信息的修改只会应用于新的测试克隆,而不会应用于现有的测试克隆。

虽然并非强制性要求,但强烈建议您在部署到生产环境之前创建虚拟机测试克隆。测试是迁移过程的关键阶段,可确保迁移后的虚拟机在 Google Cloud 中正常运行。

如果您决定通过来源虚拟机创建测试克隆,Migrate to Virtual Machines 会使用目标详细信息根据最新复制数据创建 Compute Engine 实例。

注意:来源虚拟机在测试阶段会持续运行,这意味着数据复制操作也会继续进行。

由于来源虚拟机在测试阶段继续运行,因此您需要确保在将测试虚拟机和原始来源虚拟机隔离开来的沙盒环境中进行测试。

测试虚拟机启动并运行后,您可以验证测试虚拟机是否按预期运行,并记录使虚拟机可在 Google Cloud 中正常工作所需的任何更改。测试完成后,通常可以删除测试 Compute Engine 实例,并在割接阶段创建生产 Compute Engine 实例。

割接阶段

在割接阶段,Migrate to Virtual Machines 会停止来源虚拟机,最终完成复制,并在 Google Cloud 上的 Compute Engine 中创建一个新的虚拟机实例:

迁移割接阶段。

在建议的测试阶段执行所有验证后,才应执行割接。

割接阶段包括短暂的虚拟机停机,应在计划维护窗口内进行。您必须先确定维护窗口,在此期间停止来源虚拟机并将流量重定向到 Compute Engine 上运行的已迁移虚拟机。

在所迁移的虚拟机上启动割接会使 Migrate to Virtual Machines 开始执行以下一系列操作:

  1. 关停源虚拟机。

  2. 执行最终数据复制。由于在所有迁移阶段中都在持续进行复制,因此要复制的数据量应该不会很大。如果复制正在进行中,则表示复制完成。如果当前没有进行中的复制,则执行最终复制。

  3. 停止复制。

  4. 根据最终复制的数据创建 Compute Engine 实例。

割接后,对迁移后的虚拟机执行最终验证。割接结果会决定接下来要执行的操作:

  • 割接失败:由于某种原因未能割接到 Compute Engine 上的新虚拟机实例,原因可能是网络问题或其他简单问题。此时,来源虚拟机已停止,并且最终的复制数据仍然有效。重试割接以查看重试操作是否清除错误。

  • 割接成功,但新虚拟机实例无法正常运行:如果 Compute Engine 上的新虚拟机实例无法正常运行,请删除 Compute Engine 虚拟机并启动源虚拟机。这一过程称为“回滚”。

    由于回滚迁移比较复杂,因此回滚不是自动过程。如果您必须执行回滚,则必须确保将流量重定向回来源虚拟机。另请注意,在 Compute Engine 实例上写入的所有数据不会推送回原始的来源虚拟机。

    来源虚拟机恢复正常后,您可以诊断和解决迁移错误。解决错误后,您可以重启复制,然后重试迁移。

  • 割接成功,新虚拟机实例正常运行:如果验证结果确定新虚拟机正常运行,则迁移完成。

完成阶段

成功割接后,您将完成迁移。执行完成操作将删除与迁移后的虚拟机关联的所有复制数据和其他所有存储资源,并将虚拟机状态更改为完成

完成操作只能对处于割接状态的虚拟机执行:

迁移完成阶段。

用于创建 Compute Engine 虚拟机的复制数据会在割接后保留。这意味着,您可以使用这些数据在割接后创建已迁移虚拟机的其他实例。不过,您最终还是想在完成阶段释放存储空间。

执行完成后,迁移唯一允许的操作是:

  • 删除迁移
  • 在群组中添加或移除内容

后续步骤