设置 Hyper-V 副本

Hyper-V 副本是 Hyper-V 角色不可或缺的组成部分。 它通过将虚拟机(VM)从一台 Hyper-V 主机服务器复制到另一台来保持工作负荷可用,从而有助于灾难恢复策略。 Hyper-V Replica 创建实时 VM 到离线复制 VM 的副本。 注意以下事项:

  • Hyper-V 主机:主要主机服务器和辅助主机服务器可以在物理上处于同一位置,也可以在不同的地理位置上通过 WAN 链接进行复制。 Hyper-V 主机可以是独立主机、群集主机,也可以是两者兼而有之。 服务器之间没有 Active Directory 依赖项,它们不需要是域成员。

  • 复制和更改跟踪:为特定 VM 启用 Hyper-V 副本时,初始复制会在辅助主机服务器上创建相同的副本 VM。 发生这种情况后,Hyper-V 副本更改跟踪会创建并维护一个日志文件,用于记录在虚拟机 VHD 上的更改。 该日志文件根据复制频率设置,以相反的顺序播放到副本 VHD。 这意味着最新的更改是异步存储和复制的。 复制可以通过 HTTP 或 HTTPS 进行。

  • 扩展(链式)复制:这允许将 VM 从主主机复制到辅助主机,然后将辅助主机复制到第三台主机。 无法直接从主主机复制到第二个和第三个主机。

    此功能使 Hyper-V 副本可以更加可靠地用于灾难恢复,因为在发生故障的情况下,可以从主副本和扩展副本进行恢复。 如果主位置和辅助位置出现故障,可以故障转移到扩展副本。 扩展复制不支持应用程序一致性复制,并且必须使用与辅助复制相同的 VHD。

  • 故障转移:如果您的主要位置(或扩展的辅助位置)发生中断,则可以手动启动测试、计划或计划外的故障转移。

    问题 测试 已计划 计划外
    应该在何时运行? 验证 VM 是否可以故障转移并在辅助站点中启动

    对测试和训练很有用

    在计划内停机和中断期间 在发生意外事件期间
    是否创建了重复的 VM?
    在哪里启动? 在复制 VM 上 在主计算机上启动,在辅助计算机上完成 在复制 VM 上
    应该多久运行一次? 建议每月测试一次 每六个月一次或根据合规性要求运行 仅当发生灾难主服务器 VM 不可用时
    主 VM 是否继续复制? 是。 故障解决后,反向复制会将更改复制回主站点,以便同步主站点和辅助站点。
    是否有数据丢失? 无。 故障转移后,Hyper-V 副本将最后一组跟踪的更改复制回主副本,以确保零数据丢失。 取决于事件和恢复点
    有无任何故障时间? 无。 它不会影响生产环境。 它在故障转移期间创建重复的测试 VM。 故障转移完成后,您在复制 VM 上选择故障转移,它将被自动清理和删除。 计划内故障的持续时间 计划外故障的持续时间
  • 恢复点:为 VM 配置复制设置时,请指定要从中存储的恢复点。 恢复点代表可从中恢复 VM 的时间快照。 如果从最近的恢复点恢复,则丢失的数据更少。 您可以访问最早 24 小时前的恢复点。

部署先决条件

下面是在开始之前应验证的内容:

  • 确定需要复制哪些 VHD。 特别是,包含在故障转移后快速更改且副本服务器不再使用的数据的 VHD(如页面文件磁盘)应从复制中排除,以节省网络带宽。 记下可以排除的 VHD。

  • 确定同步数据的频率:副本服务器上的数据将根据你配置的复制频率(30 秒、5 分钟或 15 分钟)进行同步更新。 选择的频率应考虑以下事项:VM 是否在运行具有低 RPO 的关键数据? 你的带宽注意事项是什么? 高度关键的 VM 显然需要更频繁的复制。

  • 决定如何恢复数据:默认情况下,Hyper-V 副本仅存储单个恢复点,该恢复点将是从主副本发送到辅助副本的最新复制。 但是,如果你想要选择将数据恢复到一个较早的时间点,可以指定存储额外的恢复点(最多 24 小时的恢复点)。 如果确实需要其他恢复点,则应注意,这需要更多的处理和存储资源的开销。

  • 确定要复制的工作负载:标准 Hyper-V Replica 复制在故障转移后保持 VM 操作系统状态的一致性,但不保持 VM 上运行的应用程序状态的一致性。 如果你希望能够恢复工作负载状态,可以创建应用一致的恢复点。 如果您使用扩展(链式)复制,则应用程序一致性恢复在扩展复制站点上不可用。

  • 决定如何进行 VM 数据的初始复制:复制从传输 VM 当前状态的需求开始。 这种初始状态可以通过现有网络直接传输,立即或你进行配置的稍晚时间均可。 还可以使用预先存在的已还原 VM(例如,如果已在副本服务器上还原了 VM 的早期备份),作为初始副本。 或者,你可以将初始副本复制到外部媒体,然后以物理方式向副本站点传递媒体,这样能够节省网络带宽。 如果想要使用已有的 VM,请删除与其相关联的所有以前的快照。

