linuxbondconfig.docx

上传人:b****2 文档编号:2454988 上传时间:2022-10-29 格式:DOCX 页数:5 大小:21.02KB
下载 相关 举报
linuxbondconfig.docx_第1页
第1页 / 共5页
linuxbondconfig.docx_第2页
第2页 / 共5页
linuxbondconfig.docx_第3页
第3页 / 共5页
linuxbondconfig.docx_第4页
第4页 / 共5页
linuxbondconfig.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

linuxbondconfig.docx

《linuxbondconfig.docx》由会员分享,可在线阅读,更多相关《linuxbondconfig.docx(5页珍藏版)》请在冰豆网上搜索。

linuxbondconfig.docx

linuxbondconfig

一、什么是bondingLinuxbonding驱动提供了一个把多个网络接口设备捆绑为单个的网络接口设置来使用,用于网络负载均衡及网络冗余

二、bonding应用方向

1、网络负载均衡对于bonding的网络负载均衡是我们在文件服务器中常用到的,比如把三块网卡,当做一块来用,解决一个IP地址,流量过大,服务器网络压力过大的问题。

对于文件服务器来说,比如NFS或SAMBA文件服务器,没有任何一个管理员会把内部网的文件服务器的IP地址弄很多个来解决网络负载的问题。

如果在内网中,文件服务器为了管理和应用上的方便,大多是用同一个IP地址。

对于一个百M的本地网络来说,文件服务器在多个用户同时使用的情况下,网络压力是极大的,特别是SAMABA和NFS服务器。

为了解决同一个IP地址,突破流量的限制,毕竟网线和网卡对数据的吞吐量是有限制的。

如果在有限的资源的情况下,实现网络负载均衡,最好的办法就是bonding

 2、网络冗余对于服务器来说,网络设备的稳定也是比较重要的,特别是网卡。

在生产型的系统中,网卡的可靠性就更为重要了。

在生产型的系统中,大多通过硬件设备的冗余来提供服务器的可靠性和安全性,比如电源。

bonding也能为网卡提供冗余的支持。

把多块网卡绑定到一个IP地址,当一块网卡发生物理性损坏的情况下,另一块网卡自动启用,并提供正常的服务,即:

默认情况下只有一块网卡工作,其它网卡做备份

三、bonding实验环境及配置

1、实验环境系统为:

CentOS,使用4块网卡(eth0、eth1==>bond0;eth2、eth3==>bond1)来实现bonding技术

2、bonding配置第一步:

先查看一下内核是否已经支持bonding

1)如果内核已经把bonding编译进内核,那么要做的就是加载该模块到当前内核;其次查看ifenslave该工具是否也已经编译modprobe-lbond*或者modinfobondingmodprobebondinglsmod|grep'bonding'echo'modprobebonding&>/dev/null'>>/etc/rc.local(开机自动加载bonding模块到内核)whichifenslave注意:

默认内核安装完后就已经支持bonding模块了,无需要自己手动编译

2)如果bonding还没有编译进内核,那么要做的就是编译该模块到内核

(1)编译bondingtar-jxvfkernel-XXX.tar.gzcdkernel-XXXmakemenuconfig选择"Networkdevicesupport"->"Bondingdriversupport"makebzImagemakemodules&&makemodules_installmakeinstall

(2)编译ifenslave工具gcc-Wall-O-Ikernel-XXX/includeifenslave.c-oifenslave

第二步:

主要有两种可选择(第1种:

实现网络负载均衡,第2种:

实现网络冗余)

例1:

实现网络冗余(即:

mod=1方式,使用eth0与eth1)

(1)编辑虚拟网络接口配置文件(bond0),并指定网卡IPvi/etc/sysconfig/network-scripts/ifcfg-bond0DEVICE=bond0ONBOOT=yesBOOTPROTO=staticIPADDR=192.168.0.254BROADCAST=192.168.0.255NETMASK=255.255.255.0NETWORK=192.168.0.0GATEWAY=192.168.0.1USERCTL=noTYPE=Ethernet注意:

建议不要指定MAC地址vi/etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0BOOTPROTO=noneONBOOT=yesUSERCTL=noMASTER=bond0SLAVE=yes注意:

建议不要指定MAC地址vi/etc/sysconfig/network-scripts/ifcfg-eth1DEVICE=eth1BOOTPROTO=noneONBOOT=yesUSERCTL=noMASTER=bond0SLAVE=yes注意:

建议不要指定MAC地址

(2)编辑模块载入配置文件(/etc/modprobe.conf),开机自动加载bonding模块到内核

vi/etc/modprobe.conf

aliasbond0bonding optionsbond0miimon=100mode=1

aliasnet-pf-10off#关闭ipv6支持说明:

miimon是用来进行链路监测的。

比如:

miimon=100,那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路;mode的值表示工作模式,他共有0,1,2,3,4,5,6六种模式,常用为0,6,1三种,具体后面会介绍 mode=0,表示loadbalancing(round-robin)为负载均衡方式,两块网卡都工作,但是与网卡相连的交换必须做特殊配置( 这两个端口应该采取聚合方式),因为做bonding的这两块网卡是使用同一个MAC地址mode=6,表示loadbalancing(round-robin)为负载均衡方式,两块网卡都工作,但是该模式下无需配置交换机,因为做bonding的这两块网卡是使用不同的MAC地址mode=1,表示fault-tolerance(active-backup)提供冗余功能,工作方式是主备的工作方式,也就是说默认情况下只有一块网卡工作,另一块做备份 注意:

