通过双网卡绑定可以实现网络设备的冗余,减少因为网卡故障对服务器带来的灾难
下图是我做实验的机器:
双网卡bonding实现冗余/负载均衡_职场
1.修改/etc/modprobe.conf使系统启动时加载bonding模块
在/etc/modprobe.conf里加入如下两行:
alias bond0 bonding
options bond0 mode=1 miimon=100 use_carrier=0
第一行的意思是:启动bond0这个设备的时候,就加载bonding这个模块
第二行的mode=1代表是主备模式,实现冗余,mode=0代表负载均衡模式。当然还有其他的模式,不过都不常用,miimon=100意思是每100毫秒坚持线路一次。use_carrier的意思就是指定检查线路的方式,默认是1,这种模式需要网卡驱动支持内核的netif_carrier_ok()这个函数,我们为了增加通用性,在这里把它设为了0,设为0之后,就会采用mii-tool或者ethtool这两个工具来检测,就不用管内核支持不支持那个函数了,
截图如下:
双网卡bonding实现冗余/负载均衡_休闲_02

 

2.现在开始修改网卡的配置文件:
进入/etc/sysconfig/network-scripts这个目录
创建bond0这个虚拟的网络设备,新建ifcfg -bond0,并加入以下内容:
DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
NETMASK=255.255.255.0
IPADDR=192.168.0.88
GATEWAY=192.168.0.254
注意:红色部分要根据具体情况进行设置。
BOOTPROTO这行的none也可以写成static
截图如下:
双网卡bonding实现冗余/负载均衡_休闲_03

 

下一步就是把想要实现冗余的两块网卡加入到bond0这个网络设备下
修改ifcfg-eth0
首先就是把跟bond0的设置冲突的给删除掉或者注释掉。
一定不能我忘记的就是把网卡MAC这行给注释掉。
然后加入:
MASTER=bond0
SLAVE=yes
截图如下:
双网卡bonding实现冗余/负载均衡_负载均衡_04

 

ifcfg-eth1也作如上修改,截图如下:
双网卡bonding实现冗余/负载均衡_职场_05

 

重启机器,我们在另外一台机器上ping这192.168.0.88,我们把掉上面的集成网卡上的网线,发现依旧能ping通,我们把网卡再插上,拔掉下面的独立网卡上的网线,发现还是能ping通。
我们现在把网卡设置为负载均衡模式:
把/etc/modprobe.conf里面的mode=1改为mode=0,重启电脑,然后开两个终端,分别运行watch ifconfig eth0和watch ifconfig eth1这个命令来监视两个网卡的信息,刚开始的时候,截图如下:
双网卡bonding实现冗余/负载均衡_冗余_06
双网卡bonding实现冗余/负载均衡_休闲_07

 

分别看倒数第二行,可知道第一块网卡接收了大约86K的数据,第二块网卡接收了大约31K的数据。
我现在开始下载一个大约170多MB的东西,下载完之后,截图如下:
双网卡bonding实现冗余/负载均衡_负载均衡_08双网卡bonding实现冗余/负载均衡_休闲_09

 

这次可以看到:两块网卡都接收了大概96M多的数据。
这就是负载均衡,如果是主备模式下,你会发现平时之后有一块网卡走数据。