使用 Shift Toolkit 迁移虚拟机
使用 Shift Toolkit 将虚拟机从 VMware ESXi 迁移到 Microsoft Hyper-V。该过程包括准备虚拟机、转换磁盘格式以及在目标环境中配置网络设置。
迁移
一旦创建了蓝图,就可以行使“迁移”选项。在迁移选项期间,shift toolkit 执行一系列步骤来转换磁盘格式并使用转换后的磁盘按照蓝图的定义在 Hyper-V 主机上创建虚拟机。
执行的高级步骤如下:
先决条件:在启动迁移之前,请确保虚拟机 (VM) 已正常关闭,无论迁移是临时的还是根据计划的维护时间安排的。确认虚拟机已完全关闭;如果操作系统正在等待更新,则仅在虚拟机完全关闭后触发迁移。
-
删除蓝图中所有虚拟机的现有快照
-
在源头触发蓝图的虚拟机快照
-
磁盘转换前触发卷快照
-
克隆所有虚拟机的 VMDK 并将其转换为 VHDx 格式
-
启动保护组中的虚拟机 – 达到目标
-
在每个虚拟机上注册网络
-
删除 VMware 工具并根据操作系统类型使用触发脚本或 cron 作业分配 IP 地址
需要考虑的因素
在开始迁移之前,请确保满足所有先决条件(本文档的先决条件部分详细介绍了此内容)。以下是一份简要回顾清单:
-
确保 Shift VM 是域的一部分
-
确保 CIFS 共享配置了适当的权限
-
用于迁移或转换的 qtree 具有正确的安全模式
-
作为快速测试,尝试使用 Hyper-V 管理器从群集内的任何 Hyper-V 主机创建 VM,并将 VHDX 放在 CIFS 共享上(在项目符号 - a 中引用)。通过添加 Hyper-V 管理工具(通过“程序和功能”或使用“PowerShell” - add-windowsfeature rsat-hyper-v-tools)尝试从 Shift toolkit VM 执行相同操作
|
如果出现故障,"使用任何身份验证协议启用委派" 。 |
网络提示和注意事项
必须考虑以下网络因素:
-
确保静态 IP 地址可用且未分配给其他 VM
对于 Windows VM:
-
准备脚本会复制网络配置详细信息(IP 地址空间、网关地址、DNS 服务器),并且触发脚本(在迁移期间)将重新应用网络设置,无论是基于蓝图映射的单个 NIC 还是多个 NIC。
-
迁移后,Windows 设备管理器可能仍会显示迁移前的旧网络适配器信息。虽然这不会影响迁移后创建的新网络适配器,也不会导致 IP 冲突,但脚本当前不会删除这个旧注册,因此它仍然可见。
对于 Linux VM:
-
准备脚本会复制网络配置详细信息(IP 地址空间、路由、DNS 服务器、网络设备名称),并根据 Linux 发行版识别所使用的网络类型并应用 IP 设置。网络重新分配脚本使用 crontab 设置为 cron 作业并在启动时触发。例如,cronjob 将在实例上执行脚本(迁移后)以重新应用网络设置,无论是基于蓝图映射的单个 NIC 还是多个 NIC。
-
在某些情况下,转换后的 Hyper-V VM 将具有诸如 eth0 或 eth1 之类的接口名称,而不是源端的 ens192 或 33。在这种情况下,脚本将更新网络配置详细信息以匹配新的接口名称。如果使用可预测的名称(如现代系统)并且接口名称保留在 Hyper-V 端,则脚本将跳过网络端并仅删除 VMware 工具,然后重新启动 VM。
-
Shift 工具包目前支持 NetworkManager、Netplan 和 ifconfig 机制,并保留蓝图中指定的 IP。
阶段和选项
以下是迁移过程的关键阶段和选项。
-
准备虚拟机 – 准备要迁移的虚拟机,确保所有先决条件都已彻底完成。
-
迁移 - 准备工作完成后,选择 VMware VM 并将其迁移到 Hyper-V。迁移完成后,验证 VM 是否已成功启动,以及数据是否已正确迁移。
-
测试迁移 - 测试迁移通过将 VMDK 转换为 VHDX 并使用驻留在 SMB 共享上的转换后的 VHDX 文件创建 Hyper-V VM 来模拟迁移。测试迁移不允许网络映射配置;此任务通常应手动执行到泡沫网络。
-
重试迁移 - 如果迁移失败,Shift 工具包会提供重试选项。此功能允许迁移作业从故障点恢复。在重试该操作之前,务必检查并纠正所有错误消息。
|
Shift 工具包不会改变源 VM,除了复制 VM 准备所需的脚本。这样,在转换失败的情况下可以快速回滚。 |
要使用蓝图中指定的配置触发迁移工作流,请单击“迁移”。
一旦启动,工作流程就会激活,转换过程将按照概述的步骤注册虚拟机。如果蓝图中的虚拟机未关闭,Shift 工具包将提示正常关机后再继续。
|
我们建议从同一 ESXi 源到同一 Hyper-V 目标并行触发的转换不超过 10 个 |
VMDK 到 VHDx 的转换只需几秒钟,这使得这种方法成为所有需要额外付费的选项中最快的。这也有助于减少迁移期间的虚拟机停机时间。
一旦作业完成,蓝图的状态将变为“迁移完成”。
迁移完成后,就该验证 Hyper-V 端的虚拟机了。下面的屏幕截图显示了在蓝图创建期间指定的 Hyper-V 主机上运行的虚拟机。
|
Shift 工具包使用在启动时执行的 cron 作业。一旦在 Hyper-V 主机上购买了虚拟机,就不会为基于 Linux 的虚拟机创建 ssh 连接或等效连接。 |
|
对于 Windows VM,shift toolkit 使用 PowerShell direct 连接到这些基于 Windows 的客户 VM。 PowerShell direct 允许连接到基于 Windows 的客户虚拟机,而不管其网络配置或远程管理设置如何。 |
|
转换后,Windows 操作系统上除操作系统磁盘之外的所有虚拟机磁盘都将处于脱机状态。这是因为默认情况下,VMware VM 上的 NewDiskPolicy 参数设置为 OfflineALL。该问题是由默认的 Microsoft Windows SAN 策略引起的。此策略旨在防止在启动 Windows Server 时激活 LUN(如果多个服务器正在访问它们)。这样做是为了避免任何潜在的数据损坏问题。这可以通过运行 PowerShell 命令来处理:Set-StorageSetting -NewDiskPolicy OnlineAll |
|
利用多个卷来暂存虚拟机,这意味着虚拟机应根据需要迁移到不同的卷。如果资源组包含具有较大 VMDK 的虚拟机,请将它们分布在不同的卷上进行转换。这种方法通过在单独的卷上并行运行克隆操作来帮助防止快照繁忙错误,同时克隆拆分在后台进行。 |