您的位置:首页 > 其它

服务器网卡bonding配置浅读

2013-01-12 11:12 288 查看
最近看了下服务器网卡bonding驱动的文档,网络比较关心,和大家分享下,文档参见Linux内核目录($KERNEL_DIR/Documentation/networking/bonding.txt)

我看的是内核linux-2.6.32.60的,源码和文档可以去www.kernel.org下载。

网卡绑定支持7中模式,使用mode选项来配置,具体如下:

balance-rr or 0

这是默认配置,即服务器开启bond,但是不配mode选项的话,默认就是mode 0,也就是轮询,我的理解是,从网络上看,服务器2块网卡使用同一个MAC地址,

每一个miimon内,同时只有一块网卡在工作,也就是说从交换机上看,这个MAC一会在这个端口,一会在另一个端口,但同时只能有一个端口存在流量,所以瓶颈

是1块网卡的极限。而且该mode如果交换机不配port-channel的话,会出现严重的MAC地址抖动。

active-backup or 1

主备模式,也是线上用的比较多的一种,服务器端只会有一块网卡是活动状态,只有当activce slave网卡down掉后,另外的slave才会切换到active状态,也

就是说交换机无需任何特殊配置即可和服务器正常通信。

balance-xor or 2

异或模式,传输路线会根据异或的结果来选择,默认是拿源MAC和目的MAC做异或操作来决定走哪块网卡,通过xmit_hash_policy参数来修改策略。

broadcast or 3

广播模式,在所有网卡上接受所有的数据包,只提供冗余,不提供负载均衡。

802.3ad or 4

LACP模式,也是线上用的最多的一种,双网卡使用一个MAC和IP同时工作,网卡性能是所有slave之和。需要支持ethtool获取所有slave的speed和duplex;

交换机支持802.3ad;

balance-tlb or 5

不需要交换机特殊支持,bond程序会选择一块网卡作为active网卡收包,而出方向则是根据slave上的traffic来的;如果bond选择的slavedown掉了,会有另外

的slave会接管之前失效的MAC地址来收发包。总之就是单进双出。

balance-alb or 6

在balance-tlb的基础,增加了入方向rlb,字面上看就是 receive load balance,同样不需要交换机配LACP,但是需要服务器网卡支持ethtool获取speed和duplex,

且网卡支持设置网卡硬件地址,和mode 4一样,需要配置updelay参数,文档原话:“The updelay parameter (detailed below) mustbe set to a value equal or

greater than the switch'sforwarding delay so that the ARP Replies sent to the peers will not be blocked by the switch.”

mode 802.3ad线上用的比较多,就对802.3ad中可以设置的一些参数做一下介绍:

1、ad_select

该参数制定链路聚合策略,有以下几种:

stable or 0

按照最大带宽去聚合;

在所有slave down的情况,或者active聚合组没有slave的情况下会重新聚合;

bandwidth or 1

和stable一样,只是重新聚合的条件不一样;

一个slave的加入或者删除会重新聚合;

任何slave的状态改变会重新聚合;

任何slave的802.3ad协议状态的改变会重新聚合;

bond状态改变也会重新聚合;

count or 2

按照端口数量最大来聚合,个人最这个最多端口和最大带宽理解还不是太懂,具体要看实验的表现;

重新聚合发生在“bandwidth”参数的设置;

2、lacp_rate

该参数指定LACPDU报文发送速率,有以下2种:

slow or 0

30s一次,默认就是slow;

fast or 1

1s一次;

3、miimon

该参数指定链路检测频率,驱动程序推荐是miimon=100,也就是100ms一次,default是0;

4、xmit_hash_policy

layer2

使用2层(source MAC XOR destination MAC) 来hash;

layer2+3

使用2+3层(((source IP XOR dest IP) AND 0xffff) XOR( source MAC XOR destination MAC )) 来hash;IP地址XOR完毕后,取低16 bits,再和MAC地址做一次XOR。

layer3+4

使用3+4层((source port XOR dest port) XOR((source IP XOR dest IP) AND 0xffff)来hash;

最后贴一个mode 4配置:

cat /etc/modprobe.d/bonding.conf

alias bond0 bonding

options bonding miimon=100 mode=4 xmit_hash_policy=2

mode 1 主要的几个选项:

1、primary

设置主网卡

2、updelay

该参数的配置是为了防止交换机重启后端口UP起来,但是还未进入forwarding状态引起服务器出现流量上来的问题

最后贴一个mode 1配置:

cat /etc/modprobe.d/bonding.conf

alias bond0 bonding

options bonding miimon=100 mode=1 primary=eth0 updelay=600000

有啥理解不对的地方还请指出,谢谢。近期会对所有mode和想了解的参数测试一遍,看看服务器和交换机的具体表现。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: