Bond简介
生产环境必须提供 7×24 小时的网络传输服务。借助于网卡绑定技术,不仅可以提高网络传输速度,更重要的是,还可以确保在其中一块网卡出现故障时,依然可以正常提供网络服务。假设我们对两块网卡实施了绑定技术,这样在正常工作中它们会共同传输数据,使得网络传输的速度变得更快;而且即使有一块网卡突然出现了故障,另外一块网卡便会立即自动顶替上去,保证数据传输不会中断。
Bond内核网卡绑定驱动模式
常用:
mode0(平衡负载模式):平时两块网卡均工作,且自动备援,但需要在与服务器本地网卡相连的交换机设备上进行端口聚合来支持绑定技术。
mode1(自动备援模式):平时只有一块网卡工作,在它故障后自动替换为另外的网卡。
mode6(平衡负载模式):平时两块网卡均工作,且自动备援,无须交换机设备提供辅助支持。
1. mode=0 round-robin2. mode=1 active-backup3. mode=2 load balancing (xor)4. mode=3 fault-tolerance (broadcast)5. mode=4 lacp6. mode=5 transmit load balancing7. mode=6 adaptive load balancing
分别对应以下七种策略:(1)轮询策略(Round-robin policy),模式代号是0。该策略是按照设备顺序依次传输数据包,直到最后一个设备。这种模式提供负载均衡和容错能力。(2)活动备份策略(Active-backup policy),模式代号是1。该策略只有一个设备处理数据,当它宕机的时候就会由备份代替,仅提供容错能力。(3)异或策略(XOR policy),模式代号是2。该策略是根据MAC地址异或运算的结果来选择传输设备,提供负载均衡和容错能力。(4)广播策略(Broadcast policy),模式代号是3。该策略通过全部设备来传输所有数据,提供容错能力。(5)IEEE 802.3ad 动态链接聚合(IEEE 802.3ad Dynamic link aggregation),模式代号是4。该策略通过创建聚合组来共享相同的传输速度,需要交换机也支持 802.3ad 模式,提供容错能力。该模式下,网卡带宽最高可以翻倍(如从1Gbps翻到2Gbps)。(6)适配器传输负载均衡(Adaptive transmit load balancing),模式代号是5。该策略是根据当前的负载把发出的数据分给每一个设备,由当前使用的设备处理收到的数据,如果当前正用于接收数据的网卡发生故障,则由其它网卡接管,要求所用的网卡及网卡驱动可通过ethtool命令得到speed信息。本策略的通道联合不需要专用的交换机支持,提供负载均衡和容错能力。(7)适配器负载均衡(Adaptive load balancing),模式代号是6。该策略在IPV4情况下包含适配器传输负载均衡策略,由ARP协商完成接收的负载,通道联合驱动程序截获ARP在本地系统发送出的请求,用其中一个设备的硬件地址覆盖从属设备的原地址。即在策略6的基础之上,在接收数据的同时实现负载均衡,除要求ethtool命令可得到speed信息外,还要求支持对网卡MAC地址的动态修改功能。
注意:
Mode参数中的0、2、3、4模式要求交换机支持“ports group”功能并能进行相应的设置,例如在cisco中要将所连接的端口设为“port-channel”。
如果系统流量不超过单个网卡的带宽,请不要选择使用mode1之外的模式,因为负载均衡需要对流量进行计算,这对系统性能会有所损耗。
如果交换机及网卡都确认支持802.3ab,则实现负载均衡时尽量使用模式4以提高系统性能。
由于我们项目上的交换机型号不可控,且可能会更换,所以我们项目中设备绑定一般都使用mode5。
配置bond(单IP双网卡)
1、配置两块网卡配置信息
[root@CentOS ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=EthernetBOOTPROTO=none
ONBOOT=yes
DEVICE=ens33
MASTER=bond0
SLAVE=yes[root@CentOS ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens37
TYPE=EthernetBOOTPROTO=none
ONBOOT=yes
DEVICE=ens37
MASTER=bond0
SLAVE=yes
2、配置bond网卡信息
[root@CentOS ~]# vim /etc/sysconfig/network-scripts/ifcfg-bond0
TYPE=EthernetBOOTPROTO=none
ONBOOT=yes
DEVICE=bond0
IPV6INIT=no # 关闭IPv6PEERDNS=yes # 运行网卡在启动时向DHCP服务器查询DNS信息,并自动覆盖/etc/resolv.conf配置文件
IPADDR=192.168.1.210NETMASK=255.255.255.0GATEWAY=192.168.1.2DNS1=114.114.114.114DNS2=223.5.5.5
3、配置内核网卡驱动模式
[root@CentOS ~]# vim /etc/modprobe.d/bond.conf
alias bond0 bonding
options bonding mode=6 miimon=200# miimon参数:指定网卡故障时切换时间间隔时间,以ms为单位# mode参数:bonding模式
4、重启网络
[root@CentOS ~]# systemctl restart network
配置bond(双IP双网卡,不同VLAN)
1、配置两块网卡配置信息
[root@CentOS ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=EthernetPROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=no
DEFROUTE=yes
NAME=ens33
DEVICE=ens33
ONBOOT=yes
MASTER=bond0
SLAVE=yes[root@CentOS ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens37
TYPE=EthernetPROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=no
DEFROUTE=yes
NAME=ens37
DEVICE=ens37
ONBOOT=yes
MASTER=bond0
SLAVE=yes
2、配置bond网卡信息
[root@CentOS ~]# vim /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=none
IPV6INIT=no
NM_CONTROLLED=no
ONBOOT=yes
TYPE=EthernetBONDING_OPTS="mode=4 miimon=100" # 绑定模式选择
3、配置bond子网卡信息
[root@CentOS ~]# vim /etc/sysconfig/network-scripts/ifcfg-bond0.30DEVICE=bond0.30BOOTPROTO=none
NM_CONTROLLED=no
ONBOOT=yes
IPADDR=10.0.0.102NETMASK=255.255.255.0GATEWAY=10.0.0.1VLAN=yes
DNS1=223.5.5.5DNS2=114.114.114.114[root@CentOS ~]# vim /etc/sysconfig/network-scripts/ifcfg-bond0.51DEVICE=bond0.51BOOTPROTO=none
NM_CONTROLLED=no
ONBOOT=yes
IPADDR=157.0.0.202NETMASK=255.255.255.0GATEWAY=157.0.0.1VLAN=yes
DNS1=223.5.5.5DNS2=114.114.114.114
4、重启网络
[root@CentOS ~]# systemctl restart network
作者:运维猿Winter
链接:https://www.jianshu.com/p/2d5773b8e981
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。