在 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 主机。

    重要

    对此工具的支持已终止。

使用向导进行转换

  1. 依次选择“VM 和服务”>“主页”>“创建”>“创建虚拟机”>“转换虚拟机”
  2. 在“转换虚拟机向导”>“选择源”中,单击“浏览”,并在“选择虚拟机源”中,选择想要转换的 VMware VM。
  3. 在“指定虚拟机标识”中,按需要修改计算机名称和说明。
  4. 在“虚拟机配置”中,指定处理器和内存设置的数量。
  5. 在“选择主机”中,选择 Hyper-V 主机/Azure Stack HCI(适用于 VMM 2019 UR3 和更高版本)以完成放置。 在“选择路径”中,在 VM 文件的主机上配置存储位置。 列出了默认 VM 路径。
  6. 在“选择网络”中,根据需要选择逻辑网络、虚拟网络和 VLAN。
  7. 在“添加属性”中,配置所需设置。 在“摘要”中,查看设置,并在部署虚拟机后根据需要选择“启动虚拟机”。
  8. 选择“创建”开始转换。 在“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 主机

转换过程

  1. 若要转换,请按照 上述过程 操作,并在步骤 4 中选择 第 2 代。

    配置 VM 转换为第 2 代的屏幕截图。

  2. VM 转换之后,可以看到如下图中所示的第 2 代 VM:

    VM 转换为第 2 代的屏幕截图。

注意

  • 借助 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(虚拟到虚拟)转换提供了简单的基于向导的体验。

重要

首先,在 SCVMM 管理下引入 vCenter 服务器和源 ESXi 主机

  1. 在 VMM 中创建 vCenter Server 管理员角色的运行方式帐户。 这些管理员凭据用于管理 vCenter 服务器和 ESXi 主机。

    创建运行方式帐户页的屏幕截图。

  2. 在 VMM 控制台的 Fabric 下,选择“>”。

    “添加 VMware vCenter 服务器”选项的屏幕截图。

  3. “添加 VMware vCenter Server ”页中,执行以下操作:
    a. 计算机名称:指定 vCenter 服务器名称。
    b. 运行方式帐户:选择为 vSphere 管理员创建的运行方式帐户。

    指定 vCenter 服务器页的屏幕截图。

  4. 选择“完成”。

  5. “导入证书 ”页上,选择“ 导入”。

    “导入证书”页的屏幕截图。

  6. 成功添加 vCenter 服务器后,会在 VMM 中发现 vCenter 下的所有 ESXi 主机。

  7. 在 VMM 控制台的 Fabric 下,选择“>”。

    “添加 VMware ESX 主机和群集”页的屏幕截图。

  8. 在“添加资源向导”中
    a. 在“凭据”下,选择要添加的 ESXi 主机上具有管理员权限的运行方式帐户,然后选择“下一步”。

    “添加资源向导”页的屏幕截图。

    b. 在“目标资源”下,选择需要添加到 VMM 的所有 ESXi 群集,然后选择“下一步”。

    “选择 ESXi 计算机”页的屏幕截图。

    c. 在“主机设置”下,选择要在其中添加 VM 的主机组,然后选择“下一步”。

    “添加虚拟机路径”页的屏幕截图。

    d. 在“摘要”,查看设置并选择“完成”。 与主机一起,也会添加关联的 VM。

    确认设置页的屏幕截图。

  9. 选择 Fabric>服务器>所有主机,并在主机组中检查每个主机或群集的状态。 主机状态正常正常(有限)

  10. 如果状态显示为有限,则表示您已启用设置 以安全模式与 VMware ESX 主机通信,但尚未从每台 vSphere 主机导入证书。 若要修改安全设置,请右键单击 vCenter 服务器 >属性>安全

  11. 若要导入证书,请选择每个相关的主机名 >属性>管理>检索>确定。 导入后,主机状态必须 正常

将 VMware VM 转换为 Hyper-V

现在,通过 VMM 发现和管理 VMware VM 后,可以按照以下说明将这些 VM 转换为 Hyper-V:

  1. 确保要转换的 VMware VM 处于 “已 停止”状态,并且没有与之关联的快照。

  2. 选择 VM 和服务 > 主页 > 转换虚拟机

  3. “转换虚拟机向导>”中选择“源”,选择“浏览,然后在“选择虚拟机源”中选择要转换的 VMware VM。

  4. 在“指定虚拟机标识”中,按需要修改计算机名称和说明。

  5. 虚拟机配置中,指定处理器和内存设置的数量,然后选择目标 VM 的

  6. “选择主机”中,选择要放置的 Hyper-V 主机/Azure 本地。 在“选择路径”中,在 VM 文件的主机上配置存储位置。 列出了默认 VM 路径。

  7. 在“选择网络”中,根据需要选择逻辑网络、虚拟网络和 VLAN。

  8. 在“添加属性”中,配置所需设置。 在“摘要”中,查看设置,并在部署虚拟机后根据需要选择“启动虚拟机”。

  9. 选择“创建”开始转换。 验证 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 转换,以提高效率。

注意

Microsoft合作伙伴提供非Microsoft迁移选项。 这些选项以额外的成本提供给你,但有助于在迁移期间减少 VM 停机时间。 以下非Microsoft迁移选项可用:

后续步骤

管理 VM 设置