服务器多网卡接入简介
服务器NIC Teaming(多网卡接入)
服务器NIC Teaming,也称单机链路的负载均衡,一般指的是单台服务器利用多个网卡进行绑定而实现的负载均衡。
不同网卡芯片的产商除了网卡自身的驱动外,还会提供管理软件来使能多网卡的负载均衡。同时,在不同的操作系统下,如Linux,本身自带了网卡负载均衡的驱动。
简单来讲,Teaming就是把同一台服务器上的多个物理网卡通过软件绑定成一个虚拟的网卡,也就是说,对于外部网络而言,这台服务器只有一个可见的网卡。对于任何应用程序,以及本服务器所在的网络,这台服务器只有一个网络链接或者说只有一个可以访问的 IP地址(备注:MAC地址不一定相同,原因详见后面的技术原理描述)。之所以要利用Teaming技术,除了利用多网卡同时工作来提高网络速度以外,还有可以通过Teaming实现不同网卡之间的负载均衡(Load balancing)和网卡冗余(Fault tolerance)。
单服务器多网卡采用NIC Teaming技术可以将2张或最多可达8张网卡捆绑在一起使用。
服务器Teaming-Linux
Round-robin:
所有链路处于负载均衡状态,轮询方式往每条链路发送报文,基于per packet方式发送。默认情况下使用eth0(第一张网卡)的mac为绑定接口的mac,所有绑定下的接口都用这个mac。这种模式既增加了带宽,同时支持容错能力;但是会导致网络报文传输出现乱序,需要交换机端创建AP来支持。
Active-backup:
只有一张网卡处于Active状态,负责发送和接收报文,其他都处于standby状态,不发送和接收任何报文。所有网卡共享相同的MAC和IP。这种模式支持容错能力,没有实际增加带宽。
Load Balancing (XOR):
采用取报文字段进行hash计算的方式来增加带宽,同时保证到达特定对端的会话流量总是从同一个接口上发出,保证该会话的报文顺序不乱,需要交换机端创建AP来支持。
Fault-tolerance (broadcast):
该模式下完全相同的报文会往所有接口都拷贝一份发出去。比如:ping一个报文到服务器,服务器会同时发两个接口都发完全相同ICMP回应报文。
该模式不是真正意义上的链路聚合,只是简单的将报文广播的所有的接口,目的是将报文广播到不同广播域来保证高可靠性。该模式的应用需求比较特殊,不同网卡连接的不同交换机间没有连接,且属于不同网段,而此时又需要单条流能同时到达两个不同的网段,就需要通过该模式来配置服务器。
LACP:
这种模式就是交换机的动态AP:IEEE 802.3ad Dynamic link aggregation。将相同速率、双工的端口动态(允许自动)聚合在一起。同时可以通过调整参数来指定hash算法。需要交换机端启用LACP来支持。
Transmit Load Balancing:
TLB模式通过对端均衡出口流量。由于是根据MAC地址进行均衡,在三层网络配置下,该模式会通过单个设备来发送所有流量,然而在二层网络配置下,该模式以相对智能的方式(不是Load Balancing(XOR)或802.3ad模式里提及的XOR方式)来均衡多个本地网络对端,因此那些特殊的MAC地址(比如XOR得到同样值)不会均衡到同一个接口上。该模式也不像802.3ad,该模式的接口可以有不同的速率,而且不需要特别的交换机配置。不利的一面在于,该模式下所有入口流量会到达同一个接口。
该绑定模式下,绑定接口的MAC和优先级最高的网卡MAC一样(默认是第一个绑定接口),其他网卡MAC保留自己原来的MAC(这个和之前5种模式不同,前面所有网卡的MAC和绑定接口的一样。)
Adaptive load balancing:
该模式包含了TLB模式,同样会发snap报文来检测链路。同时加上针对IPv4流量的接收负载均衡(Receive Load Balance, RLB),而且不需要任何交换机的支持。
服务器NIC Teaming对网络要求
需交换机支持静态AP,需交换机支持802.3ad LACP。
某些场景下需要支持跨设备的AP,即需要交换机支持VSU或IRF、VSS等(主要是为了简化管理的目的)。
需要注意AP的流量均衡算法,根据不同的网络流量需要进行调整,调整包括交换机端和服务器端的负载均衡算法,保证服务器端出来的报文能够均衡到多个入口上,也要保证从交换机端输出的报文能够均衡到多个出口。
服务器多网卡接入部署
U型组网:不建议使用
方案优点:
不启用STP,好管理;网络络接入层不存在二层环路,接入层交换机可以不启用生成树协议,因此网络的配置管理简单。
双active链路,接入交换机密度高。
方案缺点:
从接入交换机到汇聚交换机缺少二层冗余路径,方案不具备高可用性。
VLAN不能跨汇聚层,服务器部署不灵活;服务器的接入VLAN不能跨汇聚层,服务器不能实现跨交换机的二层互联,网络的二层扩展能力有限。
接入交换机间链路故障,VRRP心跳报文无法传递,整机做VRRP主备切换,故障收敛时间长;服务器网关指向汇聚交换上VRRP的VIP地址,但VRRP心跳报文的传输路径必须经过两台接入交换机,当两台接入层交换机之间的链路发生中断时,两台汇聚交换机都变为VRRP主设备,网络进入三层不稳定状态。
机架式服务器适用性分析:
网络接入不具备高可用性,且二层扩展能力有限,因此不建议在机架式服务器接入时采用这种组网。
刀片服务器适用性分析:
网络接入不具备高可用性,二层扩展能力有限,不建议在刀片服务器接入时采用这种组网。
倒U型组网:不建议使用机架服务器用,刀片服务器可用
方案优点:
不启用STP,好管理;网络接入层不存在二层环路,接入交换机不启用生成树协议,网络配置管理简单。
VLAN 可以跨汇聚层交换机,服务器部署灵活;服务器的接入VLAN可以跨汇聚交换机,因此能实现VLAN跨不同的接入层交换机,服务器可实现跨接入交换机的二层互联,服务器接入扩展性好。
接入交换机上行汇聚交换机采用捆绑链路,因此上行链路可靠性高,链路的带宽利用率高。
方案缺点:
当汇聚交换机与接入交换机之间的链路中断时,服务器不能感知这种故障,服务器上行流量仍然发送到出现故障的接入交换机,从而形成了“流量黑洞”。
机架式服务器适用性分析:
由于存在“流量黑洞”的问题,因此不建议在机架式服务器接入时采用这种组网。
刀片服务器适用性分析:
刀片交换机可通过上行捆绑链路的状态监测机制解决“流量黑洞”问题:刀片交换机在正常运行状态时,周期性的对上行汇聚层交换机的接口进行状态检查,当发现上行接口故障时,该刀片交换机将shutdown其上所有端口。此时,接入到该刀片交换机上的服务器将把流量切换到与另一个刀片交换机相连的网卡上,从而避免了“流量黑洞”。
这种方案配置管理简单,如刀片交换机具备防 “流量黑洞”的特性,则适用于刀片交换机的网络接入。
矩形组网:不建议使用
方案优点:
VLAN可以跨汇聚层交换机;服务器接入VLAN可以跨汇聚交换机,能实现VLAN跨不同的接入交换机,服务器可实现跨接入交换机的二层互联,服务器接入扩展性好。
双active链路,接入交换机密度高;接入交换机到汇聚交换机间有冗余链路,网络接入层具备高可用性。
方案缺点:
接入交换机上行链路故障,流量将从一侧的交换机上行,收敛比变小,网络易拥塞,降低网络高可用性;正常情况时,两台接入交换机之间的链路被生成树协议阻塞。当某台接入交换机上行链路故障时,交换机之间的链路变为转发状态。此时,发生故障的交换机一侧的所有服务器上行流量,将经过另一侧交换机上行到汇聚交换机,该交换机的上行收敛比增加一倍,导致网络发生拥塞,网络转发性能降低。
机架式服务器适用性分析:
服务器接入具备高可用性和高可扩展性。当一侧接入交换机发生故障时,另一侧交换机拥塞加重,网络转发性能降低,因此不建议在机架式服务器接入时采用这种组网。
刀片服务器适用性分析:
刀片交换机模块需要配置生成树协议,不利于刀片系统的管理维护。且同样存在一侧刀片交换机故障时,网络转发性能下降的问题,因此不建议在刀片服务器接入时采用这种组网。
三角形组网:机架服务器建议使用,刀片服务器不建议
方案优点:
链路冗余,路径冗余,故障收敛时间最短(接入交换机到汇聚交换机有冗余链路,接入网络具备高可用性,且通过MSTP可实现上行流量分担。)
VLAN 可以跨汇聚层交换机,服务器部署灵活(服务器接入VLAN可以跨汇聚交换机,能实现VLAN跨不同的接入交换机,服务器可实现跨接入交换机的二层互联,服务器接入扩展性好。)
方案缺点:
网络配置管理较复杂,为提高二层网络的高可用性与安全性,在接入交换机与汇聚交换机上使能“BPDU保护”、“环路保护”、“根保护”等特性;
机架式服务器适用性分析:
服务器接入网络具备高可用性、高可扩展性,建议在机架式服务器接入时采用这种组网。
刀片服务器适用性分析:
刀片交换机上的配置复杂,可管理性较差,不建议在刀片服务器接入时采用这种组网。
刀片服务器pass-through模块部署
刀片服务器内可集成刀片交换机,也可以通过部署pass-through模块,将服务器的网络接入延伸到刀箱外的网络上。
采用了pass-through模块的刀片服务器在网络接入层设计上与机架式服务器的关注点相同,重点是保证服务器的高可用接入以及服务器的接入可扩展性,因此建议采用具备接入高可用性和高可扩展性的“二层环路三角形组网”。
刀片服务器交换模块与直通模块的区别:
交换模块相当于一个交换机,只要有一根网线,里面所有刀片都可以通出来,是共用一对多的。
直通模块( pass-through模块)的作用是把每一个刀片的接口通到外面来,是一对一的。理解成一个集线器,没有任何其他网络功能。好处是管理简单。