在 VMM 构造中将 VMware VM 转换为 Hyper-V
本文介绍如何将 System Center Virtual Machine Manager (VMM) 构造中的 VMware VM 转换为 Hyper-V。
可以使用“转换虚拟机”向导转换 VM。 可以从 VMM 控制台中使用此向导。
VMM 2019 UR3 支持将 VMware VM 转换为 Hyper-V 和 Azure Stack HCI 20H2。 详细了解对 Azure Stack HCI 20H2 的支持。
重要
- 请参阅 vSphere 支持版本的系统要求 (ESXi)。
- 无法转换 VMware 工作站。
- 无法使用连接到 IDE 总线的虚拟硬盘转换 VM。
- 必须支持防病毒应用。
- 不支持联机转换。 需要关闭 VMware VM。
- 必须从 VM 的来宾操作系统卸载 VMware 工具。
- 建议升级到 VMM 2022 UR2,以更快地将 VMware VM 转换为 Hyper-V 四倍。
注意
建议从同一 ESXi 源并行触发 10 个以上的转换到同一个 Hyper-V 目标。 如果源-目标对不同,VMM 最多可以并行支持 100 个 VM 转换,其余转换已排队。 但是,我们建议在较小的批次中暂存 VM 转换,以提高效率。
注意
转换后,除 OS 磁盘之外的所有 VM 磁盘都将处于脱机状态。 这是因为参数 NewDiskPolicy
默认设置为 VMware VM 上的脱机ALL 。 若要重写此磁盘并在转换后使新磁盘联机,可以在启动转换之前对 VMware VM 磁盘策略进行以下更改之一:
-
Set-StorageSetting -NewDiskPolicy OfflineShared
:使所有新的共享总线磁盘脱机和所有新的本地总线磁盘联机 -
Set-StorageSetting -NewDiskPolicy OnlineAll
:让所有新磁盘联机,无论磁盘是在本地还是共享总线上。
重要
- 请参阅 vSphere 支持版本的系统要求 (ESXi)。
- 无法转换 VMware 工作站。
- 无法使用连接到 IDE 总线的虚拟硬盘转换 VM。
- 必须支持防病毒应用。
- 不支持联机转换。 需要关闭 VMware VM。
- 必须从 VM 的来宾操作系统卸载 VMware 工具。
- 驻留在 vSAN 类型存储上的 VMware VM 无法转换为具有 SCVMM 的 Hyper-V。
- 建议升级到 VMM 2022 UR2,以更快地将 VMware VM 转换为 Hyper-V 四倍。
注意
建议从同一 ESXi 源并行触发 10 个以上的转换到同一个 Hyper-V 目标。 如果源-目标对不同,VMM 最多可以并行支持 100 个 VM 转换,其余转换已排队。 但是,我们建议在较小的批次中暂存 VM 转换,以提高效率。
注意
转换后,除 OS 磁盘之外的所有 VM 磁盘都将处于脱机状态。 这是因为参数 NewDiskPolicy
默认设置为 VMware VM 上的脱机ALL 。 若要重写此磁盘并在转换后使新磁盘联机,可以在启动转换之前对 VMware VM 磁盘策略进行以下更改之一:
-
Set-StorageSetting -NewDiskPolicy OfflineShared
:使所有新的共享总线磁盘脱机和所有新的本地总线磁盘联机 -
Set-StorageSetting -NewDiskPolicy OnlineAll
:让所有新磁盘联机,无论磁盘是在本地还是共享总线上。
目前,将 VMware VM 转换为 Hyper-V 有以下几种方法:
转换虚拟机向导:可以从 VMM 控制台中使用此向导。
重要
- 请参阅 vSphere 支持版本的系统要求 (ESXi)。
- 无法转换 VMware 工作站。
- 无法使用连接到 IDE 总线的虚拟硬盘转换 VM。
- 必须支持防病毒应用。
- 不支持联机转换。 需要关闭 VMware VM。
- 必须从 VM 的来宾操作系统卸载 VMware 工具。
Microsoft 虚拟机转换器:这款独立的工具可将 VMware VM 转换为 Hyper-V 主机或 Azure VM。 它还将物理计算机和磁盘转换为 Hyper-V 主机。
重要
对此工具的支持已终止。
使用向导进行转换
- 依次选择“VM 和服务”>“主页”>“创建”>“创建虚拟机”>“转换虚拟机”。
- 在“转换虚拟机向导”>“选择源”中,单击“浏览”,并在“选择虚拟机源”中,选择想要转换的 VMware VM。
- 在“指定虚拟机标识”中,按需要修改计算机名称和说明。
- 在“虚拟机配置”中,指定处理器和内存设置的数量。
- 在“选择主机”中,选择 Hyper-V 主机/Azure Stack HCI(适用于 VMM 2019 UR3 和更高版本)以完成放置。 在“选择路径”中,在 VM 文件的主机上配置存储位置。 列出了默认 VM 路径。
- 在“选择网络”中,根据需要选择逻辑网络、虚拟网络和 VLAN。
- 在“添加属性”中,配置所需设置。 在“摘要”中,查看设置,并在部署虚拟机后根据需要选择“启动虚拟机”。
- 选择“创建”开始转换。 在“VM 和服务”>“主页”>“显示”>“VM”中验证 VM 的转换。
将基于 EFI 的 VM 转换为 Hyper-V 第 2 代 VM
System Center VMM 允许将基于 EFI 的 VMware VM 迁移到 Hyper-V。 迁移到 Microsoft Hyper-V 平台的 VMware VM 现在可以利用第 2 代功能。
“转换虚拟机”向导启用此迁移。 基于固件类型(BIOS 或 EFI),此向导选择并默认设置相应的 Hyper-V VM 代别。
- 基于 BIOS 的 VM 迁移到 Hyper-V VM 第 1 代。
- 基于 EFI 的 VM 迁移到 Hyper-V VM 第 2 代。
开始之前
请确保满足以下先决条件:
- 固件类型为 EFI 的 VMware VM
- 在 System Center VMM 中添加的 VMware ESXi 主机
转换过程
若要转换,请按照 上述过程 操作,并在步骤 4 中选择 第 2 代。
VM 转换之后,可以看到如下图中所示的第 2 代 VM:
注意
- 借助 PowerShell 命令,可以为目标 Hyper-V VM 提供磁盘类型,以便根据要求将 VMware 厚预配磁盘迁移为 Hyper-V 动态磁盘,反之亦然。
使用 PowerShell cmdlet 进行转换
下面是示例 cmdlet:
New-SCV2V -VMHost <Host> -VMXPath <string> [-EnableVMNetworkOptimization <bool>] [-EnableMACAddressSpoofing
<bool>] [-VMMServer <ServerConnection>] [-LibraryServer <LibraryServer>] [-JobGroup <guid>] [-Trigger] [-VhdType
{UnknownType | DynamicallyExpanding | FixedSize}] [-VhdFormat {VHD | VHDX}] [-Description <string>] [-Name
<string>] [-Owner <string>] [-UserRole <UserRole>] [-Path <string>] [-StartVM] [-CPUCount <byte>]
[-CPURelativeWeight <int>] [-CPUType <ProcessorType>] [-MemoryMB <int>] [-Generation <int>] [-DelayStartSeconds
<int>] [-StartAction {NeverAutoTurnOnVM | AlwaysAutoTurnOnVM | TurnOnVMIfRunningWhenVSStopped}] [-StopAction
{SaveVM | TurnOffVM | ShutdownGuestOS}] [-LogicalNetwork <LogicalNetwork>] [-VMNetwork <VMNetwork>]
[-NoConnection] [-MACAddress <string>] [-MACAddressType <string>] [-SourceNetworkConnectionID <string>]
[-VirtualNetwork <VirtualNetwork>] [-VirtualNetworkAdapter <VirtualNetworkAdapter>] [-VLanEnabled <bool>] [-VLanID
<uint16>] [-OverridePatchPath <string>] [-SkipInstallVirtualizationGuestServices] [-NetworkLocation <string>]
[-NetworkTag <string>] [-RunAsynchronously] [-PROTipID <guid>] [-JobVariable <string>] [<CommonParameters>]
更快地将 VMware VM 转换为 Hyper-V
- 作为开始将 VMware VM 转换为 Hyper-V 四倍的先决条件,请升级到 SCVMM 2022 UR2 或更高版本。
- 作为 SCVMM 2022 UR2 的一部分,在 SCVMM 管理的 Hyper-V 主机中引入了名为 V2VTransferChunkSizeBytes 的新注册表:\SOFTWARE\Microsoft\Microsoft System Center Virtual Machine Manager 代理。
- 此类型为 REG_DWORD 的注册表,值为 2147483648,必须在 VMM 管理的每个 Hyper-V 主机上通过从 VMM 控制台运行 此脚本 来设置 2 GB(以字节为单位)。
- 或者,如果要在单个主机上而不是在所有主机上设置此注册表值,请从 VMM 控制台运行 此脚本 。
- 设置此注册表值后,如果从 SCVMM 中删除任何 Hyper-V 主机,此注册表的过时条目可能仍然存在。 如果将同一主机重新添加到 SCVMM,则遵循注册表 V2VTransferChunkSizeBytes 以前的值。
VMM 为 V2V(虚拟到虚拟)转换提供了简单的基于向导的体验。
重要
- 查看支持的 vCenter/ESXi 服务器的系统要求。
- 查看 ESXi 和 Hyper-V 主机和 vCenter 服务器所需的端口列表。
- 查看 本文 ,了解如何在 SCVMM 中管理 vCenter 服务器、ESXi 主机和 VMware VM。
- 无法转换 VMware 工作站。
- 无法使用连接到 IDE 总线的虚拟硬盘转换 VM。
- 必须从 VM 的来宾操作系统卸载 VMware 工具。
- 驻留在 vSAN 类型存储上的 VMware VM 无法转换为具有 SCVMM 的 Hyper-V。
- SCVMM 不支持联机转换。
- 建议升级到 VMM 2025,以更快地将 VMware VM 转换为 Hyper-V 四倍,并增强转换体验。
首先,在 SCVMM 管理下引入 vCenter 服务器和源 ESXi 主机
在 VMM 中创建 vCenter Server 管理员角色的运行方式帐户。 这些管理员凭据用于管理 vCenter 服务器和 ESXi 主机。
在 VMM 控制台的 Fabric 下,选择“>”。
在 “添加 VMware vCenter Server ”页中,执行以下操作:
a. 计算机名称:指定 vCenter 服务器名称。
b. 运行方式帐户:选择为 vSphere 管理员创建的运行方式帐户。选择“完成”。
在 “导入证书 ”页上,选择“ 导入”。
成功添加 vCenter 服务器后,会在 VMM 中发现 vCenter 下的所有 ESXi 主机。
在 VMM 控制台的 Fabric 下,选择“>”。
在“添加资源向导”中,
a. 在“凭据”下,选择要添加的 ESXi 主机上具有管理员权限的运行方式帐户,然后选择“下一步”。b. 在“目标资源”下,选择需要添加到 VMM 的所有 ESXi 群集,然后选择“下一步”。
c. 在“主机设置”下,选择要在其中添加 VM 的主机组,然后选择“下一步”。
d. 在“摘要”下,查看设置并选择“完成”。 与主机一起,也会添加关联的 VM。
选择 Fabric>服务器>所有主机,并在主机组中检查每个主机或群集的状态。 主机状态 应 正常 或 正常(有限)。
如果状态显示为有限,则表示您已启用设置 以安全模式与 VMware ESX 主机通信,但尚未从每台 vSphere 主机导入证书。 若要修改安全设置,请右键单击 vCenter 服务器 >属性>安全。
若要导入证书,请选择每个相关的主机名 >属性>管理>检索>确定。 导入后,主机状态必须 正常。
将 VMware VM 转换为 Hyper-V
现在,通过 VMM 发现和管理 VMware VM 后,可以按照以下说明将这些 VM 转换为 Hyper-V:
确保要转换的 VMware VM 处于 “已 停止”状态,并且没有与之关联的快照。
选择 VM 和服务 > 主页 > 转换虚拟机。
在“转换虚拟机向导>”中选择“源”,选择“浏览”,然后在“选择虚拟机源”中选择要转换的 VMware VM。
在“指定虚拟机标识”中,按需要修改计算机名称和说明。
在 虚拟机配置中,指定处理器和内存设置的数量,然后选择目标 VM 的 代。
在 “选择主机”中,选择要放置的 Hyper-V 主机/Azure 本地。 在“选择路径”中,在 VM 文件的主机上配置存储位置。 列出了默认 VM 路径。
在“选择网络”中,根据需要选择逻辑网络、虚拟网络和 VLAN。
在“添加属性”中,配置所需设置。 在“摘要”中,查看设置,并在部署虚拟机后根据需要选择“启动虚拟机”。
选择“创建”开始转换。 验证 VM 在 VM 和服务>主页>显示 > VM 中的转换。
注意
转换后,除 OS 磁盘之外的所有 VM 磁盘都将处于脱机状态。 这是因为参数 NewDiskPolicy
默认设置为 VMware VM 上的脱机ALL 。 若要重写此磁盘并在转换后使新磁盘联机,可以在启动转换之前对 VMware VM 磁盘策略进行以下更改之一:
-
Set-StorageSetting -NewDiskPolicy OfflineShared
:使所有新的共享总线磁盘脱机和所有新的本地总线磁盘联机。 -
Set-StorageSetting -NewDiskPolicy OnlineAll
:让所有新磁盘联机,无论磁盘是在本地还是共享总线上。
使用 PowerShell cmdlet 进行转换
下面是使用所有参数通过 SCVMM 进行 V2V 转换的 PowerShell cmdlet:
New-SCV2V -VMHost <Host> -VMXPath <string> [-EnableVMNetworkOptimization <bool>] [-EnableMACAddressSpoofing
<bool>] [-VMMServer <ServerConnection>] [-LibraryServer <LibraryServer>] [-JobGroup <guid>] [-Trigger] [-VhdType
{UnknownType | DynamicallyExpanding | FixedSize}] [-VhdFormat {VHD | VHDX}] [-Description <string>] [-Name
<string>] [-Owner <string>] [-UserRole <UserRole>] [-Path <string>] [-StartVM] [-CPUCount <byte>]
[-CPURelativeWeight <int>] [-CPUType <ProcessorType>] [-MemoryMB <int>] [-Generation <int>] [-DelayStartSeconds
<int>] [-StartAction {NeverAutoTurnOnVM | AlwaysAutoTurnOnVM | TurnOnVMIfRunningWhenVSStopped}] [-StopAction
{SaveVM | TurnOffVM | ShutdownGuestOS}] [-LogicalNetwork <LogicalNetwork>] [-VMNetwork <VMNetwork>]
[-NoConnection] [-MACAddress <string>] [-MACAddressType <string>] [-SourceNetworkConnectionID <string>]
[-VirtualNetwork <VirtualNetwork>] [-VirtualNetworkAdapter <VirtualNetworkAdapter>] [-VLanEnabled <bool>] [-VLanID
<uint16>] [-OverridePatchPath <string>] [-SkipInstallVirtualizationGuestServices] [-NetworkLocation <string>]
[-NetworkTag <string>] [-RunAsynchronously] [-PROTipID <guid>] [-JobVariable <string>] [<CommonParameters>]
注意
建议从同一 ESXi 源并行触发 10 个以上的转换到同一个 Hyper-V 目标。 如果源-目标对不同,VMM 最多可以并行支持 100 个 VM 转换,其余转换已排队。 但是,我们建议在较小的批次中暂存 VM 转换,以提高效率。