for i in $BOND_ARGS
do
$IFENSLAVE_BIN -d $BOND_INTERFACE $i
done
rc_status -v
;;
status)
echo -n "show bonding service interface $BOND_INTERFACE status..."
$IFENSLAVE_BIN -a $BOND_INTERFACE 2> /dev/null
rc_status -v
;;
*)
echo "Usage: $0 start|stop|status"
exit 1
esac
rc_exit
6. 编译 ifenslave 工具
ifenslave util's source code was in kernel source packages, if your system do not install it please install kernel-source package first.
# cd /usr/src/linux/Documentation/networking
# gcc -Wall -Wstrict-prototypes -O -I/usr/src/linux/include ifenslave.c -o ifenslave
# cp ifenslave /sbin/ifenslave
7. 为 bonding 创建系统V 启动脚本链接
# chkconfig -a bonding
到这时已经配置完毕, 重新启动网络服务。
# /etc/rc.d/boot.local
# /etc/rc.d/network restart
# /etc/rc.d/bonding start
下面我们讨论以下mode分别为0,1时的情况
mode=1工作在主备模式下,这时eth1作为备份网卡是noarp的
[root]#ifconfig验证网卡的配置信息
bond0 Link encap:Ethernet HWaddr 00:0E:7F:25:D9:8B
inet addr:172.31.0.13 Bcast:172.31.3.255 Mask:255.255.252.0
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:18495 errors:0 dropped:0 overruns:0 frame:0
TX packets:480 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1587253 (1.5 Mb) TX bytes:89642 (87.5 Kb)
eth0 Link encap:Ethernet HWaddr 00:0E:7F:25:D9:8B
inet addr:172.31.0.13 Bcast:172.31.3.255 Mask:255.255.252.0
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:9572 errors:0 dropped:0 overruns:0 frame:0
TX packets:480 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:833514 (813.9 Kb) TX bytes:89642 (87.5 Kb)
Interrupt:11
eth1 Link encap:Ethernet HWaddr 00:0E:7F:25:D9:8B
inet addr:172.31.0.13 Bcast:172.31.3.255 Mask:255.255.252.0
UP BROADCAST RUNNING NOARP SLAVE MULTICAST MTU:1500 Metric:1
RX packets:8923 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:753739 (736.0 Kb) TX bytes:0 (0.0 b)
Interrupt:15
那也就是说在主备模式下,当一个网络接口失效时(例如主交换机掉电等),不会出现网络中断,系统会按照cat /etc/rc.d/boot.local 里指定网卡的顺序工作,机器仍能对外服务,起到了失效保护的功能。
在mode=0负载均衡工作模式下,能在提供带宽的负载均衡的同时提供失效保护,我们来看一下网卡的配置信息
[root]# ifconfig
bond0 Link encap:Ethernet HWaddr 00:0E:7F:25:D9:8B
inet addr:172.31.0.13 Bcast:172.31.3.255 Mask:255.255.252.0
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:2817 errors:0 dropped:0 overruns:0 frame:0
TX packets:95 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:226957 (221.6 Kb) TX bytes:15266 (14.9Kb)
eth0 Link encap:Ethernet HWaddr00:0E:7F:25:D9:8B
inet addr:172.31.0.13 Bcast:172.31.3.255 Mask:255.255.252.0
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:1406 errors:0 dropped:0 overruns:0 frame:0
TX packets:48 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:113967 (111.2 Kb) TX bytes:7268 (7.0 Kb)
Interrupt:11
eth1 Link encap:Ethernet HWaddr 00:0E:7F:25:D9:8B
inet addr:172.31.0.13 Bcast:172.31.3.255 Mask:255.255.252.0
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:1411 errors:0 dropped:0 overruns:0 frame:0
TX packets:47 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:112990 (110.3 Kb) TX bytes:7998 (7.8 Kb)
Interrupt:15
在这种情况下出现一块网卡失效,仅仅会是服务器出口带宽下降,也不会影响网络使用。
通过查看bond0的工作状态查询能详细的掌握bonding的工作状态
[sles9:~]# cat /proc/net/bond0/info
bonding.c:v2.2.14 (June 30, 2003)
Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Multicast Mode: all slaves
Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:0e:7f:25:d9:8a
Slave Interface: eth0
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:0e:7f:25:d9:8b
SUSE LINUX Enterprise Server 8下的配置步骤
配置步骤与 SLES9 类似,下面只列出区别的地方
(1) SLES8 下内核模块参数的配置是在 /etc/modules.conf
3. 编辑 /etc/modules.conf 文件,加入如下内容,以使系统在启动网络服务时加载bonding模块,对外虚拟网络接口设备为bond0:
alias bond0 bonding
options bond0 miimon=100 mode=1
#options bond0 arp_interval=100 arp_ip_target=xxx.xxx.xxx.xxx,xxx.xxx.xxx.xxx mode=1
(2) SLES8 下的网卡配置文件缺省命名不是 ifcfg-eth-id-xx.xx.xx.xx.xx.xx,而是
将IPADDR,NETMASK,BROADCAST的设置从网卡配置文件