当企业决定研究新的虚拟机监控程序平台时,例如红帽 OpenShift 虚拟化,第一个问题通常是如何将虚拟机从现有基础架构迁移到 OpenShift 虚拟化。这正是红帽虚拟化迁移工具包 的用武之地。MTV 是一种 OpenShift 操作程序,可大规模添加迁移功能,使您的企业能够更快、更轻松地从 vSphere、红帽虚拟化(RHV)、OpenShift 上的红帽 OpenStack 服务或其他 OpenShift 虚拟化集群迁移虚拟机工作负载。
虚拟机迁移到 OpenShift 虚拟化后,您的企业可以回收旧的虚拟机监控程序基础架构,并开始容器化虚拟机中运行的工作负载,而无需离开 OpenShift 平台。
在本文中,我将分步骤逐步安装虚拟化迁移工具包,为从 VMware vSphere 迁移虚拟机进行配置,然后演示迁移过程。学完本文后,您将掌握成功将 Linux 和 Windows 工作负载从 vSphere 迁移到 OpenShift 虚拟化所需的所有信息。
安装虚拟化操作器的迁移工具包
第一步是在已安装 OpenShift 虚拟化的集群上安装虚拟化的迁移工具包。您可以从 Operator Hub 安装 MTV 操作程序,就像安装任何其他操作程序一样。
搜索 MTV,然后单击对应的操作程序磁贴。单击Install 以继续。
MTV 操作器安装在 openshift-mtv 命名空间中,稍后您将在此处创建所有迁移配置。
安装了操作程序后,系统会提示您创建 Fork lift 控制器。这是负责运行所有迁移的服务。单击蓝色的Create Fork liftController 按钮,然后单击Create 按钮。

片刻后,您会看到 Fork liftController 状态更改为Condition: Running ,并且复选框变为绿色。

刷新控制台后,您会在 OpenShift 控制台的左侧面板中看到一个新的Migration 选项卡。
配置提供程序
在迁移任何内容之前,您必须先创建提供程序。提供程序是虚拟机监控程序(如 vSphere),虚拟机将在其中运行,并且您希望将其迁移到 OpenShift 虚拟化中。从Migration 导航标签页,单击Providers for virtualization。已存在名为 host 的提供程序。这表示其上运行 MTV 操作程序的 OpenShift 虚拟化集群,它是在创建叉车控制器时自动创建的。
单击蓝色的Create Provider 按钮,为 vSphere 集群创建一个提供程序。

虽然虚拟化迁移工具包能够从其他 OpenShift 虚拟化集群、红帽 OpenStack 或红帽虚拟化集群迁移,但我专注于从 vSphere 迁移,因此请从显示的选项中选择vSphere 。

此时,您需要一些有关 vSphere 集群的信息,以便配置提供程序。
- Provider resource name: 这是供您使用的一串文本,以便您知道此配置适用于哪一个 vSphere 集群。在本例中,只有一个 vSphere 集群,因此将它命名为
vsphere
。 - Endpoint type:无论您选择
vCenter
还是ESXi
,配置和迁移过程都是相同的。不过,选择vCenter
后,您可以查看集群中的所有虚拟机,而选择ESXi
则仅显示该ESXi
服务器上运行的虚拟机。如果您打算迁移整个主机,以便将它重新用作 OpenShift 虚拟化计算节点,则 ESXi 选项可能会很有用。 - URL:这是 vCenter 服务器的 DNS 名称或 IP 地址,后跟 /sdk,表示用于 SDK 访问 vCenter 服务器的端点。
- ddk init 镜像:VMware 虚拟磁盘开发套件 (ddk) init 镜像是可选的,但强烈建议使用,因为它可以大大提高迁移速度。此镜像供 MTV operator 用于在迁移期间将 VirtIO 驱动程序注入客户机操作系统。由于创建 ddk 镜像需要 VMware 提供的专有许可证,因此我省略了创建它的说明,但红帽关于创建 ddk 镜像的文档 非常容易理解。
- 用户名:这是有权访问 vSphere 集群中所有或部分虚拟机的 vCenter 用户名。在本例中,我使用的是 vSphere Administrator 帐户。
- Password:上述用户名的密码。
- Skip certificate validation:为使用自签名证书的 vCenter 服务器启用此选项。
- CA 证书:将 CA 证书复制并粘贴到此字段中,或者直接按Fetch certificate from URL按钮,然后在显示的窗口中接受 CA。

单击Create provider 按钮后,将创建并验证配置。几秒钟后,该提供程序在控制台中显示为Ready 。

创建迁移计划
虚拟机迁移在 MTV 中按照迁移计划执行,迁移计划是包含要迁移的虚拟机列表以及网络和存储映射的配置。映射是必需的,因为 MTV 操作器不一定能够确定哪些 vSphere 网络和数据存储应映射到 OpenShift 虚拟化网络和 StorageClass。
单击Create Plan 按钮后,您将看到一个窗口,询问要使用哪个来源提供程序。请注意,虽然本地主机集群显示在此列表中,但无法使用 MTV 操作程序将虚拟机从 OpenShift 虚拟化迁移到 vSphere。在本例中,我只配置了一个有效的源提供程序。
从列表中选择vSphere 后,您将看到该提供程序上存在的虚拟机列表。可以一次选择多个虚拟机,但在本例中,我仅选择名为rhel9-vm-01
的虚拟机。

