Bonding的模式一共有7种
mode=0 (balance-rr) (Round-robin policy :平衡抡循环策略)
#特点:传输数据包顺序是依次传输(即:第1个包走eth0,下一个包就走eth1….一直循环下去,
直到最后一个传输完毕),此模式提供负载平衡和容错能力;但是我们知道如果一个连接或者会话的数据包
从不同的接口发出的话,中途再经过不同的链路,在客户端很有可能会出现数据包无序到达的问题,
而无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降
mode=1 (active-backup) (Active-backup policy :主-备份策略)
#特点:只有一个设备处于活动状态,当一个宕掉另一个马上由备份转换为主设备。
mac地址是外部可见的,从外面看来,bond的MAC地址是唯一的,以避免switch(交换机)发生混乱。
此模式只提供了容错能力;由此可见此算法的优点是可以提供高网络连接的可用性,
但是它的资源利用率较低,只有一个接口处于工作状态,在有 N 个网络接口的情况下,资源利用率为1/N
mode=2 (balance-xor) (XOR policy :平衡策略)
#特点:基于指定的传输HASH策略传输数据包。缺省的策略是:(源MAC地址 XOR 目标MAC地址) % slave数量。
其他的传输策略可以通过xmit_hash_policy选项指定,此模式提供负载平衡和容错能力
mode=3 (broadcast) (broadcast :广播策略)
#特点:在每个slave接口上传输每个数据包,此模式提供了容错能力
mode=4 (802.3ad) (IEEE 802.3ad 动态链接聚合),这是常见服务器推荐使用的模式
#特点:创建一个聚合组,它们共享同样的速率和双工设定。根据802.3ad规范将多个slave工作在同一个
激活的聚合体下。外出流量的slave选举是基于传输hash策略,该策略可以通过xmit_hash_policy选项从缺省的XOR策略改变到其他策略。
需要注意的是,并不是所有的传输策略都是802.3ad适应的,尤其考虑到在802.3ad标准43.2.4章节提及的包乱序问题。
不同的实现可能会有不同的适应性。
必要条件:
#条件1:组成bond的网卡速率和双工设定要一致,可以用ethtool测试网卡属性(比如Speed: 2000Mb/s;Duplex: Full)
#条件2:交换机要支持802.3ad动态聚合,(华为叫LACP)
#条件3:交换机要启用端口聚合,并将聚合端口,如eth-trunk 设置为lacp模式
hash策略:
#L2 :MAC
#L2+L3 :MAC+IP
#L3+L4 :IP+Port 经测试L3+L4在ip端口应用中流量很容易进行平衡负载(类似rr效果)
mode=5 (balance-tlb) (Adaptive transmit load balancing :适配器传输负载均衡)
#特点:不需要任何特别的switch(交换机)支持的通道bonding。在每个slave上根据当前的
负载(根据速度计算)分配外出流量。如果正在接受数据的slave出故障了,另一个slave接管失败的slave的MAC地址。
#必要条件:ethtool支持获取每个slave的速率
mode=6 (balance-alb) (Adaptive load balancing :适配器适应性负载均衡)
#特点:该模式包含了balance-tlb模式,同时加上针对IPV4流量的
接收负载均衡(receive load balance, rlb),而且不需要任何switch(交换机)的支持。
接收负载均衡是通过ARP协商实现的。
bonding驱动截获本机发送的ARP应答,并把源硬件地址改写为bond中某个slave的唯一硬件地址,
从而使得不同的对端使用不同的硬件地址进行通信。
mode1
主-备份策略
方式:只有一个设备处于活动状态,当一个宕掉另一个马上由备份转换为主设备,
优点:
提供了容错能力,由此可见此算法的优点是可以提供高网络连接的可用性
缺点:
资源利用率较低,只有一个接口处于工作状态
创建bond接口
创建配置文件ifcfg-bond
配置文件内写入对应配置信息
vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
TYPE=Bond
NAME="bond0"
BONDING_MASTER=yes
B00TPROTO=none #是否开启dhcp
ONBOOT=yes #开机启动
BONDING_OPTS="mode=1 miimon=100" #mode=1热备模式,miimon=100代表链路检测间隔100ms
IPADDR="10.1.1.2"
PREFIX=24
将物理接口添加到聚合端口
配置物理接口eth0(可根据具体接口名称配置,多为ens33)
vi /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE="Ethernet"
BOOTPROTO=none
NAME="eth0"
DEVICE="eth0"
ONBOOT="yes"
MASTER=bond0
SLAVE=yes
USERCTL=no
配置物理接口eth1(可根据具体接口名称配置,多为ens34)
TYPE="Ethernet"
BOOTPROTO=none
NAME="eth1"
DEVICE="eth1"
ONBOOT="yes"
MASTER=bond0
SLAVE=yes
USERCTL=no
测试联通
systemctl restart network
cat /proc/net/bonding/bond0
配置VPCSip地址,并进行ping测试
ip 10.1.1.3 24 10.1.1.1
现将pc开启ping功能并进行长ping
ping 10.1.1.2 -t
开启ping后断开其中一根线缆
丢包一个后网络恢复
设置主备线缆规则
可以通过在bond0配置文件内增加如下配置
vi /etc/sysconfig/network-scripts/ifcfg-bond0
通过配置
BONDING_OPTS="mode=1 miimon=100 primary=eth0"
评论 (0)