使用 Shift 工具包和虚拟化迁移工具包将虚拟机从 VMware ESXi 迁移到 Red Hat OpenShift 虚拟化
使用 Migration Toolkit for Virtualization (MTV) 和 NetApp Shift 工具包,将 VM 从 VMware ESXi 迁移到 Red Hat OpenShift Virtualization。此过程包括在 MTV 中创建迁移计划,并使用 Shift 工具包转换 VM 磁盘,以便 VM 快速迁移到 OpenShift Virtualization。
开始之前
开始迁移之前,请确认满足以下先决条件。
-
OpenShift 集群可通过网络访问
-
安装了以下运算符的 OpenShift 集群端点:
-
OpenShift虚拟化操作员
-
NetApp Trident操作员
-
-
NetApp Trident CSI 配置了适当的后端和存储类
-
已配置正确的 VLAN 的 NodeNetworkConfigurationPolicy 和 NetworkAttachmentDefinitions (NAD)
-
MTV 2.9.4 或更高版本(包含转换模式)
-
具有集群管理员权限的服务帐户令牌
-
权限最低的账户。请参阅本节"所需的最低权限"
-
VMDK 可以通过多种方式进行配置:所有 VMDK 都可以驻留在单个卷上(无需存储 vMotion),每个 VMDK 都可以放置在自己的单个卷上,或者可以在卷内的 qtree 中组织多个 VMDK。
Shift 工具包自动检测布局并选择适当的克隆方法和 NAS 存储驱动程序。 当 VMDK 放置在 qtree 中时,Shift Toolkit 使用 ONTAP-NAS-economy 驱动程序。 -
VMware 工具正在客户虚拟机上运行。
-
每个虚拟机的操作系统都经过认证,并作为转换所需的客户操作系统提供支持。
-
迁移之前或迁移期间,不得更改 IP 地址、VLAN 和其他网络配置设置。迁移过程中,虚拟机的 MAC 地址将被保留。
步骤 1:创建迁移计划
|
|
应事先制定计划,以确保 MTV 配置保留 IP 设置。 |
-
登录MTV网络控制台。
-
添加源提供商和目标提供商
-
在目标命名空间中创建迁移计划
-
配置提供程序后,创建迁移计划,并在目标命名空间中选择相应的源提供程序和目标提供程序。
显示示例
显示示例
-
-
选择要迁移的虚拟机
-
确定并选择要包含在迁移中的虚拟机。
显示示例
-
-
配置网络和存储映射
-
可以选择现有的映射或创建新的映射,以使源网络和存储与目标环境保持一致。
显示示例
显示示例
-
-
选择迁移类型
-
初始阶段保留默认迁移类型;在迁移过程中,该类型将更新以反映转换类型。
显示示例
-
-
保留默认选项
-
保留默认设置。此外,选择保留静态 IP 的选项,并指定迁移后虚拟机的期望状态。
显示示例
-
-
审核并最终定稿
-
仔细检查所有设置,然后单击“完成”以创建迁移计划。
显示示例
-
步骤 2:在 Shift 工具包中创建蓝图
在 MTV 中创建迁移计划后,请添加源和目标站点,并在 Shift 工具包 UI 中从计划创建蓝图。
-
复制迁移计划的名称,然后转到 Shift toolkit UI。
-
添加源和目标虚拟机监控程序。请点击此链接 "创建网站"。
Shift Toolkit 中配置的端点必须与通过 MTV 控制台添加端点时使用的格式相匹配。例如,如果源端点或目标端点是使用 FQDN 添加的,则在 Shift Toolkit 中也应使用相同的 FQDN。 显示示例
-
导航至“蓝图”并创建新蓝图。
-
完成前面的步骤后,转到“蓝图”并选择“使用 MTV 计划创建新蓝图”。
与 Shift Toolkit 中的标准工作流程不同,使用基于 MTV 计划的迁移时,无需手动创建资源组。Shift Toolkit 会自动生成资源组,并根据迁移计划 YAML 应用必要的映射。
显示示例
-
-
选择目的地和迁移计划。
-
选择目标站点和相应的 OpenShift 端点。之后,选择从指定集群中检索到的迁移计划,该计划包含要迁移的虚拟机。
显示示例
-
-
资源组和映射将根据迁移计划 yaml 文件自动配置。
显示示例
-
选择PVC进口选项。默认设置为克隆并导入卷。
卷也可以直接导入,无需创建克隆。 显示示例
-
查看蓝图设置,然后选择创建蓝图进行保存。
步骤 3:运行迁移
创建蓝图后,从 Shift 工具包触发迁移并进行监控,直到 MTV 报告计划完成为止。
-
点击蓝图中的“迁移”按钮即可触发迁移。
在触发迁移之前,应先关闭虚拟机电源。MTV 将根据虚拟机目标电源状态属性启动虚拟机。 显示示例
-
Shift 工具包执行工作流步骤,以转换磁盘格式、导入 PVC 并使用 OpenShift API 创建虚拟机。
显示示例
-
在所有 PVC 都按规定就位且 Shift Toolkit 触发 MTV 后,MTV 迁移工作流程即启动。
-
迁移控制器为每个源虚拟机创建一个 VirtualMachineImport (VMI) 自定义资源 (CR)。
-
由于 PVC 已由 Shift Toolkit 导入,虚拟机导入控制器会启动一个连接了 PVC 的转换舱。
-
转换 Pod 运行 virt-v2v,在 PVC 上为目标 VM 安装和配置设备驱动程序。
-
然后,虚拟机导入控制器会创建一个虚拟机实例 (VMI) CR。
-
当目标虚拟机启动时,KubeVirt 控制器会创建一个虚拟机 Pod,该 Pod 运行 QEMU-KVM,并将 PVC 作为虚拟机磁盘附加到该 Pod 中。
显示示例
-
-
当所有虚拟机都迁移完毕后,迁移控制器会将迁移计划状态更新为“已完成”。迁移后,每个源虚拟机的原始电源状态均得以保留。
显示示例
显示示例
这表明 Shift 工具包和 MTV 可以以闪电般的速度简化迁移过程。在这个例子中,迁移了 2 台虚拟机,总共 12TB 的空间。整个过程大约耗时8-10分钟。
幕后发生了什么
以下部分介绍了 Shift Toolkit API 和 MTV 在 OpenShift 平台上转换 VMDK 文件和创建虚拟机时触发的步骤。此工作流程无论是通过 Shift Toolkit UI 还是通过使用 Shift Toolkit Script Blocks 中提供的脚本来启动,都保持一致。
转换 VMDK
Shift 工具包将自动查找与每个虚拟机关联的 VMDK,包括主启动磁盘。
|
|
如果存在多个 VMDK 文件,则每个 VMDK 文件都会被转换。 |
批量导入和迁移计划配置
Shift Toolkit 使用Trident CSI 将卷作为 PVC 导入到集群中。每个PVC清单都包含特定的标签和注释,以确保MTV能够识别它们:
-
标签
-
vmID
-
vmUUID
-
-
标注:
-
vmdk 磁盘路径
-
此外,disk.img 文件的权限也已更新。权限是通过动态部署的 POD 进行修改的,该 POD 用于挂载导入的 PVC 并按如下方式设置权限:
-
"owner": { "id": 107 },"group": { "id": 107 },"mode": "0655"
-
叉车检查PVC中的vmID和vmUUID。
-
Forklift 使用 forklift.konveyor.io/disk-source 的磁盘名称(VMDK 路径)。
-
导入的 PVC 数量必须与源 VM 关联的磁盘数量相匹配。例如,如果一个虚拟机有三个 VMDK,但导入了四个 ID 匹配的 PVC,则 MTV 不会将迁移计划状态更新为“准备开始”。
完成这些步骤后,Shift Toolkit 会修补迁移计划 YAML,以便 MTV 了解应该直接使用 PVC,绕过数据填充器 Pod 流程(这通常很耗时)。修补的 YAML 包括:
-
目标命名空间:默认
-
类型:转换
-
贮存: {}
启动迁移过程
配置完成后,将调用 MTV 开始迁移。UI 会将迁移类型显示为 Cold,但根据用于转换的 YAML 规范,MTV 会根据关联的 vmID 和 vmUUID 验证每个 PVC,并相应地映射它们,然后初始化迁移。.显示示例
Details
|
|
虚拟机是在“默认”虚拟机项目下创建的,但可以在 MTV 迁移计划 YAML 中进行修改。 |
Shift Toolkit 通过简化流程、最大限度地减少停机时间以及消除对 ESXi 主机访问或基于 VDDK 的方法的需求,加速了迁移。
迁移完成后,需要分离克隆卷。使用的方法取决于 ONTAP 版本:ONTAP 9.17.1 及更高版本使用 clone split,早期版本使用 vol move。提供的 ZIP 包中的"Post migrate"文件夹内提供了用于启动分离过程的脚本。
迁移完成后,必须分离每个克隆卷。分离方法取决于 ONTAP 版本:对 ONTAP 9.17.1 及更高版本使用克隆拆分,或对早期版本使用 vol move。
为了在迁移后更快地执行 PVC 拆分操作,请将源 NFS 数据存储保持在 5 TB 或更小。可以使用较大的卷,但在为 VM 迁移创建 200–300 个克隆时,较小的卷是更快完成拆分的理想选择。
克隆拆分和卷移动都是后台操作,在运行时不会影响生产工作负载。NetApp Console 自动化目录中的*迁移后分离*小部件中提供了用于启动分离过程的脚本。