当前位置 主页 > 服务器问题 > win服务器问题汇总 >

    Linux双网卡绑定实现负载均衡详解

    栏目:win服务器问题汇总 时间:2019-11-28 12:34

    Linux双网卡绑定实现负载均衡,供大家参考,具体内容如下

    系统环境:CentOS release 6.9 (Final)  Linux centos6 2.6.32-696.10.1.el6.x86_64

    Ubuntu系统下使用ifenslave进行网卡配置,方法大同小异。

    关闭NetworkManager

    # service NetworkManager stop
    # chkconfig NetworkManager off
    

    创建bond0接口配置文件

    # cd /etc/sysconfig/network-script/
    # vim ifcfg-bond0
    DEVICE=bond0
    IPADDR=192.168.100.106
    PREFIX=24
    GATEWAY=192.168.100.1
    DNS1=202.103.24.68
    BOOTPROTO=static
    ONBOOT=yes
    USERCTL=no
    

    修改eth0和eth1的配置

    # vim ifcfg-eth0 
    DEVICE=eth0
    BOOTPROTO=none
    ONBOOT=yes
    MASTER=bond0
    SLAVE=yes
    USERCTL=no
    
    # vim ifcfg-eth1 
    DEVICE=eth1
    BOOTPROTO=none
    ONBOOT=yes
    MASTER=bond0
    SLAVE=yes
    USERCTL=no
    

    加载bonding模块

    # vim /etc/modprobe.d/bonding.conf  #新建bonding.conf文件
    alias bond0 bonding
    options bond0 miimon=100 mode=6
    

    说明:

    miimon是用来进行链路监测的。 比如:miimon=100,单位是ms(毫秒)。这里的100,是100ms,即是0.1秒。系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路。mode是指工作模式,总共有七种(0-6)。这两个参数可以配置在/etc/modprobe.d/bonding.conf文件里,即options bond0 miimon=100 mode=6,或者直接写在bond0的配置文件中,即BONDING_OPTS="mode=6 miimon=100"

    重启网络服务

    # service network restart

    查看bond0接口状态

    [root@centos6 ~]# cat /proc/net/bonding/bond0 
    Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
    
    Bonding Mode: adaptive load balancing
    Primary Slave: None
    Currently Active Slave: eth0
    MII Status: up
    MII Polling Interval (ms): 100
    Up Delay (ms): 0
    Down Delay (ms): 0
    
    Slave Interface: eth0
    MII Status: up
    Speed: 100 Mbps
    Duplex: full
    Link Failure Count: 0
    Permanent HW addr: 52:54:00:a9:4e:2c
    Slave queue ID: 0
    
    Slave Interface: eth1
    MII Status: up
    Speed: 100 Mbps
    Duplex: full
    Link Failure Count: 0
    Permanent HW addr: 52:54:00:91:1b:68
    Slave queue ID: 0
    
    

    如果多次修改过bond配置,则可能需要重启系统,bond0接口状态才会更新。

    查看网络接口收发状态

    # watch -n 1 ifconfig -a
    

    bond的七种工作模式介绍

    1、mode=0(balance-rr)(平衡抡循环策略)

    链路负载均衡,增加带宽,支持容错,一条链路故障会自动切换正常链路。交换机需要配置聚合口,思科叫port channel。
    特点:传输数据包顺序是依次传输(即:第1个包走eth0,下一个包就走eth1….一直循环下去,直到最后一个传输完毕),此模式提供负载平衡和容错能力;但是如果一个连接或者会话的数据包从不同的接口发出的话,中途再经过不同的链路,在客户端很有可能会出现数据包无序到达的问题,而无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降

    2、mode=1(active-backup)(主-备份策略)

    这个是主备模式,只有一块网卡是active,另一块是备用的standby,所有流量都在active链路上处理,交换机配置的是捆绑的话将不能工作,因为交换机往两块网卡发包,有一半包是丢弃的。
    特点:只有一个设备处于活动状态,当一个宕掉另一个马上由备份转换为主设备。mac地址是外部可见得,从外面看来,bond的MAC地址是唯一的,以避免switch(交换机)发生混乱。此模式只提供了容错能力;由此可见此算法的优点是可以提供高网络连接的可用性,但是它的资源利用率较低,只有一个接口处于工作状态,在有 N 个网络接口的情况下,资源利用率为1/N