本文介绍如何将 System Center Virtual Machine Manager (VMM) 构造中的 VMware VM 转换为 Hyper-V。
可以使用“转换虚拟机”向导转换 VM。 可以从 VMM 控制台中使用此向导。
VMM 2019 UR3 支持将 VMware VM 转换为 Hyper-V 和 Azure Local 20H2。 详细了解对 Azure Local 20H2的支持。
重要
- 请参阅 vSphere 支持版本的系统要求 (ESXi)。
- 无法转换 VMware 工作站。
- 无法使用连接到 IDE 总线的虚拟硬盘转换 VM。
- 必须支持防病毒应用。
- 不支持联机转换。 你需要关闭 VMware 虚拟机。
- 必须从 VM 的来宾操作系统卸载 VMware 工具。
- 建议升级到 VMM 2022 UR2,以更快地将 VMware VM 转换为 Hyper-V 四倍。
注意
我们建议从同一 ESXi 源并行触发到同一 Hyper-V 目标的转换不超过十次。 如果源-目标对不同,VMM 最多可以同时支持 100 个 VM 转换,其余的转换将排队等待。 但是,我们建议将 VM 转换分批进行,以提高效率。
注意
转换后,除 OS 磁盘之外的所有 VM 磁盘都将处于脱机状态。 这是因为参数 NewDiskPolicy
默认设置为 VMware VM 上的脱机ALL 。 若要覆盖此设置并在转换完成后使新磁盘联机,可以在启动转换之前对 VMware 虚拟机磁盘策略进行以下更改之一:
Set-StorageSetting -NewDiskPolicy OfflineShared
:使所有新的共享总线磁盘脱机和所有新的本地总线磁盘联机Set-StorageSetting -NewDiskPolicy OnlineAll
:让所有新磁盘联机,无论磁盘是在本地还是共享总线上。
重要
- 请参阅 vSphere 支持版本的系统要求 (ESXi)。
- 无法转换 VMware 工作站。
- 无法使用连接到 IDE 总线的虚拟硬盘转换 VM。
- 必须支持防病毒应用。
- 不支持联机转换。 你需要关闭 VMware 虚拟机。
- 必须从 VM 的来宾操作系统卸载 VMware 工具。
- 驻留在 vSAN 类型存储上的 VMware VM 无法转换为具有 SCVMM 的 Hyper-V。
- 建议升级到 VMM 2022 UR2,以更快地将 VMware VM 转换为 Hyper-V 四倍。
注意
我们建议从同一 ESXi 源并行触发到同一 Hyper-V 目标的转换不超过十次。 如果源-目标对不同,VMM 最多可以同时支持 100 个 VM 转换,其余的转换将排队等待。 但是,我们建议将 VM 转换分批进行,以提高效率。
注意
转换后,除 OS 磁盘之外的所有 VM 磁盘都将处于脱机状态。 这是因为参数 NewDiskPolicy
默认设置为 VMware VM 上的脱机ALL 。 若要覆盖此设置并在转换完成后使新磁盘联机,可以在启动转换之前对 VMware 虚拟机磁盘策略进行以下更改之一:
Set-StorageSetting -NewDiskPolicy OfflineShared
:使所有新的共享总线磁盘脱机和所有新的本地总线磁盘联机Set-StorageSetting -NewDiskPolicy OnlineAll
:让所有新磁盘联机,无论磁盘是在本地还是共享总线上。
目前,将 VMware VM 转换为 Hyper-V 有以下几种方法:
转换虚拟机向导:可以从 VMM 控制台中使用此向导。
重要
- 请参阅 vSphere 支持版本的系统要求 (ESXi)。
- 无法转换 VMware 工作站。
- 无法使用连接到 IDE 总线的虚拟硬盘转换 VM。
- 必须支持防病毒应用。
- 不支持联机转换。 你需要关闭 VMware 虚拟机。
- 必须从 VM 的来宾操作系统卸载 VMware 工具。
Microsoft 虚拟机转换器:这款独立的工具可将 VMware VM 转换为 Hyper-V 主机或 Azure VM。 它还将物理计算机和磁盘转换为 Hyper-V 主机。
重要
对此工具的支持已终止。
使用向导进行转换
- 依次选择 VM 和服务>主页>创建>创建虚拟机>转换虚拟机。
- 在“转换虚拟机向导”>“选择源”中,单击“浏览”,并在“选择虚拟机源”中,选择想要转换的 VMware VM。
- 在“指定虚拟机标识”中,按需要修改计算机名称和说明。
- 在“虚拟机配置”中,指定处理器和内存设置的数量。
- 在“虚拟机配置”中,指定处理器和内存设置的数量。 如果源 VMware VM 配置了 UEFI 固件,请选择 第 2 代;如果源 VMware VM 配置了 BIOS 固件,请选择 第 1 代 。
- 在 选择主机中,选择 Hyper-V 主机/Azure 本地计算机(适用于 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 代功能。
注意
在转换具有四个以上的磁盘的基于 VMware BIOS 的 VM 时,由于 IDE 标准的限制,转换后并非所有磁盘都附加到新的 Hyper-V VM。 若要附加剩余的磁盘,请在转换 VM 后运行此 PowerShell 脚本 。
注意
- 借助 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 的速度加快 4 倍,需要升级到 SCVMM 2022 UR2 或更高版本。
- 作为 SCVMM 2022 UR2 的一部分,在 SCVMM 管理的 Hyper-V 主机中,注册表路径 HKLM:\SOFTWARE\Microsoft\Microsoft System Center Virtual Machine Manager Agent 新增了名为 V2VTransferChunkSizeBytes 的注册表项。
- 此类型为 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 服务器。
在 “添加 VMware vCenter Server ”页中,执行以下操作:
a。 计算机名称:指定 vCenter 服务器名称。
b. 运行方式帐户:选择为 vSphere 管理员创建的运行方式帐户。选择“完成”。
在 “导入证书 ”页上,选择“ 导入”。
成功添加 vCenter 服务器后,会在 VMM 中发现 vCenter 下的所有 ESXi 主机。
在 VMM 控制台的 Fabric 下,选择 服务器>添加 VMware ESX 主机和群集。
在“添加资源向导”中,
a。 在“凭据”下,选择在要添加的 ESXi 主机上具有管理员权限的运行帐户,然后选择“下一步”。b. 在“目标资源”下,选择需要添加到 VMM 的所有 ESXi 群集,然后选择“下一步”。
c. 在“主机设置”下,选择要在其中添加 VM 的主机组,然后选择“下一步”。
d. 在“摘要”下,查看设置并选择“完成”。 与主机一起,相关的虚拟机也将被添加。
选择 Fabric>服务器>所有主机,并在主机组中检查每个主机或群集的状态。 主机状态 应 正常 或 正常(有限)。
如果状态显示为有限,则表示您已启用设置 以安全模式与 VMware ESX 主机通信,但尚未从每台 vSphere 主机导入证书。 若要修改安全设置,请右键单击 vCenter 服务器 >属性>安全。
若要导入证书,请选择每个相关的主机名>属性>管理>检索>确定。 导入后,主机状态必须 正常。
将 VMware VM 转换为 Hyper-V
现在,通过 VMM 发现和管理 VMware VM 后,可以按照以下说明将这些 VM 转换为 Hyper-V:
确保要转换的 VMware VM 处于 “已 停止”状态,并且没有与之关联的快照。
选择 VM 和服务 > 主页 > 转换虚拟机。
在“转换虚拟机向导>”中选择“源”,选择“浏览”,然后在“选择虚拟机源”中选择要转换的 VMware VM。
在“指定虚拟机标识”中,按需要修改计算机名称和说明。
在“虚拟机配置”中,指定处理器和内存设置的数量。 如果源 VMware VM 配置了 UEFI 固件,请选择 第 2 代;如果源 VMware VM 配置了 BIOS 固件,请选择 第 1 代 。
在 “选择主机”中,选择要放置的 Hyper-V 主机/Azure 本地。 在“选择路径”中,在 VM 文件的主机上配置存储位置。 列出了默认 VM 路径。
在“选择网络”中,根据需要选择逻辑网络、虚拟网络和 VLAN。
在“添加属性”中,配置所需设置。 在“摘要”中,查看设置,并在部署虚拟机后根据需要选择“启动虚拟机”。
选择“创建”开始转换。 在 VM 和服务> 主页> 显示 > VM 中验证 VM 的转换。
注意
在转换具有四个以上的磁盘的基于 VMware BIOS 的 VM 时,由于 IDE 标准的限制,转换后并非所有磁盘都附加到新的 Hyper-V VM。 若要附加剩余的磁盘,请在转换 VM 后运行此 PowerShell 脚本 。
注意
转换后,除 OS 磁盘之外的所有 VM 磁盘都将处于脱机状态。 这是因为参数 NewDiskPolicy
默认设置为 VMware VM 上的脱机ALL 。 若要覆盖此设置并在转换完成后使新磁盘联机,可以在启动转换之前对 VMware 虚拟机磁盘策略进行以下更改之一:
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 源并行触发到同一 Hyper-V 目标的转换不超过十次。 如果源-目标对不同,VMM 最多可以同时支持 100 个 VM 转换,其余的转换将排队等待。 但是,我们建议将 VM 转换分批进行,以提高效率。