本篇我们来讨论一下NIC Teaming和NIC Bonding。他们都是将几个物理网卡接口绑定到一个虚拟的NIC中,
在外部只显示一个可见的MAC地址。他们的最终目标是相同的:提供更高的性能和更好的冗余。本篇我们就
分别来介绍一下Windows Teaming和Linux Bonding,并进行一些对比,这两种方法具有负载平衡和容错
的能力。
NIC Teaming on Windows OS
NIC Teaming,也叫NIC协作,在Microsoft Windows环境中被称为负载平衡/故障转移(LBFO:Load
Balancing/Failover),它是一种允许将同一物理主机/服务器中的多个物理网卡绑定在一起的机制,并以
单个逻辑NIC的形式放到一个“Team”中。连接到Windows操作系统的网络适配器,显示为一个或多个虚拟适
配器(也称为team nic、“tNICs”或team interface),它们共享相同的IP地址。
市面上有各种各样的网络适配器,较常见的主流网卡有英特尔网卡,或者Broadcom的卡网等。我们以Intel
网卡为例,其NIC Team可分为以下几种模式:
● Adapter Fault Tolerance (AFT)
适配器容错(AFT)为服务器的网络连接提供自动冗余。如果主适配器发生故障,备份适配器将接管。要求和
限制:适用于任何交换机,所有Team成员必须连接到相同的子网。每个Team支持2-8个网络适配器。
● Switch Fault Tolerance (SFT)
当每个网卡连接到单独的交换机时,交换机容错(SFT)提供两个网卡之间的故障转移。要求和限制:所有
Team成员必须连接到相同的子网。在创建SFT Team时需要启用生成树协议(STP)。每个Team支持2个网络
适配器。
● Adaptive Load Balancing (ALB)
自适应负载平衡(ALB)提供负载平衡和适配器容错。可以在ALB Team中启用和禁用接收负载平衡(RLB),这
是默认启用的。要求和限制:适用于任何交换机。
● Virtual Machine Load Balancing (VMLB)
虚拟机负载平衡(VMLB)提供跨绑定到Team接口的VM(虚拟机)的传输和接收流量负载平衡,以及在交换机端
口、线缆或网卡故障时的容错功能。要求和限制:适用于任何交换机。
● Fast EtherChannel/Link Aggregation (FEC)
快速以太通道/链路聚合(FEC)提供负载平衡适配器容错(仅对路由协议),并有助于提高传输和接收吞吐量。
要求和限制:需要具有FEC功能的链路聚合的交换机。每个Team支持2-8个网络适配器。
● Gigabit EtherChannel/Link Aggregation (GEC)
以太网通道/链路聚合(GEC)是FEC/链路聚合/802.3ad的千兆位扩展。要求和限制:所有Team成员必须以千
兆位的速度工作。
● Static Link Aggregation (SLA)
静态链路聚合(SLA)已经取代了前两个版本的FEC和GEC。要求和限制:静态模式下的网络适配器应以相同的
速度运行,并连接到具有静态链接聚合功能的交换机。如果网卡的速度变化,Team的速度将取决于最小公
分母。每个Team支持2-8个网络适配器。
● Dynamic Link Aggregation (IEEE 802.3ad)
动态链路聚合(IEEE 802.3ad)通过使用混合速度网络适配器的动态链路聚合来创建一个或多个Team,该
动态链路聚合提供了容错性,有助于提高传输和接收吞吐量。要求和限制:要求交换机完全支持IEEE
802.3ad标准。
● Multi-vendor Teaming (MVT)
多供应商协作(MVT)使得来自不同供应商的网络适配器可以在同一个Team中工作。
NIC Bonding on Linux OS
在Linux操作系统中,NIC绑定是指将多个网络接口聚合到一个逻辑“绑定”接口的过程。也就是说,两个或
多个网卡被组合和连接,充当一个网卡。注意,配置绑定的先决条件之一是拥有支持EtherChannel的网络
交换机(对于几乎所有交换机都是如此)。Bonded NIC的工作方式取决于所采用的Bonding模式的类型。一
般来说,模式可以提供容错/负载平衡服务。下表介绍了这七种模式的详细说明。
注意:
1、一个绑定接口只能指定一种模式。
2、mode=0、mode=2和mode=3理论上需要静态聚合。
3、模式=4需要支持802.3ad。
4、模式=1、模式=5和模式=6不需要对交换机进行任何配置。
5、模式的选择取决于网络拓扑结构、对连接行为的要求以及slave设备的特性。
6、通常,以下模式用于单交换机拓扑:mode=0 (balance-rr); mode=2 (balance-xor); mode=4
(802.3ad); mode=5 (balance-tlb); mode=6 (balance-alb)
7、另外两种模式mode=1 (active-backup) & mode=3 (broadcast) 适用于多交换机拓扑。
常见问题
1、Team或Bonding是否会改善服务器与交换机连接的带宽?
我们通常认为“链路聚合”会增加带宽。例如,三个网卡以1Gbps的速度运行,NIC Teaming列出的速度是
3Gbps,这表明速度增加了两倍?不!人们普遍认为1Gbps和10Gbps以太网是常用的。但目前还没有明确的
3Gbps标准。那么我们如何实现3Gbps链路呢?事实上,我们并没有真正的3Gbps连接。相反,我们有三个
单独的1Gbps链接。更重要的是,最好从网络链路弹性而不是总可用吞吐量的角度考虑链路聚合。例如,
当通过2Gbps聚合链路将文件从一台PC传送到另一台PC时,总最大传输速率只能达到1Gbps。但是,当传输
两个文件时,聚合带宽的好处将显示出来。也就是说,链路聚合增加了“车道”的数量,而不是速度限制。
2、NIC Teaming/NIC Bonding到底会给用户带来什么?
简而言之,答案就是负载平衡和容错。
负载均衡:出站流量根据可用物理NIC之间的目标地址自动负载均衡。传入流量由交换机将流量路由到服务器
来控制,而主机/服务器不具备控制物理NIC流量的能力。
容错:如果其中一个底层物理NIC已断开或其电缆已拔出,主机/服务器将检测到故障情况,并自动将流量转移
到bond中的另一个NIC,从而消除了由于单点故障而导致整个网络连接中断的情况。