LACP的ad_select参数

bonding模式

参考 Linux Network bonding – setup guideWhat are the Network Bonding Modes In CentOS / RHEL

    mode=0 (Balance Round Robin)
    mode=1 (Active backup)
    mode=2 (Balance XOR)
    mode=3 (Broadcast)
    mode=4 (802.3ad)
    mode=5 (Balance TLB)
    mode=6 (Balance ALB)

验证bonding模式

cat /proc/net/bonding/bond0

例如输出:

Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: eth0 (primary_reselect always)
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 90:b1:1c:54:a1:e0
Slave queue ID: 0

Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 90:b1:1c:54:a1:e1
Slave queue ID: 0

ad_select概述

在Bonding驱动v3.4.0,增加了一个802.3AD模式(mode 4)的参数来实现aggreator选择。

初始模式或以前版本模式现在称为Stable模式作为默认选项。新增了2个策略,Bandwidth(带宽)和Count(计数)被增加,通过全部贷款来选择激活的aggregator或者通过aggregator的端口数量来选择。这两个策略和stable策略不同,它们是在bond发生可用性相关变化时候重新选择active aggregator时候使用(例如,连接状态发生变化)。

BandwithCount选择策略允许802.3ad聚合在激活聚合发生部分失效时实现failover,这使得aggregator能够在任何时候实现最高的高可用(或者是带宽或者是端口数量)。

ad_select详细描述

ad_select参数可以作为BONDING_OPTS参数添加到/etc/sysconfig/network-scripts目录下的ifcfg_bond*配置文件,参数值可以使用3个值之一:

  • Stable0

这是原始特性也是默认设置

激活的聚合是通过最大聚合带宽来选择的。只在激活的聚合的所有slave接口都down掉的情况下或者激活的聚合没有任何slave接口的时候才会重新选择激活的聚合。

  • Bandwith或者1

这个策略是通过最大聚合带宽来选择聚合。如果发生以下情况则开始重新选择激活的聚合:

  • 当有一个slave被添加到bond或者从bond中移除

  • 任何slave链路状态变化

  • 任何slave的802.3ad相关状态变化

  • bond的管理状态变更成up

  • Count或者2

通过slave的最大端口数量来选择活跃的aggregator。发生重新选择的条件和上述Bandwidth设置相同。

案例

使用1个10GB网卡和4个1GB网卡的聚合实现一个802.3ad的failvoer - bonding over bonding

可以使用带有ad_select=bandwidth参数的802.3ad模式,在交换机上创建2个LACP组,一个是针对10G,一个是针对1G,此时linux bonding 802.3ad就会使用两个不同的aggregator(将5个接口设置成一个bond),并通过ad_select选项选择最佳的aggreator(例如这里是带宽)。

注意:需要使用bonding的驱动是3.5.0才支持ad_select - 可以看到 服务器bonding失败 使用的RHEL 5.4操作系统的内核 2.6.18-164 ,启动的bonding driver 也是 3.4.0 可能也存在类似问题。

参考 Ubuntu 10.10 Bonding changed? 提出的bonding参数

options bonding mode=4 miimon=100 lacp_rate=1 downdelay=200 updelay=200

上述参数可以借鉴(也许和delay参数有关)

参考

Last updated