bonding只能提供链路监测,即从主机到交换机的链路是否接通。

如果只是交换机对外的链路down掉了,而交换机本身并没有故障,那么bonding会认为链路没有问题而继续使用

(4)重启并测试

第一:

由于bonding使用的模式为mod=1(网络冗余),所以eth0、eth1与虚拟的bond0同一个MAC地址注意:

对比上面这两个图,可知mode=1模式下,eth0与eth1这两块网卡,只有一块网卡在工作(即:

eth0),因为eth1网卡的RX与TX都没有在发生变化

第二:

测试,用ping指令ping虚拟网卡设备bond0的IP地址(192.168.0.254),然后禁用eth0设备看一下能够继续ping的通说明:

如上图可得到,断开eth0(上图的右下角),还是可以ping的通的

例2:

实现网络负载均衡和网络冗余(即:

mod=0方式,使用eth0与eth1)注意:

VM中只能做mode=1的实验,其它的工作模式得用真机来实践跟例1的步骤一样,只需要修改模块载入配置文件(/etc/modprobe.conf),如下:

aliasbond0bonding optionsbond0miimon=100 mode=0

(1)测试如下##目前两块网卡都处于连接状态root@Web:

~#ifconfig|grep'eth'|awk'{print$1}'eth0eth1##禁用了网卡eth0,用ping指令测试反之,也是一样的!

例3:

实现网络负载均衡和网络冗余(即:

mod=6方式,使用eth0与eth1,其中eth0设置为primay)跟例1的步骤一样,只需要修改模块载入配置文件(/etc/modprobe.conf),如下:

aliasbond0bonding optionsbond0miimon=100 mode=6上图可知:

mode=6时,eth0与eth1所使用的MAC是不一样的

(1)测试如下##目前两块网卡都处于连接状态root@Web:

~#ifconfig|grep'eth'|awk'{print$1}'eth0eth1##禁用了网卡eth0,用ping指令测试

四、bonding运用的注意事项1、bonding的模式:

0-6,即:

7种模式第一种模式:

mod=0,即:

(balance-rr)Round-robinpolicy(平衡抡循环策略)特点:

传输数据包顺序是依次传输(即:

第1个包走eth0,下一个包就走eth1....一直循环下去,直到最后一个传输完毕), 此模式提供负载平衡和容错能力;但是我们知道如果一个连接或者会话的数据包从不同的接口发出的话,中途再经过不同的链路,在客户端很有可能会出现数据包无序到达的问题,而无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降第二种模式:

mod=1,即:

(active-backup)Active-backuppolicy(主-备份策略)特点:

只有一个设备处于活动状态,当一个宕掉另一个马上由备份转换为主设备。

mac地址是外部可见得,从外面看来,bond的MAC地址是唯一的,以避免switch(交换机)发生混乱。

此模式只提供了容错能力;由此可见此算法的优点是可以提供高网络连接的可用性,但是它的资源利用率较低,只有一个接口处于工作状态,在有N个网络接口的情况下,资源利用率为1/N第三种模式:

mod=2,即:

(balance-xor)XORpolicy(平衡策略)特点:

基于指定的传输HASH策略传输数据包。

缺省的策略是:

(源MAC地址XOR目标MAC地址)%slave数量。

其他的传输策略可以通过xmit_hash_policy选项指定,此模式提供负载平衡和容错能力第四种模式:

mod=3,即:

broadcast(广播策略)特点:

在每个slave接口上传输每个数据包,此模式提供了容错能力第五种模式:

mod=4,即:

(802.3ad)IEEE802.3adDynamiclinkaggregation(IEEE802.3ad动态链接聚合)特点:

创建一个聚合组,它们共享同样的速率和双工设定。

根据802.3ad规范将多个slave工作在同一个激活的聚合体下。

外出流量的slave选举是基于传输hash策略,该策略可以通过xmit_hash_policy选项从缺省的XOR策略改变到其他策略。

需要注意的是,并不是所有的传输策略都是802.3ad适应的,尤其考虑到在802.3ad标准43.2.4章节提及的包乱序问题。

不同的实现可能会有不同的适应性。

必要条件:

条件1:

ethtool支持获取每个slave的速率和双工设定;条件2:

switch(交换机)支持IEEE802.3adDynamiclinkaggregation;条件3:

大多数switch(交换机)需要经过特定配置才能支持802.3ad模式第六种模式:

mod=5,即:

(balance-tlb)Adaptivetransmitloadbalancing(适配器传输负载均衡)特点:

不需要任何特别的switch(交换机)支持的通道bonding。

在每个slave上根据当前的负载(根据速度计算)分配外出流量。

如果正在接受数据的slave出故障了,另一个slave接管失败的slave的MAC地址。

该模式的必要条件:

ethtool支持获取每个slave的速率第七种模式:

mod=6,即:

(balance-alb)Adaptiveloadbalancing(适配器适应性负载均衡)特点:

该模式包含了balance-tlb模式,同时加上针对IPV4流量的接收负载均衡(receiveloadbalance,rlb),而且不需要任何switch(交换机)的支持。

接收负载均衡是通过ARP协商实现的。

bonding驱动截获本机发送的ARP应答,并把源硬件地址改写为bond中某个slave的唯一硬件地址,从而使得不同的对端使用不同的硬件地址进行通信。

来自服务器端的接收流

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 交通运输

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1