负载平衡和故障转移 (LBFO) 概述

该功能已经成为独立硬件供应商 (IHV) 进入服务器网络适配器市场的一项要求,但是直到现在,网络适配器成组尚未包含在 Windows Server 操作系统中。

要求

网络适配器成组要求提供一个以太网网络适配器,该适配器可以用于分离使用 VLAN 的通信。通过故障转移提供故障保护的所有模式都至少需要两个以太网网络适配器。Windows Server 2012 在一个组中可支持多达 32 个网络适配器。

技术概述

网络适配器成组技术包括网络适配器成组技术的很多部件和选项。本指南包括以下部分:

  • 网络适配器成组体系结构
  • 带宽聚合(也称为负载平衡)机制
  • 通信分发算法
  • 虚拟机中的网络适配器成组
  • 不兼容性
  • 要求

网络适配器成组体系结构

目前,市场上的所有网络适配器成组解决方案都具有相似的体系结构,如图 1 所示。

标准 NIC 团队合作解决方案体系结构

图 1 成组解决方案体系结构

两个或多个物理网络适配器连接到网络适配器成组解决方案多路复用器,然后该多路复用器向操作系统呈现一个或多个虚拟适配器(也称为成组网络适配器)。有多个不同的算法可在物理网络适配器之间分发入站和出站通信。在当前的非 Microsoft 网络适配器成组解决方案中,成组网络适配器按虚拟 LAN (VLAN) 划分通信,以便应用程序可以同时连接到不同的 VLAN。从技术上讲,这种通信划分不属于网络适配器成组。但是,由于网络适配器成组的其他商业实现具有此功能,因此 Windows Server 2012 实现也包含此功能。

网络适配器成组配置

下面是两组基本的用于网络适配器成组的算法:

  • 需要交换机才能参与成组的算法,也称为依赖于交换机的模式。通常,这些算法需要组中的所有网络适配器都连接到相同的交换机。
  • 不需要交换机即可参与成组的算法,也称为独立于交换机的模式。由于交换机不知道网络适配器属于某个组,因此成组网络适配器可以连接到不同的交换机。独立于交换机的模式不需要组成员连接到不同的交换机,只是可以这样做。

对于依赖于交换机模式的网络适配器成组,有两个常用的选项:

  • 常规成组或静态成组(IEEE 802.3ad 草案 v1)。这种模式需要交换机和计算机上的配置来识别形成组的链路。由于这是静态配置的解决方案,因此没有其他协议可以帮助交换机和计算机来识别未正确插入的电缆或可能造成该组失败的其他错误。服务器级交换机通常支持这种模式。
  • 动态成组 (IEEE 802.1ax, LACP)。IEEE 802.1ax 使用链路聚合控制协议 (LACP) 来动态识别计算机和特定交换机之间的链路。这样在理论上便能够只是通过从对等网络适配器传输和接收 LACP 来自动创建组、扩展和减少组。通常,服务器级交换机支持 IEEE 802.1ax,但大多数交换机需要手动管理才能在端口上启用 LACP。

    note备注

    IEEE 802.1ax 通常也称为 IEEE 802.3ad,因为它在发布为 IEEE 802.1ax 之前是由 IEEE 802.3ad 委员会制订的。

这两种模式都会导致入站和出站通信接近聚合带宽的实际限制,原因是组中的链路池相当于一个管道。

通信分发算法

可以采用很多方法在可用的链路之间分发出站通信。尽量在单一网络适配器上保留与单一流(TCP 流)关联的所有数据包。之所以需要这样做,是为了最大程度地减少发生故障的数据包到达的情况。

Windows Server 2012 中的网络适配器成组支持以下通信分发方法:

  • Hyper-V 交换机端口。当虚拟机具有独立的媒体访问控制 (MAC) 地址时,虚拟机的 MAC 地址可以为划分通信提供基础。在虚拟化中使用这种方案具有优势。因为相邻的交换机可以确定特定源 MAC 地址位于唯一一个连接的网络适配器上,交换机将根据虚拟机的目标 MAC 地址在多个链路上平衡外出负载(从交换机到计算机的通信)。当与虚拟机队列一起使用时该方案非常有用。但是,这种模式可能不够具体,无法获得非常平衡的分发,并且它将一个虚拟机限制在一个网络适配器上可用的带宽。

    note备注

    Windows Server 2012 使用 Hyper-V 交换机端口作为标识符,而不是源 MAC 地址,因为在某些情况下,一个虚拟机可能使用交换机端口上的多个 MAC 地址。

  • 哈希。该算法根据数据包的组件创建哈希,然后将具有该哈希值的数据包分配给可用的网络适配器之一。这样便在相同的网络适配器上保留来自相同 TCP 流的所有数据包。通常,哈希只是在可用的网络适配器之间创建平衡。市场上提供的某些网络适配器成组解决方案监视通信的分发,并且它们将特定的哈希值重新分配给不同的网络适配器,以尝试更好地平衡通信。动态重新分发称为智能负载平衡自适应负载平衡

可以用作哈希函数输入的组件包括:

  • 源和目标 MAC 地址
  • 源和目标 IP 地址,考虑或不考虑 MAC 地址(2 元组哈希)
  • 源和目标 TCP 端口,通常与 IP 地址一起使用(4 元组哈希)

