如何恢复通过 VMM 部署并运行 Windows Server 2012 R2 的网关

本文介绍如何恢复运行 Windows Server 2012 R2 并通过 Virtual Machine Manager 部署的网关。

原始产品版本: System Center 2012 R2
原始 KB 数: 3012571

总结

本文包含有关运行 Windows Server 2012 R2 并通过 Virtual Machine Manager(VMM)部署的网关的信息。 VMM 服务器必须Microsoft System Center 2012 R2 运行。 有关这些网关的背景信息,请参阅Microsoft网站上的以下主题:

重要

必须先将 System Center 2012 R2 VMM 的更新汇总 4 应用到 VMM 管理服务器,然后才能执行本文中所述的步骤。

本文介绍了恢复运行 Windows Server 2012 R2 的网关的两种方法:

在支持网关的两个虚拟机发生故障后如何恢复网关

最初在 System Center 2012 R2 中使用 VMM 运行 Windows Server 2012 R2 的网关时,你可能使用 VMM 服务模板部署了网关,如Microsoft网站上的以下主题中所述:

如何在 System Center 2012 R2 的 VMM 中添加 Windows Server 网关

注意

此服务模板可帮助你在主机群集上创建一对虚拟机,并将虚拟机和群集一起帮助为在主机群集上运行的网关提供高可用性。

如果构成网关的两个虚拟机都失败,并且安装了 Microsoft System Center 2012 R2 VMM 的更新汇总 4 ,则可以再次部署服务模板来重新创建失败的网关。 重新创建网关时,虚拟机的名称可能不同于以前,并且可以将它们部署到其他主机群集。 其他设置(如网络站点中指定的子网)必须与最初部署网关时保持相同。 以下过程提供了详细信息。

