admin 发表于 2018-8-26 00:54:49

CentOS操作系统网卡绑定bond配置指导

Linux的多网卡绑定功能使用的是内核中的"bonding"模块,关于此模块可以参考Linux Ethernet Bonding Driver文档, 但是目前发布各个Linux版本内核均已包含了此模块,大多数情况下不需要重新编译内核。 Linux 的 bonding 驱动提供了绑定/集成(bond)多个网卡为一个虚拟逻辑网口的功能。将多个Linux网络端口绑定为一个,可以提升网络的性能,比如对于备份服务器,需要在一个晚上备份几个T的数据,如果使用单个的千兆网口将会是很严重的瓶颈。其它的应用,比如ftp服务器,高负载的下载网站, 都有类似的问题。因此使用Linux teaming或bond来绑定多个网卡作为一个逻辑网口,配置单个的IP地址,会大幅提升服务器的网络吞吐(I/O)。此外,做服务器端口聚合还能提高链路的可靠性。配置步骤:首先需要配置服务器聚合网卡,这里以聚合口名称为bond0,成员物理口名称为eno3为例:
1、创建bond0文件# vim ifcfg-bond0NM_CONTROLLED=noDEVICE=bond0 //设备名称BOOTPROTO=staticONBOOT=yes //是否随机启动IPADDR=x.x.x.x //IP地址NETMASK=x.x.x.x //掩码GATEWAY=x.x.x.x //网关网关可以不用配置,根据现场情况需要配置。


2、修改物理网卡配置文件# vim ifcfg-eno3HWADDR=28:80:23:A1:F7:4ATYPE=EthernetBOOTPROTO=noneDEFROUTE=yesPEERDNS=yesPEERROUTES=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_PEERDNS=yesIPV6_PEERROUTES=yesIPV6_FAILURE_FATAL=noNAME=eno3UUID=73064264-1ec3-41b9-83db-ab1a265f5a02ONBOOT=yesMASTER=bond0SLAVE=yesNM_CONTROLLED=no
聚合口中的物理网卡都要修改。
3、修改modprobe配置文件创建/etc/modprobe.d/bonding.conf文件,保证系统启动时聚合模块能加载,内容如下:alias bond0 bondingoptions bonding mode=4 miimon=100 xmit_hash_policy=layer3+4 说明:A、miimon=100 用来进行链路监测的。即每100ms监测一次链路状态。bonding只监测主机与交换机之间链路。如果交换机出去的链路出问题而本身没有问题,那么bonding认为链路没有问题而继续使用B、mode模式说明:
[*]高可用模式,运行时只使用一个网卡,其余网卡作为备份,在负载不超过单块网卡带宽或压力时建议使用。
[*]基于HASH算法的负载均衡模式,网卡的分流按照xmit_hash_policy的TCP协议层设置来进行HASH计算分流,使各种不同处理来源的访问都尽量在同一个网卡上进行处理。
[*]广播模式,所有被绑定的网卡都将得到相同的数据,一般用于十分特殊的网络需求,如需要对两个互相没有连接的交换机发送相同的数据。
[*]802.3ab负载均衡模式,要求交换机也支持802.3ab模式,理论上服务器及交换机都支持此模式时,网卡带宽最高可以翻倍(如从1Gbps翻到2Gbps) (mode=4 在交换机支持LACP时推荐使用,其能提供更好的性能和稳定性)

4、加载聚合模块,使能当前的聚合功能 modprobe bonding
5、确认模块是否加载成功lsmod | grep bonding
6、重启网络服务service network restart
7、查看网卡聚合信息cat /proc/net/bonding/bond0
8、交换机配置Linux聚合配置好以后,需要在交换机上配置相应的聚合口,并配置动态聚合模式。

9. 服务器端查询bond成员网卡的mac地址方法:cat /sys/class/net/bond0/slave_eth3/address


------------------------------------------------------------------------留心:前面只是2个网口绑定成一个bond0的情况,如果我们要设置多个bond口,比如物理网口eth0和eth1组成bond0,eth2和eth3组成bond1,那么网口设置文件的设置方法和上面第1步讲的方法相同,只是/etc/modprobe.d/bonding.conf的设定就不能像下面这样简单的叠加了:(如下为错误的写法)alias bond0 bondingoptions bonding mode=1 miimon=100alias bond1 bondingoptions bonding mode=1 miimon=100正确的设置方法有2种:第一种,你可以看到,这种方式的话,多个bond口的模式就只能设成相同的了:(国网云平台项目亲试!!)alias bond0 bondingalias bond1 bondingoptions bonding max_bonds=2 miimon=100 mode=1第二种,这种方式,不同的bond口的mode可以设成不一样:alias bond0 bondingoptions bond0 miimon=100 mode=1install bond1 /sbin/modprobe bonding -o bond1 miimon=100 mode=0仔细看看上面这2种设置方法,现在如果是要设置3个,4个,甚至更多的bond口,你应该也会了吧!后记:简单的介绍一下上面在加载bonding模块的时候,options里的一些参数的含义:miimon 监视网络链接的频度,单位是毫秒,我们设置的是100毫秒。max_bonds 配置的bond口个数mode bond模式,主要有以下几种,在一般的实际应用中,0和1用的比较多,如果你要深入了解这些模式各自的特点就需要靠读者你自己去查资料并做实践了。
from:http://support.huawei.com/ecommunity/bbs/10155553.html
文章链接:https://www.cnblogs.com/dkblog/p/3613407.html
页: [1]
查看完整版本: CentOS操作系统网卡绑定bond配置指导