实时迁移允许在服务器之间移动正在运行的虚拟机,且停机时间最短。 本文介绍如何在 Hyper-V 中设置用于实时迁移的非聚集主机,包括身份验证选项、网络配置和安全最佳做法。 如果在安装 Hyper-V 期间未配置实时迁移,或者需要更新设置,请使用这些步骤。
设置实时迁移的要求
若要为实时迁移设置非聚集主机,需要:
源和目标计算机上的本地 Hyper-V 管理员组或管理员组的成员身份满足此要求,除非设置约束委派。 需要成为域管理员组的成员才能设置约束委派。
在源服务器和目标服务器上安装的 Windows Server 中 Hyper-V 角色。 可以在运行 Windows Server 2012 R2 及更高版本的主机之间运行实时迁移。 有关安装说明,请参阅在 Windows Server 上安装 Hyper-V 角色。
属于同一 Active Directory 域或相互信任的域的源计算机和目标计算机。
在运行至少 Windows Server 2016 或 Windows 10 的计算机上安装 Hyper-V 管理工具,除非工具安装在源或目标服务器上,并且你从服务器运行这些工具。
考虑有关身份验证和网络的选项
决定如何设置身份验证、性能和网络选项。
身份验证:使用哪种协议对源服务器和目标服务器之间的实时迁移流量进行身份验证? 选择的协议确定在开始实时迁移之前是否需要登录到源服务器:
Kerberos 允许你避免登录到服务器,但需要设置约束委派。 有关说明,请参阅以下详细信息。
CredSSP 允许你避免设置约束委派,但需要登录到源服务器。 可以通过本地控制台会话、远程桌面会话或远程 Windows PowerShell 会话执行此操作。
CredSSP 可能要求你在一些不明显的情况下登录。 例如,如果登录到 TestServer01 以将虚拟机移动到 TestServer02,然后想要将虚拟机移回 TestServer01,则需要先登录到 TestServer02,然后再尝试将虚拟机移回 TestServer01。 否则,身份验证尝试将失败,出现错误,并看到以下消息:
“虚拟机迁移操作失败,迁移出错位置:源计算机。 未能与 主机名称建立连接:安全包0x8009030E中没有可用的凭据。
性能:是否应设置性能选项? 这些选项可以减少网络和 CPU 使用率,并使实时迁移更快。 检查要求和基础结构,并测试不同的配置以决定。 步骤 2 结束时介绍了这些选项。
网络首选项:是否允许通过任何可用网络进行实时迁移流量,还是将流量隔离到特定网络? 最佳做法是将流量隔离到受信任的专用网络中,因为通过网络发送实时迁移流量时不会加密。 可以使用物理隔离的网络或其他受信任的网络技术(如 VLAN)来隔离网络。
升级到 Windows Server 2025
从 Windows Server 2025 开始,默认情况下,Credential Guard 在所有加入域但不是域控制器的服务器上启用。 因此,升级到 Windows Server 2025 后,无法将基于 CredSSP 的实时迁移与 Hyper-V 配合使用。 基于 CredSSP 的委派是 Windows Server 2022 及更早版本的实时迁移的默认值。 请改用 Kerberos 约束委派,如以下部分所述。 有关详细信息,请参阅升级到 Windows Server 2025 时,Hyper-V 的实时迁移中断。
步骤 1:配置约束委派(可选)
如果决定使用 Kerberos 对实时迁移流量进行身份验证,请使用属于域管理员组成员的帐户配置受限委派。
使用“用户和计算机”管理单元工具设定受限委派
打开“Active Directory 用户和计算机”管理单元。 在服务器管理器中,选择服务器,然后选择 “工具>Active Directory 用户和计算机”。
在 Active Directory 用户和计算机的导航窗格中,选择域,然后双击 “计算机” 文件夹。
在 “计算机” 文件夹中,右键单击源服务器的计算机帐户,然后选择“ 属性”。
在 “属性”中,选择“ 委派 ”选项卡。
在“ 委派 ”选项卡上,选择“ 信任此计算机”以仅委派到指定的服务,然后选择“ 使用任何身份验证协议”。
选择 并添加。
在 “添加服务”中,选择“ 用户”或“计算机”。
在“选择用户或计算机”对话框,键入目标服务器的名称。 选择 “检查名称 ”以验证它,然后选择“ 确定”。
在 “添加服务”中,在可用服务列表中执行以下作,然后选择“ 确定” :
若要移动虚拟机存储,请选择 cifs。 如果您想将存储与虚拟机一起迁移,或者只迁移虚拟机的存储,则需要执行此操作。 如果将该服务器配置为使用 Hyper-V 的 SMB 存储器,则应首先选中该选项。
要迁移虚拟机,选择“Microsoft 虚拟系统迁移服务”。
在“属性”对话框的“ 委派 ”选项卡上,检查在上一步中选择的服务是否列为目标计算机可以向其提供委派凭据的服务。 选择“确定”。
在 “计算机” 文件夹中,选择目标服务器的计算机帐户并重复该过程。 在 “选择用户或计算机 ”对话框中,确保指定源服务器的名称。
配置更改在以下之后生效:
- 这些更改将复制到运行 Hyper-V 的服务器登录到的域控制器。
- 域控制器颁发新的 Kerberos 票证。
步骤 2:设置进行实时迁移的源计算机和目标计算机的步骤
此步骤介绍身份验证和网络选项。 为了提高安全性,请选择特定网络进行实时迁移通信,如前所述。 还可以选择此步骤中的性能选项。
使用 Hyper-V 管理器为实时迁移设置源计算机和目标计算机
打开 Hyper-V 管理器。 在“服务器管理器”中,选择“ 工具> ”Hyper-V 管理器。
在导航窗格中,选择服务器。 如果未列出,请右键单击 Hyper-V 管理器,选择“ 连接到服务器”,输入服务器名称,然后选择“ 确定”。 重复添加更多服务器。
在“操作”窗格中,选择“Hyper-V 设置”>实时迁移。
在“ 实时迁移 ”窗格中,选择“ 启用传入和传出实时迁移”。
在 “同时实时迁移”下,如果不想使用默认值 2,请输入其他数字。
在 传入实时迁移下,如果要使用特定网络连接来接受实时迁移流量,请选择“ 添加 ”以键入 IP addr1。 若要设置 Kerberos 和性能选项,请展开 实时迁移 并选择 “高级功能”。
- 如果设置了约束委派,请在 “身份验证协议”下选择 “Kerberos”。
- 在 “性能”选项下,查看详细信息,如果符合你的环境,请选择其他选项。ce 选项**,查看详细信息,如果适合你的环境,请选择其他选项。
选择“确定”。
在 Hyper-V Manager 中选择其他服务器,然后重复这些步骤。
使用 Windows PowerShell 设置实时迁移的源计算机和目标计算机
可以使用三个 cmdlet 在非聚集主机上设置实时迁移: Enable-VMMigration、 Set-VMMigrationNetwork 和 Set-VMHost。 此示例使用这三个方法:
- 在本地主机上设置实时迁移
- 仅允许传入的迁移流量在特定网络上流动
- 选择 Kerberos 作为身份验证协议
每行都是一个单独的命令。
PS C:\> Enable-VMMigration
PS C:\> Set-VMMigrationNetwork 192.168.10.1
PS C:\> Set-VMHost -VirtualMachineMigrationAuthenticationType Kerberos
Set-VMHost 还可以选择性能选项和其他主机设置。 例如,若要选择 SMB,但将身份验证协议设置为 CredSSP 的默认值,请输入:
PS C:\> Set-VMHost -VirtualMachineMigrationPerformanceOption SMB
下表介绍了性能选项的工作方式。
| Option | Description |
|---|---|
| TCP/IP | 通过 TCP/IP 连接虚拟机的内存复制到目标服务器。 |
| Compression | 在通过 TCP/IP 连接将虚拟机的内存内容复制到目标服务器之前,先对虚拟机的内存内容进行压缩。 压缩是 默认设置 。 |
| SMB | 虚拟机的内存将通过 SMB 3.0 连接复制到目标服务器。 - 当源服务器和目标服务器上的网络适配器启用远程直接内存访问(RDMA)时,将使用 SMB Direct。 - 设置正确的 SMB 多通道配置时,SMB 多通道会自动检测和使用多个连接。 有关详细信息,请参阅通过 SMB 直通优化文件服务器的性能。 |
后续步骤
设置主机后,即可执行实时迁移。 有关说明,请参阅在不使用故障转移群集的情况下使用实时迁移来移动虚拟机。