linux系统多网卡热备实现高并发负载均衡

Posted joker-apologize

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux系统多网卡热备实现高并发负载均衡相关的知识,希望对你有一定的参考价值。

#nmcli实现bonding

#先停止NetworkManager
service NetworkManager stop
chkconfig NetworkManager off   //开机自启动 关闭

#虚拟主机网卡类型要一致选(桥接)模式:

#添加bonding接口:
nmcli con add type bond con-name mybond0 ifname bond0 mode active-backup
#生成的配置文件路径:
cd /etc/sysconfig/network-scripts
#配置文件名称:
ifcfg-mybond0
#如果要设置静态IP地址,修改配置文件内:
BOOTPROTO=dhcp             修改为:BOOTPROTO=static
                           新增静态ip地址:IPADDR=172.20.37.200
                           子网掩码:PREFIX=16
#新增bond0的机制及模式(Mode 1 (active-backup): 活动-备份(主备)策略,只有一个slave被激活,当且仅当活动的slave接口失败时才会激活其他slave.为了避免交换机发生混乱此时绑定的MAC地址只有一个外部端口上可见)
BONDING_OPTS="miimon=100 mode=1"

#添加从属网卡接口(我的网卡端口名称为:ens33/ens34):
nmcli con add type bond-slave ifname ens33 master bond0
nmcli con add type bond-slave ifname ens34 master bond0
#生成的配置文件路径:
cd /etc/sysconfig/network-scripts
#配置文件名称:
ifcfg-bond-slave-ens33
ifcfg-bond-slave-ens34

#重新加载网卡:
nmcli con reload

#检查bond0的链接信息:
nmcli con

#如有多余链接端口(非bond0的从属接口,直接关闭):
    [root@localhost network-scripts 10:51:15]#nmcli con
    NAME              UUID                                  TYPE      DEVICE
    mybond0           e9660986-e80b-40b2-938b-2c0b1e093a8a  bond      bond0  
    virbr0            d172ee2f-c59c-4128-9867-ee7e8a2e60c8  bridge    virbr0
    bond-slave-ens33  c5330bec-dd78-4991-81ba-7ffbb8740493  ethernet  ens33  
    bond-slave-ens34  ec9a5f9e-d7b8-4411-b813-8d7a3c407282  ethernet  ens34  
    bond-slave-ens38  4aa576a2-aef3-4852-8e2d-a5876cfff407  ethernet  ens38  
    ens33             cda2e0f9-5936-4cf3-b32d-59846c30cbd5  ethernet  --     
    ens34             61294f12-63bb-45d0-8fc3-6c6a977e0777  ethernet  --  
    #例入:ens33、ens34及virbr0属于多余,直接down,命令:
    nmcli con down ens33
#修改路径/etc/sysconfig/network-scripts/下的ens33和ens34的配置文件
#ifcfg-ens33和ifcfg-ens34文件内开机自启参数的:
ONBOOT="yes"  改修: ONBOOT="no"

#启动绑定,先启动从属接口
nmcli con up bond-slave-ens34
nmcli con up bond-slave-ens33

#启动绑定的mybond0
nmcli con up mybond0

#启动网络服务:

centos6/7:service network restart

centos8:systemctl restart NetworkManager



#配置完成查看bondo参数:
cat /proc/net/bonding/bond0

#删除bond网络
    1.nmcli connection delete bond0   删除bond0
    2.nmcli connection delete eth0   删除eth0
    3.nmcli connection delete eth1  删除eth1
    4.rmmod bonding(很重要)
#重启reboot



方法二:
在/etc/sysconfig/network-scripts/目录下建立ifcfg-bond0文件:
DEVICE=bond0
USERCTL=no
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.100.17    
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
TYPE=UnKnown    
BONDING_OPTS="miimon=80 mode=0"   

记得ifcfg-eth0和ifcfg-eth1文件记得备份出来,用于恢复:

然后分别修改ifcfg-eth0文件,如下:
DEVICE="eth0"
ONBOOT="yes"
BOOTPROTO=none:
MASTER=bond0
SLAVE=yes
USERCTL=no
在把ifcfg-eth1文件修改如下:
DEVICE="eth1"
ONBOOT="yes"
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no

在/etc/modprobe.d/目录下建立bonding.conf文件,文件内容如下:
alias bond0 bonding

执行modprobe  bonding

然后重启网络
service network restart

此命令查看绑定情况
cat/proc/net/bonding/bond0

网卡绑定解除:

删除ifcfg-bond0,/etc/modprobe.d/bonding.conf

修改ifcfg-eth0和ifcfg-eth0为绑定之前的样子

rmmod bonding(很重要)

service network restart

以上是关于linux系统多网卡热备实现高并发负载均衡的主要内容,如果未能解决你的问题,请参考以下文章

千万级高并发负载均衡软件HAproxy

如何理解Linux下的负载均衡?

Nginx+keepalived双机热备(主从模式)

linux 负载均衡

Linux平台双网卡绑定技术实现负载均衡(网卡聚合)bonding

主备切换,双机热备,负载均衡,nginx