在不使用故障转移群集的情况下使用实时迁移来移动虚拟机

适用范围:Windows Server 2022、Windows Server 2019、Windows Server 2016

本文介绍如何在不使用故障转移群集的情况下执行实时迁移来移动虚拟机。 实时迁移在 Hyper-V 主机之间移动正在运行的虚拟机,而不会造成任何明显的停机时间。

若要做到这一点,需要具备以下项:

  • 一个用户帐户,该帐户是源计算机和目标计算机上的本地 Hyper-V 管理员组或管理员组的成员。

  • 源和目标服务器上安装的 Windows Server 2016 或Windows Server 2012 R2 中的 Hyper-V 角色,并针对实时迁移进行设置。 如果虚拟机至少为版本 5,则可以在运行 Windows Server 2016 和 Windows Server 2012 R2 的主机之间执行实时迁移。

    有关版本升级说明,请参阅在 Windows 10 或 Windows Server 2016 上升级 Hyper-V 中的虚拟机版本。 有关安装说明,请参阅为实时迁移设置主机

  • Hyper-V 管理工具已安装在运行 Windows Server 2016 或 Windows 10 的计算机上,除非是这些工具安装在源服务器或目标服务器上,并且你将从服务器运行这些工具。

使用 Hyper-V 管理器移动正在运行的虚拟机

  1. 打开 Hyper-V 管理器。 (在服务器管理器中单击“工具”>>“Hyper-V 管理器”。)

  2. 在导航窗格中,选择其中一个服务器。 (如果未列出,请右键单击“Hyper-V 管理器”,单击“连接到服务器”,键入服务器名称,然后单击“确定”。重复添加更多服务器。)

  3. 在“虚拟机”窗格中,右键单击虚拟机,然后单击“移动”。 此时将打开“移动向导”。

  4. 使用向导页选择移动类型、目标服务器和选项。

  5. “摘要” 页面,检查你的选项,然后单击 “完成”

使用 Windows PowerShell 迁移运行中的虚拟机

以下示例使用 Move-VM cmdlet 将名为 LMTest 的虚拟机迁移至名为 TestServer02 的目标服务器,同时将虚拟硬盘和其他文件(如检查点和智能分页文件)迁移至目标服务器的 D:\LMTest 目录下

PS C:\> Move-VM LMTest TestServer02 -IncludeStorage -DestinationStoragePath D:\LMTest

疑难解答

无法建立连接

如果尚未设置约束委派,必须先登录到源服务器,然后才能移动虚拟机。 如果不这样做,身份验证尝试将失败,发生错误,并显示以下消息:

“虚拟机迁移操作失败,迁移出错位置:源计算机。 未能与主机 计算机名称 建立连接:安全数据包 0x8009030E 中没有可用凭据。

若要解决此问题,请登录到源服务器并再次尝试移动。 为了避免在执行实时迁移之前必须登录到源服务器,请设置约束委派。 需要域管理员凭据才能设置约束委派。 有关说明,请参阅为实时迁移设置主机

由于主机硬件不兼容而失败

如果虚拟机未打开处理器兼容性,并且有一个或多个快照,则当主机具有不同的处理器版本时,移动将失败。 发生错误并显示以下消息:

无法将虚拟机移动到目标计算机。 目标计算机上的硬件与此虚拟机的硬件要求不兼容。

若要解决此问题,请关闭虚拟机并打开处理器兼容性设置。

  1. 从 Hyper-V Manager 的“虚拟机”窗格中,右键单击虚拟机并单击“设置”

  2. 在导航窗格中,展开“处理器”,然后单击“兼容性”

  3. 选中“迁移到具有不同处理器版本的计算机”

  4. 单击“确定”。

    若要使用 Windows PowerShell,请使用 Set-VMProcessor cmdlet:

    PS C:\> Set-VMProcessor TestVM -CompatibilityForMigrationEnabled $true