在实际的环境中,服务器通过网口绑定技术,可以很容易的实现网口冗余,负载均衡,从而达到高可用的目的,而且可以提升网络的性能,大幅的提升网络I/O。
一般情况下,Linux的多网口绑定使用的是内核中的“bonding”模块,目前发行的各个Linux版本内核中都已经包含了该模块。
这里演示一下绑定的过程。将测试服务器的eth2,eth3两个网卡绑定成一个逻辑接口。
第一步:创建逻辑接口bond0的配置文件;
# vim ifcfg-bond0
DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.5.49
NETMASK=255.255.255.0
DNS2=202.96.128.86
GATEWAY=192.168.5.1
DNS1=202.96.134.133
第二步:配置成员接口;
在成员端口中加入配置:
MASTER=bond0
SLAVE=yes
第三步:修改modprobe相关配置文件;
# echo "alias bond0 bonding" >>/etc/modprobe.d/bonding.conf
# echo "options bonding miimon=100 mode=1" >>/etc/modprobe.d/bonding.conf
第四步:加载bonding模块(如果重启系统,就不需要手动加载)
# modprobe bonding
# lsmod | grep bonding (验证加载结果)
bonding 128245 0
重启网络服务以后查看bond的网卡状态:
# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth2
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth2
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: e8:bd:d1:04:e0:12
Slave queue ID: 0
Slave Interface: eth3
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: e8:bd:d1:04:e0:13
Slave queue ID: 0
上面可以看到连个重要信息。
- 模式,这个就是我们配置的Mode=***,上面我们配置的是1。
- 可以看到当前Active的网口是eth2
做完以上的操作,基本上就绑定完成了。
通常情况下,我们会配合交换机的链路聚合功能,提高整体的网络性能。这里,我们使用的是华为的5700交换机,在上面启用eth-trunk功能,并配置的是LACP模式。
交换机配置如下:
interface Eth-Trunk5
description Test-DB-Bond-169
port link-type access
port default vlan 5
mode lacp
load-balance src-ip
lacp preempt enable
max active-linknumber 3
注意事项:配置交换机使用是,绑定的模式需要设置为4(802.3ad)