Linux bonding参数介绍(2)

安装ifenslave控制工具

ifenslave控制工具也在内核源码中:Documentation/networking/ifenslave.c。一般建议最好使用和内核匹配的 ifenslave(同一份源码中或同一个发布中),然而较老的内核中的ifenslave也应该能够正常工作(较新的一些功能将不能使用),不过更新的内核中的ifenslave将可能不能工作。

参照如下步骤以安装ifenslave:

# gcc -Wall -O -I/usr/src/linux/include ifenslave.c -o ifenslave
# cp ifenslave /sbin/ifenslave

如果你的内核源码不在“/usr/src/linux”下,请将上面的“/usr/src/linux/include”替换成相应的正确目录。

如果希望备份现有的/sbin/ifenslave,或者只是试用一下,你可以把ifenslave文件名加上内核版本信息(比如,/sbin/ifenslave-2.6.10)

重要提示:

如果你忽略了"-I"参数或者指定了一个不正确的目录,你可能会得到一个和内核不兼容的ifenslave。有些发布(比如Red Hat 7.1之前的版本)没有/usr/include/linux符号链接指向当前内核的include目录。

另一个重要提示: 如果你打算使用sysfs来配置bonding,你不需要使用ifenslave。
Bonding驱动选项

Bonding驱动的选项是通过在加载时指定参数来设定的。可以通过insmod或modprobe命令的命令行参数来指定,但通常在/etc /modules.conf或/etc/modprobe.conf配置文件中指定,或其他的配置文件中(下一节将会提及几个具体的细节)

下面列出可用的bonding驱动参数。如果参数没有指定,驱动会使用缺省参数。刚开始配置bond的时候,建议在一个终端窗口中运行"tail -f /var/log/messages"来观察bonding驱动的错误信息【译注:/var/log/messages一般会打印内核中的调试信息】。

有些参数必须要正确的设定,比如miimon、arp_interval和arp_ip_target,否则在链接故障时会导致严重的网络性能退化。很少的设备不支持miimon,因此没有任何理由不使用它们。

有些选项不仅支持文本值的设定,出于兼容性的考虑,也支持数值的设定,比如,"mode=802.3ad"和"mode=4"效果是一样的。

具体的参数列表:

arp_interval

指定ARP链路监控频率,单位是毫秒(ms)。如果APR监控工作于以太兼容模式(模式0和模式2)下,需要把switch(交换机)配置为在所有链路上均匀的分发网络包。如果switch(交换机)被配置为以XOR方式分发网络包,所有来自ARP目标的应答将会被同一个链路上的其他设备收到,这将会导致其他设备的失败。ARP监控不应该和miimon同时使用。设定为0将禁止ARP监控。缺省值为0。

arp_ip_target

指定一组IP地址用于ARP监控的目标,它只在arp_interval > 0时有效。这些IP地址是ARP请求发送的目标,用于判定到目标地址的链路是否工作正常。该设定值为ddd.ddd.ddd.ddd格式。多个IP地址通过逗号分隔。至少指定一个IP地址。最多可以指定16个IP地址。缺省值是没有IP地址。

downdelay

指定一个时间,用于在发现链路故障后,等待一段时间然后禁止一个slave,单位是毫秒(ms)。该选项只对miimon监控有效。downdelay值应该是miimon值的整数倍,否则它将会被取整到最接近的整数倍。缺省值为0。

lacp_rate

指定在802.3ad模式下,我们希望的链接对端传输LACPDU包的速率。可能的选项:

slow 或者 0
请求对端每30s传输LACPDU

fast 或者 1
请求对端每1s传输LACPDU,缺省值是slow

max_bonds

为bonding驱动指定创建bonding设备的数量。比如,如果max_bonds为3,而且bonding驱动还没有加载,那么bond0,bond1,bond2将会被创建。缺省值为1。

miimon

指定MII链路监控频率,单位是毫秒(ms)。这将决定驱动检查每个slave链路状态频率。0表示禁止MII链路监控。100可以作为一个很好的初始参考值。下面的use_carrier选项将会影响如果检测链路状态。更多的信息可以参考“高可靠性”章节。缺省值为0。

mode

指定bonding的策略。缺省是balance-rr (round robin,循环赛)。可选的mode包括:

balance-rr 或者 0

Round-robin(循环赛)策略:按顺序传输数据包,从第一个可用的slave到最后一个可用的slave。该模式提供了负载均衡和容错机制。

active-backup 或者 1

Active-backup(激活-备份)策略:只有一个slave是激活的(active)。其他的slave只有在当前激活的slave故障后才会变为激活的(active)。从外面看来,bond的MAC地址是唯一的,以避免switch(交换机)发生混乱。

在bonding 2.6.2和以后的版本中,如果在active-backup模式下出现failover【译注:指一个slave发生故障,另一个slave变为激活的设备】,bonding将会在新的slave上发出一个或多个ARP请求,其中一个ARP请求针对bonding master接口及它上面配置的每个VLAN接口,从而保证该接口至少配置了一个IP地址。针对VLAN接口的ARP请求将会被打上相应的VLAN id。

----------------------------------------------------------------------------------------
        In bonding version 2.6.2 or later, when a failover
        occurs in active-backup mode, bonding will issue one
        or more gratuitous ARPs on the newly active slave.
        One gratuitous ARP is issued for the bonding master
        interface and each VLAN interfaces configured above
        it, provided that the interface has at least one IP
        address configured. Gratuitous ARPs issued for VLAN
        interfaces are tagged with the appropriate VLAN id.
----------------------------------------------------------------------------------------

该模式提供了容错机制。下面的primary选项将会影响该工作模式的行为。

balance-xor 或者 2

XOR策略:基于指定的传输HASH策略传输数据包。缺省的策略是:(源MAC地址 XOR 目标MAC地址) % slave数量。其他的传输策略可以通过xmit_hash_policy选项指定,下文将会对之介绍。该模式提供了负载均衡和容错机制。

broadcast 或者 3

Broadcase(广播)策略:在每个slave接口上传输每个数据包。该模式提供了容错机制。

802.3ad 或者 4

IEEE 802.3ad Dynamic link aggregation(动态链接聚合)。创建一个聚合组,它们共享同样的速率和双工设定。根据802.3ad规范将多个slave工作在同一个激活的聚合体下。

外出流量的slave选举是基于传输hash策略,该策略可以通过xmit_hash_policy选项从缺省的XOR策略改变到其他策略。需要注意的是,并不是所有的传输策略都是802.3ad适应的。不同的实现可能会有不同的适应性。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/23073.html