端口聚合测试方法

上传人:豆浆 文档编号:31928444 上传时间:2018-02-09 格式:DOC 页数:11 大小:704.50KB
返回 下载 相关 举报
端口聚合测试方法_第1页
第1页 / 共11页
端口聚合测试方法_第2页
第2页 / 共11页
端口聚合测试方法_第3页
第3页 / 共11页
端口聚合测试方法_第4页
第4页 / 共11页
端口聚合测试方法_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《端口聚合测试方法》由会员分享,可在线阅读,更多相关《端口聚合测试方法(11页珍藏版)》请在金锄头文库上搜索。

1、一、 什么是 bondingLinux bonding 驱动提供了一个把多个网络接口设备捆绑为单个的网络接口设置来使用,用于网络负载均衡及网络冗余二、bonding 应用方向1、网络负载均衡对于 bonding 的网络负载均衡是我们在文件服务器中常用到的,比如把三块网卡,当做一块来用,解决一个 IP 地址,流量过大,服务器网络压力过大的问 题。对于文件服务器来说,比如 NFS 或 SAMBA 文件服务器,没有任何一个管理员会把内部网的文件服务器的 IP 地址弄很多个来解决网络负载的问题。如果在 内网中,文件服务器为了管理和应用上的方便,大多是用同一个 IP 地址。对于一个百 M 的本地网络来说

2、,文件服务器在多 个用户同时使用的情况下,网络压力是极大的,特别是 SAMABA 和 NFS 服务器。为了解决同一个 IP 地址,突破流量的限制,毕竟网线和网卡对数据的吞吐量 是有限制的。如果在有限的资源的情况下,实现网络负载均衡,最好的办法就是 bonding 2、网络冗余对于服务器来说,网络设备的稳定也是比较重要的,特别是网卡。在生产型的系统中,网卡的可靠性就更为重要了。在生产型的系统中,大多通过硬件设备的冗余来 提供服务器的可靠性和安全性,比如电源。bonding 也能为网卡提供冗余的支持。把多块网卡绑定到一个 IP 地址,当一块网卡发生物理性损坏的情况下,另一块网卡自动启用,并提供正常

3、的服务,即:默认情况下只有 一块网卡工作,其它网卡做备份二、 bonding 实验环境及配置1、实验环境系统为:CentOS,使用 4 块网卡( eth0、eth1 = bond0;eth2 、eth3 = bond1)来实现 bonding 技术2、bonding 配置第一步:先查看一下内核是否已经支持 bonding1)如果内核已经把 bonding 编译进内核,那么要做的就是加载该模块到当前内核;其次查看 ifenslave 该工具是否也已经编译modprobe -l bond* 或者 modinfo bondingmodprobe bondinglsmod | grep bonding

4、echo modprobe bonding & /dev/null /etc/rc.local(开机自动加载 bonding 模块到内核)which ifenslave2)如果 bonding 还没有编译进内核,那么要做的就是编译该模块到内核(1)编译 bondingtar -jxvf kernel-XXX.tar.gzcd kernel-XXXmake menuconfig选择 Network device support - Bonding driver support make bzImagemake modules & make modules_installmake install(

5、2)编译 ifenslave 工具gcc -Wall -O -I kernel-XXX/include ifenslave.c -o ifenslave第二步:主要有两种可选择(第 1 种:实现网络负载均衡,第 2 种:实现网络冗余)例 1:实现网络冗余(即:mod=1 方式,使用 eth0 与 eth1)(1)编辑虚拟网络接口配置文件(bond0) ,并指定网卡 IPvi /etc/sysconfig/network-scripts/ifcfg-bond0DEVICE=bond0ONBOOT=yesBOOTPROTO=staticIPADDR=192.168.0.254BROADCAST=1

6、92.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

7、=noneONBOOT=yesUSERCTL=noMASTER=bond0SLAVE=yes注意:建议不要指定 MAC 地址(2)编辑模块载入配置文件(/etc/modprobe.conf) ,开机 自动加载 bonding 模块到内核vi /etc/modprobe.confalias bond0 bonding options bond0 miimon=100 mode=1alias net-pf-10 off #关闭 ipv6 支持说明:miimon 是用来进行链路监测的。 比如:miimon=100,那么系统每 100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路;mo

8、de 的值表示工作模式,他共有 0,1,2,3,4,5,6 六种模式,常用为 0,6,1 三种,具体后面会介绍 mode=0,表示 load balancing (round-robin)为负载均衡方式,两块网卡都工作,但是与网卡相连的交换必须做特殊配置( 这两个端口应该采取聚合方式) ,因为做 bonding的这两块网卡是使用同一个 MAC 地址mode=6,表示 load balancing (round-robin)为负载均衡方式,两块网卡都工作,但是该模式下无需配置交换机,因为做 bonding 的这两块 网卡是使用不同的 MAC 地址mode=1,表示 fault-tolerance