四倍哈希创建通信流的更精细地分发,从而使可以在网络适配器之间独立移动的流更小。但是,它不可以用于非 TCP 的通信或 UDP 通信或从堆栈中隐藏 TCP 和 UDP 端口的通信,如受 Internet 协议安全 (IPsec) 保护的通信。在这些情况下,哈希回退到 2 元组哈希。如果该通信不是 IP 通信,哈希生成器将会使用源和目标 MAC 地址。

虚拟机中的网络适配器成组

Windows Server 2012 中的网络适配器成组也适合于虚拟机。它允许虚拟机具有连接到多个 Hyper-V 交换机的虚拟网络适配器并且即使该交换机下的网络适配器断开连接,也仍然能够连接。当使用诸如单根 I/O 虚拟化 (SR-IOV) 之类的功能时它非常有用,因为 SR-IOV 通信不通过 Hyper-V 交换机。因此,它无法受到 Hyper-V 交换机下的组的保护。通过此虚拟机成组选项,管理员可以设置两个 Hyper-V 交换机,每个交换机都连接到其自己的支持 SR-IOV 的网络适配器。此时:

  • 每个虚拟机可以从一个或两个 SR-IOV 网络适配器安装虚拟功能。然后,当网络适配器断开连接时,虚拟机可以从主虚拟功能故障转移到备份虚拟功能。
  • 或者,虚拟机也可能拥有从一个网络适配器和一个非虚拟功能网络适配器到其他交换机的虚拟功能。如果与虚拟功能关联的网络适配器断开连接,则通信可以故障转移到其他交换机,而不会失去连接。

note备注

由于在虚拟机中网络适配器之间的故障转移可能会导致通信与其他网络适配器的 MAC 地址一起发送,因此与使用网络适配器成组的虚拟机关联的每个 Hyper-V 交换机端口都必须设置为允许 MAC 欺骗或必须使用 Set-VmNetworkAdapter PowerShell cmdlet 设置“AllowTeaming=On”参数。

不兼容性

网络适配器成组与 Windows Server 2012 中的所有网络功能兼容,但有三个例外:SR-IOV、远程直接内存访问 (RDMA) 和 TCP 烟囱。对于 SR-IOV 和远程直接内存访问 (RDMA),将数据直接发送给网络适配器,而不经过网络堆栈。因此,网络适配器成组无法查找数据或将数据重定向到组中的另一个路径。Windows Server 2012 中的网络适配器成组不支持 TCP 烟囱。

要求

网络适配器成组要求提供一个以太网网络适配器,该适配器可以用于分离使用 VLAN 的通信。通过故障转移提供故障保护的所有模式都至少需要两个以太网网络适配器。Windows Server 2012 实现在一个组中可支持多达 32 个 NIC。

正在配置网络适配器成组

你可以在 Windows Server 2012 中通过网络适配器成组管理接口或丰富的 PowerShell 接口配置网络适配器成组。网络适配器成组管理 UI 是一个使用 PowerShell cmdlet 对组进行管理的简单接口。 请参见下面,了解网络适配器成组 PowerShell cmdlet 的完整指南。有多个方法可以调用网络适配器成组管理接口。

从“服务器管理器”中:

  1. 打开“服务器管理器”。

  2. 在控制台树中,单击“本地服务器”

  3. 在详细信息窗格中,在“属性”部分中单击“远程桌面”下的“NIC 组管理”

从桌面中:

  1. 单击「开始」,键入 lbfoadmin,然后按 Enter 键。或者,依次单击「开始」“运行”,键入 lbfoadmin,然后按 Enter 键。

若要一次管理多个服务器,你可以通过“添加服务器”任务项添加服务器,也可以使用以下命令:

lbfoadmin /servers servername1 servername2 …

这将使用指定服务器名的列表运行网络适配器成组管理接口。

若要在服务器上配置网络适配器成组

  1. 单击服务器列表中的服务器名(即使只有一台服务器)。

  2. “任务”下拉菜单中,在“组”部分,单击“新建组”

  3. “添加组”对话框中,键入组名并在该组中选择网络适配器。

  4. 如果你在使用 VLAN,清除“默认”复选框,并指定 VLAN ID。默认情况下,该组将会提交接收的所有通信,而不是 VLAN ID(虽然 VLAN ID 通过数据包传送,以便堆栈中的其他组件可以将其适当地排序。)

  5. 如果你希望使用除默认以外的模式,单击“高级”,并根据需要指定成组模式(独立于交换机、静态成组或 LACP)和负载分布模式(地址哈希)。

  6. 单击“确定”以创建组。

    note备注

    负载分布模式的“地址哈希”选项就是前面描述的 4 元组哈希。网络适配器成组的 PowerShell cmdlet 允许你配置其他地址哈希模式。

    若要修改网络适配器组的设置,单击组列表中的组名,然后在任务列表中单击“修改组”

网络适配器成组 PowerShell 命令

Windows Server 2012 网络适配器成组包含在以下对象类型上操作的 PowerShell cmdlet:

 

你可能感兴趣的:(windows,网络,适配器,供应商,以太网)