在下一窗口中,为迁移计划命名,选择目标命名空间,然后配置网络和存储映射。默认的Target namespace 设置为openshift-mtv,这几乎肯定不是您希望虚拟机在迁移后运行的位置,因此请务必将此字段更改为适合您环境的命名空间。
这个简单的示例环境只有一个名为VM Network的 vSphere 网络,它将映射到 OpenShift 虚拟化集群中的外部 Multus 网络。在这种情况下,我按照我的上一篇文章 描述了如何配置 OpenShift 集群,使虚拟机能够直接在外部网络上通信。在本例中,选定的 vSphere 网络和选定的 OpenShift 虚拟化网络在同一 VLAN 中,因此它们共享相同的 IP 地址空间。
类似地,此示例环境只有一个数据存储,它将映射到 OpenShift 虚拟化环境中的相应 StorageClass。

现在迁移计划已经创建,运行了一些验证检查,然后迁移计划显示Ready 状态和一个蓝色的Start 按钮。

迁移虚拟机
使用 MTV 操作程序进行虚拟机迁移时,迁移的虚拟机需要停机一段时间。中断的持续时间取决于多个因素,包括:
- 更改块跟踪 (CBT): 如果 vSphere 中启用了 CBT,则 MTV 可以执行温迁移。虚拟机数据在客户机操作系统仍在运行时复制。然后,虚拟机在 vSphere 中关机,并在 OpenShift 虚拟化中立即启动。如果没有 CBT,则只能进行冷迁移,这要求虚拟机在整个迁移过程中处于停机状态。
- DDK 镜像可用: 如果 DDK 镜像可用,则 MTV 能够更高效地修改目标虚拟机镜像。
- 网络和磁盘速度:底层网络和磁盘的速度也会影响迁移速度,从而影响虚拟机在迁移期间停机的时长。
从一个虚拟机监控程序迁移到另一个虚拟机监控程序会导致虚拟机内部发生一些变化。除了安装设备驱动程序外,客户机操作系统中的网络接口名称也可能会发生变化。如果在迁移之前不采取干预措施,则迁移的虚拟机将无法连接到网络。在这篇文章中,我提供了缓解此问题并确保顺利迁移客户机操作系统网络参数的选项。
准备好开始迁移后,请单击迁移计划的Start 按钮。如果迁移计划中的虚拟机仍在 vSphere 中运行,它们此时会自动关机。虚拟机完成迁移后,OpenShift 虚拟化仅启动曾在 vSphere 中运行的已迁移虚拟机。换言之,迁移后虚拟机的运行状态会在迁移完成后复制,因此在迁移开始时在 vSphere 中关机的虚拟机在 OpenShift 虚拟化中仍然会被关机,直到迁移后手动启动为止。

您可以通过单击 Status 列中标有Running的蓝色超链接文本来监控迁移的详细信息。这为您提供了各种状态,例如用于迁移的 PersistentVolumeClaims,以及负责实际迁移虚拟机数据的 pod。注意下图中标有Logs的蓝色链接,它显示运行迁移的 pod 的日志:

也可以从命令行界面监控迁移资源。以下示例显示了 Pod、DataVolume 和 PersistentVolumeClaim 的状态:
$ oc get pods,dv,pvc NAME READY STATUS RESTARTS AGE pod/migrate-rhel9-vm-01-vm-1001-nb95n 1/1 Running 0 17s pod/vddk-validator-migrate-rhel9-vm-014wnpf-6sr5r 0/1 Completed 0 4m47s NAME PHASE PROGRESS RESTARTS AGE datavolume.cdi.kubevirt.io/migrate-rhel9-vm-01-vm-1001-tbwhg Succeeded 100.0% 40s NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE persistentvolumeclaim/migrate-rhel9-vm-01-vm-1001-tbwhg Bound pvc-2834ec68-489a-4a77-a5e4-960a6f48d7cf 16Gi RWX ocs-external-storagecluster-ceph-rbd 40s
一段时间后,迁移计划完成。迁移 pod 保持Completed 状态,因此您可以在迁移完成后检查日志。迁移计划存档时,pod 将被删除。
检查迁移的虚拟机
迁移完成后,您可以在创建迁移计划时选择的目标命名空间中查看虚拟机。在本例中,该命名空间名为vmtest。

登录迁移的虚拟机时,您可以看到网络适配器配置正确,并且虚拟机能够与外部网络通信。迁移已完成!
对于运行 Windows 的虚拟机,其过程完全相同。虚拟化迁移工具包负责在迁移期间将所需的 VirtIO 驱动程序添加到 WIndows 磁盘镜像,以便虚拟机能够在第一次尝试时正确启动。
迁移后任务
MTV 操作器不会从 vSphere 中删除迁移的虚拟机。迁移的虚拟机同时存在于两个虚拟机监控程序中,因此请务必注意,vSphere 中的旧虚拟机不要与 OpenShift 虚拟化中的新虚拟机同时启动。一旦迁移的虚拟机被释放以供使用,您应该删除 vSphere 中的旧虚拟机。
如果迁移过程失败,请在 vSphere 中重新启动虚拟机,进行故障排除,然后再次尝试迁移。除非您指定在迁移之前运行 Ansible Playbook,否则 MTV 操作器不会对 vSphere 中的虚拟机进行任何更改,因此虚拟机可以在迁移不成功时用作备份。
迈向成功的工具包
从可能已嵌入环境中数十年的虚拟机监控程序迁移到新的创新平台是一项艰巨的任务,不应掉以轻心。正如本文所述,红帽虚拟化迁移工具包等工具可以化繁为简,更容易实现自动化。
有关 OpenShift 虚拟化的更多信息,您可以查看我的另一篇关于该主题的博客文章,以及我们网站上的产品,您也可以在我们网站上找到有关虚拟化迁移工具包的更多信息。
关于作者
Matthew Secaur is a Red Hat Principal Technical Account Manager (TAM) for Canada and the Northeast United States. He has expertise in Red Hat OpenShift Platform, Red Hat OpenShift Virtualization, Red Hat OpenStack Platform, and Red Hat Ceph Storage.