linux 查看网口实时流速_Linux网卡bonding

一、bonding介绍

bonding(绑定)是一种linux系统下的网卡绑定技术,可以把服务器上n个物理网卡在系统内部抽象(绑定)成一个逻辑上的网卡,能够提升网络吞吐量、实现网络冗余、负载等功能,有很多优势。

bonding技术是linux系统内核层面实现的,它是一个内核模块(驱动)。使用它需要系统有这个模块, 我们可以modinfo命令查看下这个模块的信息, 一般来说都支持.

~]# modprobe --first-time bonding

~]# lsmod | grep bonding

~]# modinfo bonding

二、bonding的七种工作模式: 

bonding技术提供了七种工作模式,在使用的时候需要指定一种,每种有各自的优缺点.

  1. balance-rr (mode=0)       有高可用 (容错) 和负载均衡的功能,每块网卡轮询收发包 (流量分发比较均衡).

  2. active-backup (mode=1)  只有高可用 (容错) 功能,这种模式只有一块网卡工作, 对外只有一个mac地址。缺点是端口利用率比较低

  3. balance-xor (mode=2)     此模式提供负载平衡和容错能力.传输基于选择HASH策略,默认HASH值获取方式为(源MAC地址 XOR 目标MAC地址) % slave数量。此模式下,数据传输到特定对端将总是从同一网口进出。目的地是由MAC地址决定,所以适合在本地连接和同一端口连接的情况.如果流量只能通过单个路由器,则负载均衡将被弱化

  4. broadcast (mode=3)        通过广播策略容错,传输都通过所有slave网卡

  5. 802.3ad (mode=4)          IEEE 802.3ad 动态链路聚合策略

  6. balance-tlb (mode=5)      在每个slave上根据当前的负载(根据速度计算)分配外出流量。如果正在接受数据的slave出故障了,另一个slave接管失败的slave的MAC地址.此模式只适合内核bonding模块知悉的本地地址,不能在虚拟机桥接的网桥后端使用

  7. balance-alb (mode=6)     针对IPV4流量的接收负载均衡(receive load balance, rlb),接收负载均衡是通过ARP协商实现的,同样不能在虚拟机桥接的网桥后端使用

具体的网上有很多资料,也可参考https://www.kernel.org/doc/Documentation/networking/bonding.txt了解每种模式的特点根据自己的选择就行, 一般会用到0、1、4这几种模式。

三、bonding的七种工作模式交换机配置: 

绑定模式交换机配置
0 - balance-rr需启用以太网端口聚合(不是LACP)
1 - active-backup无需配置
2 - balance-xor需启用以太网端口聚合(不是LACP)
3 - broadcast需启用以太网端口聚合(不是LACP)
4 - 802.3ad需启用LACP链路聚合
5 - balance-tlb无需配置
6 - balance-alb无需配置

四、bonding实战配置(包含RHEL和SLES): 

RHEL:

以em1,em2为例:

修改网络配置文件:(linux服务器全部使用em1、em2两个网口进行绑定,绑定方法有版本的区别)

RHEL 5:

1、停止NetworkManager:

~]# service NetworkManager stop;chkconfig NetworkManager off

2、确保bonding模块加载,修改~]# vim /etc/modprobe.conf,加入以下:

alias bond0 bonding

3、 ~]#cd /etc/sysconfig/network-scripts,通过~]#vim ifcfg-bond0命令,修改ifcfg-bond0内容如下:

DEVICE=bond0

TYPE=Ethernet

IPADDR=>

NETMASK=<按实际情况修改>

GATEWAY=<按实际情况修改>

ONBOOT=yes

BOOTPROTO=none

USERCTL=no

NM_CONTROLLED=no

BONDING_OPTS="miimon=100 mode=1"

上面的BONDING_OPTS="mode=1 miimon=100" 表示这里配置的工作模式是mode1(active-backup), miimon表示监视网络链接的频度 (毫秒), 这里设置的是100毫秒, 根据你的需求也可以指定mode成其它的负载模式(数字和模式名字都行)。

4、通过~]#vim ifcfg-em1命令,修改ifcfg-em1内容如下:

DEVICE=em1

TYPE=Ethernet

BOOTPROTO=none

ONBOOT=yes

MASTER=bond0