如何在支持网关的两个虚拟机发生故障后恢复

  1. 在 VMM 中,删除支持失败网关的两个虚拟机的服务列表。 为此,请单击 VM 和服务工作区中的“开始”选项卡上的“显示”,然后单击“服务”。 找到在其中部署虚拟机的主机。 在详细信息窗格中,右键单击服务(而不是单个虚拟机),然后单击“ 删除”。 出现提示时,请确认删除。

  2. (可选)如果使用的是以前使用的同一虚拟机名称,并且预期现有 DNS 条目在重新部署时会导致问题,请安排删除这些 DNS 条目。

  3. 如果使用新的主机群集而不是恢复现有主机群集上的网关,请确保新主机配置为专用网络虚拟化网关。 为此,请按照下列步骤进行操作:

    1. 在 VMM 的 Fabric 工作区中,请确保在“开始”选项卡上的“显示”中选择了 Fabric 资源
    2. Fabric 窗格中,单击“服务器,展开包含新主机群集的主机组,然后单击主机群集。
    3. 在“主机” 窗格中,右键单击其中一个主机(而不是主机群集),然后单击“属性”
    4. 单击“主机访问”选项卡,然后单击以选择“此主机是专用网络虚拟化网关”,因此它不适用于放置需要网络虚拟化的虚拟机复选框。 然后单击“确定” 。
    5. 在其他主机上重复该过程。
  4. 与原始部署一样,为环境选择适当的服务模板(2-NIC 或 3-NIC)。 查看服务模板中的设置,确保这些设置是网关的此部署所需的设置。

    重要

    重新创建网关时,必须在为失败的网关指定的网络站点中指定相同的子网。 但是,虚拟机的名称可能不同,并且可以将它们部署到不同的主机群集。

  5. 与原始部署一样,使用服务模板部署将支持新网关的虚拟机。 请确保在预期主机上部署它们。

  6. 执行以下验证任务,确保服务部署成功:

    1. 确认网关上的后端虚拟网络适配器未连接。 (尚未连接。为此,请执行以下步骤:

      1. VMM 中的 VM 和服务工作区中,单击“开始”选项卡上的显示”组中的服务
      2. 展开 “所有主机”,然后单击主机群集所在主机组。
      3. “服务 ”窗格中,展开服务,直到可以看到网关虚拟机。
      4. 右键单击网关虚拟机,单击“属性,然后单击属性表中的“硬件配置”选项卡。
      5. 在“网络适配器”下,确认有三个网络适配器,其中一个已标记为“未连接”。 记录未连接的适配器的名称。
    2. 启动新服务,然后确认虚拟机进入 “正在运行” 状态。

    3. 在虚拟机仍在运行时,在 VMM 服务器上,以管理员身份打开命令提示符,然后键入 ping,后跟网关本身的名称或 IP 地址。 按 Enter,然后确认从网关收到响应。 如果未收到响应,请查看可能的原因,例如 DNS 设置、防火墙设置以及网关群集的状态。

  7. 选择其中一个新虚拟机作为 主要虚拟机。 运行以下 Windows PowerShell 命令,将所选虚拟机的名称替换为 VMNAME

    $vm = Get-SCVirtualMachine -Name "VMNAME"
    $vm.VirtualNetworkAdapters | ft Name,VMNetwork,VirtualNetwork
    
  8. 在生成的显示中,查找未连接的适配器。 对于该适配器, VMNetwork 将为 VirtualNetwork 空。 标识该适配器的数量,如下所示:

    适配器 Number
    列表中显示的第一个适配器: 0
    列表中显示的第二个适配器: 1
    列表中显示的第三个适配器: 2
  9. 向未连接的网络适配器授予在前面的过程中识别的 MAC 地址。 为此,请运行以下 Windows PowerShell 命令。 对于 MACADDRESS,请替换 MAC 地址,对于 NUMBER,请替换在上一步中标识的数字(0、1 或 2):

    $mac = Grant-SCMACAddress -MACAddress MACADDRESS -MACAddressPool
    (Get-SCMACAddressPool -Name "Default MAC address pool") -VirtualNetworkAdapter
    $vm.VirtualNetworkAdapters[NUMBER]
    
  10. 确保虚拟机已停止,然后将 MAC 地址应用于未连接的网络适配器。 为此,请运行以下 Windows PowerShell 命令。 对于 NUMBER,请替换在上一步中使用的相同数字(0、1 或 2):

    Stop-SCVirtualMachine -vm $vm
    Set-SCVirtualNetworkAdapter -VirtualNetworkAdapter
    $vm.VirtualNetworkAdapters[NUMBER] -EthernetAddress $mac.Address
    
  11. 删除旧的网关配置信息,使其不会干扰新网关。 为此,必须在网关发生故障之前知道群集中主机的名称。 (这可能与它当前所在的群集相同。为此,请执行以下步骤:

    1. 在 VMM 中的任何工作区中,单击“开始”选项卡上的“窗口”,然后单击“PowerShell”。

    2. 运行以下命令。 对于 GATEWAY-NAME,请替换网关名称。 对于 HOST1HOST2,请在网关发生故障时替换主机群集中物理主机的计算机名称。 即使使用网关失败之前使用的群集也是如此,也运行这些命令。

      $svcName = "GATEWAY-NAME"
      $hostCredential = Get-Credential
      $gwHosts = @("HOST1", "HOST2")
      CleanupGatewaysBeforeMigration $svcName $gwHosts $hostCredential
      
  12. 通过运行以下命令重启虚拟机:

    Start-SCVirtualMachine -vm $vm
    
  13. 按如下所示更新网关的连接字符串。 即使对虚拟机使用相同的主机群集和相同的计算机名称,也执行此操作。

    1. 运行以下命令查找现有连接字符串:

      $ns = Get-SCNetworkService -Name $svcName
      $ns.ConnectionString
      

      例如,连接字符串可能如下所示:

      VMHost=GW-HV-CL01.contoso.com;GatewayVM=GW-VM-CL01.contoso.com;BackendSwitch=DatacenterSwitch

    2. 通过将旧字符串粘贴到记事本等文本编辑器中,然后按如下所示更新连接字符串的更新版本。 (确保按原样保留分号。

      • 如果主机群集的群集名称与之前的群集名称不同,请更改设置 VMHost=
      • 如果主虚拟机的计算机名称与之前的计算机名称不同,请将GatewayVM=设置更改为新名称。
    3. 运行以下命令更新连接字符串。 运行命令时,请将正确的连接字符串替换为 CONNECTIONSTRING。 请确保包括;在引号内的字符串末尾和-Force最后一个引号之后的末尾 Migrate=true

      Set-SCNetworkService -NetworkService $ns -ConnectionString "CONNECTIONSTRING;Migrate=true" -Force
      
    4. Set-SCNetworkService如果命令报告任何错误,请修复这些错误,然后再次运行该命令。

  14. 从使用网关的租户虚拟机中测试网关。 例如,使用网络命令,例如 ping

如何在支持网关的一个虚拟机发生故障后恢复网关

如果支持网关的某个虚拟机正常运行,但另一个虚拟机无法正常运行,则可以使用 VMM 服务中内置的功能横向 扩展 网关,以便再次提供冗余。 为此,请按照下列步骤进行操作:

  1. 在 VMM 环境中,请确保已安装 System Center 2012 R2 VMM 的更新汇总 4

    注意

    必须先安装 更新汇总 4 ,然后才能执行这些步骤中所述的恢复过程。

  2. 在 VMM 中,删除不再正常运行的虚拟机。 为此,请按照下列步骤进行操作:

    1. VM 和服务 工作区中,选择在其中部署运行网关的服务的主机组。
    2. “开始”选项卡上的“显示”组中,单击“服务”。
    3. 在“ 服务 ”窗格中,展开该服务。
    4. 右键单击失败的虚拟机,然后单击“ 删除”。
    5. 出现提示时,请确认删除。
  3. 在故障转移群集管理器中,从支持网关的来宾群集中逐出失败的节点。 为此,请按照下列步骤进行操作:

    1. 打开故障转移群集管理器,在控制台树中展开群集,展开 节点,然后查看每个节点的状态。 一个节点将为“向上”,一个节点将关闭
    2. 右键单击状态为“向下”的节点,单击“更多操作”,然后单击“逐出”。
  4. “服务 ”窗格中,右键单击网关服务本身(而不是虚拟机),然后单击“ 横向扩展”。

  5. “横向扩展层”向导的“选择层 ”页上,单击“ 下一步”。

  6. “标识 ”页上,输入新虚拟机的名称,然后单击“ 下一步”。

  7. “选择主机 ”页上,确保选择保存失败虚拟机的主机,然后单击“ 下一步”。

  8. 如果出现“配置设置”页,请在“操作系统设置”输入新虚拟机的计算机名称。 请确保环境中的计算机尚未使用此计算机名称。

  9. 单击 “下一步”

  10. “添加属性 ”页上,单击“ 下一步”。

  11. “摘要 ”页上,查看设置,然后单击“ 横向扩展”。

    注意

    可以在“作业”窗口中跟踪横向扩展操作的进度。 该操作可能需要 15 分钟或更长时间。 在监视作业的同时,你可以在 VMM 控制台中执行其他任务。

  12. 成功完成“创建虚拟机”作业后,验证是否已添加新虚拟机,并在 VM 和服务工作区中启动该虚拟机。 新节点可能在大约五分钟内开始运行。

  13. 若要验证网关是否正常运行,请连接到新虚拟机,然后在 Windows PowerShell 提示符下运行 Get-NetCompartment 。 如果列出了多个隔离舱,则新虚拟机正常运行,有助于为网关提供高可用性。