9、 (active-backup)提供冗余功能,工作方式是主备的工作方式,也就是说默认情况下只有一 块网卡工作,另一块做备份 注意:bonding 只能提供链路监测,即从主机到交换机的链路是否接通。如果只是交换机对外的链路 down 掉了,而交换机本身并没有故障,那么 bonding 会认为链路没有问题而继续使用(4)重启并测试第一:由于 bonding 使用的模式为 mod=1(网络冗余) ,所以 eth0、eth1 与虚拟的bond0 同一个 MAC 地址注意:对比上面这两个图,可知 mode=1 模式下,eth0 与 eth1 这两块网卡,只有一块网卡在工作(即:eth0) ,因为 eth

10、1 网卡的 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 ) , 如下:alias bond0 bonding o

11、ptions bond0 miimon=100 mode=0(1)测试如下#目前两块网卡都处于连接状态rootWeb:# ifconfig | grep eth | awk print $1eth0eth1#禁用了网卡 eth0,用 ping 指令测试反之,也是一样的!例 3:实现网络负载均衡和网络冗余(即:mod=6 方式,使用 eth0 与 eth1,其中 eth0 设置为 primay)跟例 1 的步骤一样,只需要修改模块载入配置文件(/etc/modprobe.conf ) , 如下:alias bond0 bonding options bond0 miimon=100 mode=6

12、上图可知:mode=6 时,eth0 与 eth1 所使用的 MAC 是不一样的(1)测试如下#目前两块网卡都处于连接状态rootWeb:# ifconfig | grep eth | awk print $1eth0eth1#禁用了网卡 eth0,用 ping 指令测试四、bonding 运用的注意事项1、bonding 的模式:0-6,即:7 种模式第一种模式:mod=0 ,即: (balance-rr) Round-robin policy(平衡抡循环策略)特点:传输数据包顺序是依次传输(即:第 1 个包走 eth0,下一个包就走 eth1.一直循环下去,直 到最后一个传输完毕) , 此

13、模式提供负载平衡和容错能力;但是我们知道如果一个连接或者会话的数据包从不同的接口发出的话,中途再经过不同的链路,在客户端很有可能会出现数据包无序到达的问题,而无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降。第二种模式:mod=1 ,即: (active-backup) Active-backup policy(主- 备份策略)特点:只有一个设备处于活动状态,当 一个宕掉另一个马上由备份转换为主设备。mac 地址是外部可见得,从外面看来,bond 的 MAC 地址是唯一的,以避免 switch(交换机)发生混乱。此模式只提供了容错能力;由此可见此算法的优点是可以提供高网络连接的可用

14、性,但是它的资源利用率较低,只有一个接口处于工作状态,在有 N 个网络接口的情况下,资源利用率为 1/N第三种模式:mod=2 ,即:(balance-xor) XOR policy(平衡策略)特点:基于指定的传输 HASH 策略传输数据包。缺省的策略是:( 源 MAC 地址 XOR 目标MAC 地址) % slave 数量。其他的传输策略可以通过 xmit_hash_policy 选项指定,此模式提供负载平衡和容错能力第四种模式:mod=3 ,即:broadcast (广播策略)特点:在每个 slave 接口上传输每个数据包,此模式提供了容错能力第五种模式:mod=4 ,即:(802.3ad

15、) IEEE 802.3ad Dynamic link aggregation(IEEE 802.3ad 动态链接聚合)特点:创建一个聚合组,它们共享同样的速率和双工设定。根据 802.3ad 规范将多个 slave工作在同一个激活的聚合体下。外出流量的 slave 选举是基于传输 hash 策略,该策略可以通过 xmit_hash_policy 选项从缺省的 XOR 策略改变到其他策略。需要注意的 是,并不是所有的传输策略都是 802.3ad 适应的,尤其考虑到在 802.3ad 标准 43.2.4 章节提及的包乱序问题。不同的实现可能会有不同的适应 性。必要条件:条件 1:ethtool

16、支持获取每个 slave 的速率和双工设定条件 2:switch(交换机) 支持 IEEE 802.3ad Dynamic link aggregation条件 3:大多数 switch(交换机)需要经过特定配置才能支持 802.3ad 模式第六种模式:mod=5 ,即:(balance-tlb) Adaptive transmit load balancing(适配器传输负载均衡)特点:不需要任何特别的 switch(交换机)支持的通道 bonding。在每个 slave 上根据当前的负载(根据速度计算)分配外出流量。如果正在接受 数据的 slave 出故障了,另一个 slave接管失败的 slave 的 MAC 地址。该模式的必要条件:ethtool 支持获取每个 slave 的速率第七种模式:mod=

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号