SLAVE=yes

USERCTL=no

NM_CONTROLLED=no

5、通过vi ifcfg-em2命令,修改ifcfg-em2内容如下:

DEVICE=em2

TYPE=Ethernet

BOOTPROTO=none

ONBOOT=yes

MASTER=bond0

SLAVE=yes

USERCTL=no

NM_CONTROLLED=no

6、重启网络服务

~]# service network restart

7、查看绑定结果

a)     查看bonding模块是否已加载

~]# lsmod | grep bonding

b)    查看已经配置的绑定接口

~]# ifconfig

~]# cat /sys/class/net/bonding_masters

c)     查看已经配置的绑定接口模式

~]# more /sys/class/net/bond0/bonding/mode

RHEL 6,7:

1、停止NetworkManager:

RHEL6:

~]# service NetworkManager stop;chkconfig NetworkManager off

RHEL7:

~]# systemctl stop NetworkManager;systemctl disable NetworkManager

2、 ~]#cd /etc/sysconfig/network-scripts,通过~]#vim ifcfg-bond0命令,修改ifcfg-bond0内容如下:

DEVICE=bond0

TYPE=Ethernet

IPADDR=>

NETMASK=>

GATEWAY=>

ONBOOT=yes

BOOTPROTO=none

USERCTL=no

NM_CONTROLLED=no

BONDING_OPTS="miimon=100 mode=1"

3、通过~]#vim ifcfg-em1命令,修改ifcfg-em1内容如下:

DEVICE=em1

TYPE=Ethernet

BOOTPROTO=none

ONBOOT=yes

MASTER=bond0

SLAVE=yes

USERCTL=no

NM_CONTROLLED=no

4、通过vi ifcfg-em2命令,修改ifcfg-em2内容如下:

DEVICE=em2

TYPE=Ethernet

BOOTPROTO=none

ONBOOT=yes

MASTER=bond0

SLAVE=yes

USERCTL=no

NM_CONTROLLED=no

5、重启网络服务

RHEL6:

~]# service network restart

RHEL7:

~]# systemctl restart network

6、查看绑定结果

a)     查看bonding模块是否已加载

~]# lsmod | grep bonding

b)    查看已经配置的绑定接口

~]# ifconfig

~]# cat /sys/class/net/bonding_masters

c)     查看已经配置的绑定接口模式

~]# more /sys/class/net/bond0/bonding/mode

7、网卡绑定切换测试

~]# ifenslave -c bond0 ethX(ethX 为新主网卡)

SLES10,11,12:

1、停止NetworkManager:

SLES10,11:

~]# service NetworkManager stop;chkconfig NetworkManager off

 SLES 12:

~]# systemctl stop NetworkManager;systemctl disable NetworkManager

2、 ~]#cd /etc/sysconfig/network,通过~]#vim ifcfg-bond0命令,修改ifcfg-bond0内容如下:

BONDING_MASTER='yes'

BONDING_MODULE_OPTS='mode=active-backup miimon=100'

BONDING_SLAVE0='eth0'

BONDING_SLAVE1='eth1'

BOOTPROTO='static'

IPADDR='''

STARTMODE='auto'

USERCONTROL='no'

3、通过~]#vim ifcfg-eth0命令,修改ifcfg-eth0内容如下:

BOOTPROTO='none'

NAME='82599EB10-Gigabit Network Connection'    #根据网卡型号不同

STARTMODE='hotplug'

USERCONTROL='no'

4、通过vi ifcfg-eth1命令,修改ifcfg-eth1内容如下:

BOOTPROTO='none'

NAME='82599EB10-Gigabit Network Connection'    #根据网卡型号不同

STARTMODE='hotplug'

USERCONTROL='no'

5、重启网络服务

~]# service network restart

6、查看绑定结果

a)     查看bonding模块是否已加载

~]# lsmod | grep bonding

b)    查看已经配置的绑定接口

~]# ifconfig

~]# cat /sys/class/net/bonding_masters

c)     查看已经配置的绑定接口模式

~]# more /sys/class/net/bond0/bonding/mode

7、网卡绑定切换测试

~]# ifenslave -c bond0 ethX(ethX 为新主网卡)

如有兴趣可加个人微信,原创不容易,请关注点赞转发,感谢各位看官支持!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值