在linux操作系统下网口绑定

发布时间:  2015-03-19 浏览次数:  1731 下载次数:  18
问题描述

将多个Linux网络端口绑定为一个,可以提升网络的性能,比如对于备份服务器,需要在一个晚上备份几个T的数据,如果使用单个的千兆网口将会是很严重的瓶颈。其它的应用,比如ftp服务器,高负载的下载网站, 都有类似的问题。因此使用Linux teamingbond来绑定多个网卡作为一个逻辑网口,配置单个的IP地址,会大幅提升服务器的网络吞吐(I/O)

 

Linux的多网卡绑定功能使用的是内核中的"bonding"模块,关于此模块可以参考Linux Ethernet Bonding Driver文档, 但是目前发布各个Linux版本内核均已包含了此模块,大多数情况下不需要重新编译内核。 Linux bonding 驱动提供了绑定/集成(bond)多个网卡为一个虚拟逻辑网口的功能。并请注意绑定的网口(bonded)有多种工作模式; 一般来说,分为主备(active-backup) 和 负载均衡(load-balancing). Redhat/Fedora和其它类Redhat Linux中是比较容易配置的。

处理过程

我们平常交付主要应用的为suselinux操作系统,下面我们主要说说suselinux操作系统下做bonding的方法。

一、配置加载网卡驱动

/etc/sysconfig/kernel中的

MODULES_LOADED_ON_BOOT参数加上网卡的驱动,例如

MODULES_LOADED_ON_BOOT=”tg3 e1000”

 

注意:大多数情况下不需要配置这一步骤,只有某些网卡不能在启动过程中驱动初始较慢没有识别导致绑定不成功,也就是有的slave设备没有加入绑定,才需要配置。

 

二、创建要绑定的网卡配置文件

/etc/sysconfig/network/ifcfg-eth*,其中*为数字,例如ifcfg-eth0 , ifcfg-eth1等等。

每个文件的内容如下:

BOOTPROTO='none'

STARTMODE='off'

 

三、创建bond0的配置文件

/etc/sysconfig/network/ifcfg-bond0

内容如下:

BOOTPROTO='static'

BROADCAST='192.168.1.255'

IPADDR='192.168.1.1'

NETMASK='255.255.255.0'

NETWORK='192.168.1.0'

STARTMODE='onboot'

BONDING_MASTER='yes'

BONDING_MODULE_OPTS='mode=1 miimon=100 use_carrier=1 '

#其中mode=1active-backup(主备)模式,mode=0balance_rr(负载均衡)模式

BONDING_SLAVE0='eth0'

BONDING_SLAVE1='eth1'

 

四、对于active-backup模式,需要在BONDING_MODULE_OPTS参数中加上制定主设备的参数,例如:

BONDING_MODULE_OPTS='mode=1 miimon=100 use_carrier=1 primary=eth0'

 

五、重新启动network服务

Service network restart

 

六、注意事项

(1)在某些情况下网卡驱动的初始化的时间可能会比较长,从而导致bonding不成功,那么可以修改

/etc/sysconfig/network/config配置文件的WAIT_FOR_INTERFACES参数,将其值改成30

(2)配置完bonding之后,可以通过在客户端ping,然后在服务器端拔插网线来验证是否已经正常工作。

 

(3)cat /proc/net/bonding/bond0可以查看bonding的状态。

END