部署步骤

步骤 1:设置 Hyper-V 主机

您需要至少两个 Hyper-V 主机,并且每个服务器上都有一个或多个虚拟机 (VM)。 开始使用并在 Windows Server 上安装 Hyper-V 角色。 您要将 VM 复制到的主机服务器需要设置为复制服务器。

  1. 在您将复制虚拟机到的服务器的 Hyper-V 设置中,在 复制配置中,选择 启用此计算机为副本服务器

  2. 可以通过 HTTP 或加密的 HTTPS 进行复制。 选择使用 Kerberos (HTTP)使用基于证书的身份验证(HTTPS)。 默认情况下,HTTP 80 和 HTTPS 443 作为副本 Hyper-V 服务器上的防火墙例外启用。 如果更改默认端口设置,则还需要更改防火墙例外。 如果要通过 HTTPS 进行复制,需要选择一个证书,并且应该已经设置了证书身份验证。

  3. 对于授权,请选择 允许从任何经过身份验证的服务器 复制,以允许副本服务器接受来自任何成功进行身份验证的主服务器的 VM 复制流量。 选择允许从指定服务器复制,仅接受来自你专门选择的主服务器的流量。

    对于这两个选项,可以指定复制的 VHD 应存储在副本 Hyper-V 服务器上的位置。

  4. 单击“确定”或“应用”。

步骤 2:设置防火墙

为了允许在主服务器和辅助服务器之间进行复制,流量必须通过 Windows 防火墙(或任何其他第三方防火墙)。 在服务器上安装 Hyper-V 角色时,默认情况下会创建 HTTP (80) 和 HTTPS (443) 例外。 如果你使用的是这些标准端口,只需要启用规则:

  • 在独立主机服务器上启用规则:

    1. 打开“高级安全 Windows 防火墙”,然后单击“入站规则”

    2. 若要启用 HTTP (Kerberos) 身份验证,请右键单击 Hyper-V 副本 HTTP 侦听器(TCP 输入)>启用规则。 若要启用 HTTPS 基于证书的身份验证,请右键单击Hyper-V 副本 HTTPS 侦听器(TCP 输入)>启用规则

  • 若要在 Hyper-V 群集上启用规则,请使用以管理员身份运行打开 Windows PowerShell 会话,然后运行以下命令之一:

    • 对于 HTTP:

      get-clusternode | ForEach-Object {Invoke-command -computername $_.name -scriptblock {Enable-Netfirewallrule -displayname "Hyper-V Replica HTTP Listener (TCP-In)"}}

    • 对于 HTTPS:

      get-clusternode | ForEach-Object {Invoke-command -computername $_.name -scriptblock {Enable-Netfirewallrule -displayname "Hyper-V Replica HTTPS Listener (TCP-In)"}}

启用 VM 复制

