在某些情况下,您需要将工作负载从现有虚拟机实例迁移到新虚拟机。迁移到新虚拟机的原因包括:
- 将操作系统升级到新版本
- 从 x86 架构切换到 Arm 架构
- 升级到最新一代虚拟机机器系列
在这些情况下,您可能需要创建新虚拟机并将工作负载迁移到新虚拟机。
升级到最新一代虚拟机机器系列时,如果新一代虚拟机支持当前虚拟机上的操作系统,并且当前虚拟机未使用新机器系列不支持的任何功能或磁盘类型,则您可以按照将虚拟机迁移到新机器系列中所述的较简单过程进行操作。
准备迁移到新虚拟机
您可以将当前虚拟机迁移到新虚拟机,例如从 n2d-standard-32
迁移到 t2a-standard-32
或从 m1-ultramem-160
迁移到 m3-ultramem-128
。在开始迁移之前,请查看并解决以下各项。
- 查看新虚拟机机器系列的可用区域和可用区。新的机器系列可能不一定在当前虚拟机的所有区域中可用。根据需要调整部署、可用性和灾难恢复计划。
- 确保新的虚拟机机器系列支持当前虚拟机的操作系统版本。如需了解详情,请参阅操作系统详细信息。
- 如果新虚拟机需要较新版本的操作系统,请验证您的应用与较新操作系统版本兼容。
- 如果迁移到 Arm 和 Arm 映像不适用于您当前的操作系统,请选择新的操作系统来运行应用,并验证应用与新操作系统兼容。
- 查看机器系列文档,了解哪些功能可用于新虚拟机。新虚拟机机器系列可能不支持当前虚拟机使用的功能,例如自定义机器类型或安全强化型虚拟机。
- 查看新虚拟机机器系列支持的接口。较新的虚拟机系列(例如 T2A)和第三代虚拟机(例如 M3 或 C3)仅支持 gVNIC 和 NVMe 接口。请确保您的应用支持这些接口。
- 如果从使用 SCSI 磁盘接口的虚拟机迁移到仅支持 NVMe 磁盘接口的虚拟机,请确保您的应用和脚本不会按设备名称(例如
sda1
)引用挂接的磁盘。相反,请为/dev/disk/by-id/
中显示的磁盘使用符号链接。 - 如果从运行 Microsoft Windows 的虚拟机迁移,则必须替换 2022 年 5 月之前创建的虚拟机上的 NVME 驱动程序。这适用于当前虚拟机中的启动磁盘以及任何先前创建的用于创建新虚拟机的快照或自定义映像。
- 如果从使用默认 (VirtIO) 网络接口的第一代或第二代虚拟机迁移到仅支持 gVNIC 网络接口的第三代或 T2A 虚拟机,则您可能需要解决以下问题:
- 如果您使用的是自定义映像来创建虚拟机,则该映像必须标记为使用 gVNIC(
guest-os-features
属性必须包含字符串GVNIC
),并且必须包含 gVNIC 驱动程序,如创建支持 gVNIC 的自定义映像中所述。如需检查虚拟机是否标记为使用 gVNIC,请按照虚拟机实例未启动的诊断部分中的说明操作。 - 如果您配置了自定义 NIC 队列计数,请参阅队列分配和更改机器类型。
- 如果您使用的是自定义映像来创建虚拟机,则该映像必须标记为使用 gVNIC(
- 如果从使用 SCSI 磁盘接口的虚拟机迁移到仅支持 NVMe 磁盘接口的虚拟机,请确保您的应用和脚本不会按设备名称(例如
- 查看新虚拟机支持的磁盘类型。较新的虚拟机系列(例如 M3 和 C3)不支持
pd-standard
永久性磁盘类型。如果当前虚拟机使用新虚拟机系列不支持的启动磁盘类型,您可以使用快照将该启动磁盘更改为新磁盘类型,如将工作负载迁移到新虚拟机中所述。 - 如果您的虚拟机挂接了本地固态硬盘,并且您想要迁移到第三代虚拟机,请验证对于新机器类型,本地固态硬盘磁盘是否受支持。
- 如果新虚拟机使用其他架构,请验证您的应用或程序是否可以在新架构上运行,或确定它们是否需要修改。
- 如果您的应用是使用最新版本的编程语言编写的,则它可能与 Arm 兼容,无需进一步修改。
- 如需运行 Python、Ruby 和 JavaScript 等解释型语言,您必须在 Arm 虚拟机上安装与 Arm 兼容的运行时环境。
- 已编译的 x86 二进制文件无法在 Arm 上运行,已编译的 Arm 二进制文件无法在 x86 平台上运行。
- 您需要重新编译 Arm 的二进制文件,通常不需要修改源代码。
- 您可能还需要升级软件包和库,以纳入您在 x86 虚拟机上使用的版本的 Arm 等效项。
将工作负载迁移到新虚拟机
要将工作负载迁移到新虚拟机,请先创建新的虚拟机,然后将工作负载迁移到新虚拟机。
- 完成本页面上的准备迁移到新虚拟机中的步骤。
- 如果现有虚拟机使用包含要保留的数据的本地固态硬盘磁盘,请将这些磁盘的内容迁移到受支持的永久性磁盘类型。
如果当前虚拟机使用
pd-standard
永久性磁盘作为启动磁盘,请按照以下步骤迁移不支持pd-standard
磁盘的虚拟机:- 如果您要迁移极少量的虚拟机,请执行以下操作:
- 为当前虚拟机的
pd-standard
启动磁盘创建快照。 - 通过启动磁盘快照创建虚拟机。
创建新虚拟机时,请选择一种受支持的磁盘类型作为启动磁盘,例如 PD-Balanced (
pd-balanced
) 或 PD-SSD (pd-ssd
)。
- 为当前虚拟机的
- 如果您要迁移多个虚拟机,请使用自定义映像创建新虚拟机:
- 为当前虚拟机的
pd-standard
启动磁盘创建快照。 - 使用磁盘快照作为来源创建自定义映像。
- 通过自定义映像创建虚拟机。
创建新虚拟机时,请选择一种受支持的磁盘类型作为启动磁盘,例如 PD-Balanced (
pd-balanced
) 或 PD-SSD (pd-ssd
)。
- 为当前虚拟机的
- 如果您要迁移极少量的虚拟机,请执行以下操作:
如果当前虚拟机使用新虚拟机机器系列支持的启动磁盘类型,请按照创建并启动 Arm 虚拟机实例或创建并启动虚拟机实例中的说明操作,然后根据您的规范配置新虚拟机。
在新虚拟机上配置必要的用户、驱动程序、软件包和文件目录,以支持您的工作负载。
将非启动永久性磁盘从旧虚拟机迁移到新虚拟机。
- 对于新虚拟机机器系列支持的磁盘类型,您可以通过将永久性磁盘与旧虚拟机分离并将其添加到新虚拟机来完成此操作。
- 对于新虚拟机机器系列不支持的磁盘类型,您可以创建磁盘快照,将相同大小或更大的新磁盘添加到新虚拟机,然后将快照恢复到新磁盘。
- 或者,如果您尚未删除原始虚拟机,则可以将文件从一个虚拟机传输到另一个虚拟机。
在新虚拟机上安装修改后的应用和程序。如有必要,请在新操作系统或架构上重新编译程序。
可选:将保存到永久性磁盘的数据移回本地 SSD。
如果您在将工作负载从 x86 虚拟机迁移到 Arm 虚拟机时遇到问题,请联系您的技术支持客户经理 (TAM) 或 Google 专业服务组织 (PSO) 获取帮助。