XenServer中网卡绑定模式分析

XenServer的网卡绑定使用linux提供的绑定机制,而XenServer支持Linux的Source Level Bond(SLB)以及Active-Passive Nic Bond(A/P)两种绑定模式。

关于Linux支持的7中Bond模式,这里简单介绍下,网上找了找资料:

bond modebond mode namebond descriptionremarks
0balance-rr
(round-robin policy)
轮询策略依次轮流传输数据库,知道完毕,提供负载均衡和冗余功能
1active-backup
(active-backup policy)
主/备策略只有一个网卡活动,当活动网卡宕掉以后,另外一块设备马上接管,MAC地址对交换机只有一个端口可见,避免了混乱,该模式提供冗余功能
2balance-xor
(XOR policy)
布尔异或策略基于MAC地址与目的地址的异或来决定流量走哪块网卡,同一目的MAC会走相同的网卡,该模式提供负载均衡和冗余
3broadcast
(Broadcast policy)
广播策略发送所有流量到所有网口,该模式提供冗余功能
4802.3ad
(IEEE 802.3ad Dynamic link aggregation)
动态链接聚合策略需要ethtool support和交换机对802.3ad的支持,建立相同速率和双工设置的聚合组
5balance-tlb
(adaptive transmit load balancing)
适配器传输负载平衡策略发送流量基于网卡当前负载决定,主要基于相对速率的计算,入栈流量由当前网卡接收,如果失败,则另外一块网卡接管,提供冗余功能
6balance-alb
(Adaptive load balancing)
适配器负载平衡策略在模式balance-tlb的基础上,对接收的负载进行计算并实现负载均衡

我们可以看到linux提供了多种绑定模式的支持,而XenServer的bond也是基于Linux的绑定功能,但是官方指出,只支持mode 6(Active/Active)与Mode 1(Active/Passive)两种模式,使用其他模式,可能不受官方技术支持,但是实际测试发现,XenServer的绑定也支持其他几种模式。(实测了mode=3)

通过设置pif的参数bond-mode来实现修改bonding的模式:

设置bond-mode=6则为XenServer默认的A/A负载均衡模式,也可以设置成其他模式。

注:修改完绑定模式以后,需要重启XenServer生效。