在要复制的每个 VM 上执行以下操作:

  1. 在 Hyper-V 管理器的详细信息 窗格中,单击选择一个 VM。 右键单击所选 VM,然后单击 “启用复制” 打开“启用复制”向导。

  2. 在“开始之前”页上单击“下一步”

  3. 指定副本服务器页面的“副本服务器”框中,输入副本服务器的 NetBIOS 或 FQIDN。 如果副本服务器是故障转移群集的一部分,请输入 Hyper-V 副本代理的名称。 单击下一步

  4. 指定连接参数页上,Hyper-V 副本会自动检索你已为副本服务器配置的身份验证和端口设置。 如果没有检索值,请检查服务器是否已配置为副本服务器,以及是否已在 DNS 中注册。 如有必要,请手动键入设置。

  5. 选择复制 VHD 页上,确保选择要复制的 VHD,并清除要从复制中排除的任何 VHD 的复选框。 然后单击下一步

  6. 配置复制频率页上,指定将更改从主副本同步到辅助副本的频率。 然后单击下一步

  7. 配置其他恢复点页上,选择是要仅维护最新的恢复点还是创建其他恢复点。 如果要一致地恢复具有其自己的 VSS 编写器的应用程序和工作负载,建议选择卷影复制服务(VSS)频率,并指定创建应用一致的快照的频率。 请注意,Hyper-V VMM 请求程序服务必须同时在主 Hyper-V 服务器和辅助 Hyper-V 服务器上运行。 然后单击下一步

  8. 选择初始复制页上,选择要使用的初始复制方法。 通过网络发送初始副本的默认设置将复制通过网络连接选择的主 VM 配置文件(VMCX)和虚拟硬盘文件(VHDX 和 VHD)。 如果要使用此选项,请验证网络带宽的可用性。 如果主 VM 已在辅助站点上配置为副本 VM,选择 使用复制服务器上的现有虚拟机作为初始副本是很有帮助的。 可以使用 Hyper-V 导出主 VM,并将其导入为辅助服务器上的副本 VM。 对于较大的 VM 或有限的带宽,可以选择在以后通过网络进行初始复制,然后配置非高峰时段,或将初始复制信息作为脱机媒体发送。

    如果进行脱机复制,将使用外部存储介质(例如硬盘或 USB 驱动器)将初始副本传输到辅助服务器。 为此,你需要将外部存储连接到主服务器(或群集中的所有者节点),然后,当您选择“使用外部介质发送初始副本”时,你可以指定本地或外部介质上可以存储初始副本的位置。 在复制站点上创建占位虚拟机。 初始复制完成后,外部存储可以被运送到副本站点。 在那里,你会将外部介质连接到辅助服务器或辅助群集的所有者节点。 然后将初始副本导入指定位置,并将其合并到占位符 VM 中。

  9. 正在完成启用复制页上,查看“摘要”中的信息,然后单击完成。 根据您所选的设置传输 VM 数据。 将显示一个对话框,指示已成功启用复制。

  10. 如果要配置扩展(链式)复制,请打开复制服务器,然后右键单击要复制的虚拟机。 单击复制>扩展复制并指定复制设置。

默认情况下,Hyper-V 副本指向用于 VM 复制的单个默认卷。 如果要对 VM 复制使用不同的 CSV,请参阅 为 VM 复制配置多个 CSV

运行故障转移

完成这些部署步骤后,复制的环境将启动并运行。 现在可以根据需要运行故障转移了。

测试故障转移:如果要运行测试故障转移,请右键单击复制 VM 并选择复制>测试故障转移。 选择最新的恢复点或其他恢复点(如果已配置)。 在辅助站点上创建新的测试 VM 并启动。 测试完成后,选择复制 VM 上的停止测试故障转移以清理它。 对于 VM,您一次只能运行一次测试故障转移。 有关详细信息,请参阅 Hyper-V 副本中的测试故障转移

计划的故障转移:要运行计划的故障转移,请右键单击主 VM 并选择复制>计划的故障转移。 计划内故障转移执行先决条件检查,以确保零数据丢失。 它会在开始故障转移之前检查主 VM 是否已关闭。 VM 故障转移后,当主站点可用时,它会开始将更改复制回主站点。 为此,应将主服务器配置为从辅助服务器接收复制,或者在主群集情况下从 Hyper-V 副本代理接收复制。 计划内故障转移会发送最后一组跟踪的更改。 有关详细信息,请参阅 Hyper-V 副本中的计划内故障转移

计划外故障转移:若要运行计划外故障转移,请右键单击副本 VM,并从 Hyper-V 管理器或故障转移群集管理器中选择 复制>计划外故障转移。 如果启用此选项,可以从最新的恢复点或以前的恢复点进行恢复。 故障转移后,检查故障转移 VM 上的一切是否按预期工作,然后单击复制 VM 上的完成了解详细信息