Linux双网卡绑定实践

网络作为整个高可用架构中最重要的环节之一,在物理上一般是双网卡绑定模式,通常使用默认的mode=1(active-backup)作为主备关系。在最近测试大数据的生产服务器中,考虑到性能优先,所以将绑定模式设置为mode=6(balance-alb),使用负载均衡提高1倍流量。与此同时针对SuSE HA架构由Skybility HA往Corosync/Openais+Pacemaker的测试过程中,配合网络交换机Port Channel链路聚合采用mode=0(balance-rr ),凭借平衡轮询实现网络中断0丢包。

 常用的三种Bond模式

mode=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定。
mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援。
mode=6:平衡负载模式,有自动备援,不必”Switch”支援及设定。

Bonding的模式一共有7种
#defineBOND_MODE_ROUNDROBIN       0   (balance-rr模式)网卡的负载均衡模式
#defineBOND_MODE_ACTIVEBACKUP     1   (active-backup模式)网卡的容错模式
#defineBOND_MODE_XOR              2   (balance-xor模式)需要交换机支持
#defineBOND_MODE_BROADCAST        3    (broadcast模式)
#defineBOND_MODE_8023AD           4   (IEEE 802.3ad动态链路聚合模式)需要交换机支持
#defineBOND_MODE_TLB              5   自适应传输负载均衡模式
#defineBOND_MODE_ALB              6   网卡虚拟化方式

 

interface 	 IP 	                 type
eth0,eth2 		                两块生产网卡
eth3 	        10.129.46.19 	        私有地址
bond0 	        10.3.3.214 	        双网卡绑定地址

 加载bond模块支持

#加载模块(重启系统后就不用手动再加载了)
modprobe bonding
  
#确认模块是否加载成功
lsmod | grep bonding
bonding 100065 0

双网卡绑定

cd /etc/sysconfig/network-scripts

#编辑em1
vim /etc/sysconfig/network-scripts/ifcfg-em1
DEVICE=em1
HWADDR=14:18:77:49:1E:FB
TYPE=Ethernet
UUID=b24693fd-5813-4526-bfaf-8a9844f010e1
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
MASTER=bond0
SLAVE=yes

#编辑em3
vim /etc/sysconfig/network-scripts/ifcfg-em3
DEVICE=em3
HWADDR=14:18:77:49:1E:FD
TYPE=Ethernet
UUID=20f99596-b1d9-4c0f-98ce-f3c84b47386a
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
MASTER=bond0
SLAVE=yes

#编辑bond0
vim /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=static
ONBOOT=yes
IPADDR=183.xx.xx.xx
NETMASK=255.255.255.224
GATEWAY=183.2.191.xx
DNS1=202.96.134.133
IPV6INIT=no
USERCTL=no
BONDING_OPTS="mode=1 miimon=100"
#BONDING_OPTS="mode=0 miimon=100  primary=eth0"

#设置bond参数,注意mode选择
vim /etc/modprobe.d/bonding.conf
alias bond0 bonding
options bond0 miimon=100 mode=1

#加入开机自启动参数
vim /etc/rc.d/rc.local
ifenslave bond0 em1 em3

#重启网卡
/etc/init.d/network restart

#使绑定网卡立即生效
ifenslave bond0 em1 em3

#测试绑定网络
ping qq.com

 

 检查

#确认设备已经正确加载
less /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup)   # 主备模式
Primary Slave: None
Currently Active Slave: em1			# 活动网卡是em1
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: em1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 14:18:77:49:1e:fb
Slave queue ID: 0

Slave Interface: em3
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 14:18:77:49:1e:fd
Slave queue ID: 0

从上面的确认信息中,我们可以看到3个重要信息:
1.现在的bonding模式是active-backup
2.现在Active状态的网口是eth0
3.bond0,eth1的物理地址和处于active状态下的eth0的物理地址相同,这样是为了避免上位交换机发生混乱。
任意拔掉一根网线,然后再访问你的服务器,看网络是否还是通的。

 

常用3种网卡绑定模式对比

mode=0
中断任意一条链路或恢复链路,网络0丢包
优点:流量提高1倍
缺点:需要接入同一交换机做聚合配置,无法保证物理交换机高可用(Cisco似乎有解决方案?)

mode=1
中断任意一条链路丢失1-3个包(秒),恢复链路时0丢包
优点:交换机无需配置
缺点:如上

mode=6
中断任意一条链路0丢包,恢复链路时丢失10-15个包(秒)
优点:交换机无需配置,流量提高1倍
缺点:恢复链路时丢包时间过长

 

 

http://blog.csdn.net/wuweilong/article/details/39720571
https://wsgzao.github.io/post/bonding/

 

posted @ 2017-08-22 11:54  sunmmi  阅读(312)  评论(0)    收藏  举报