多网卡绑定-负载均衡.doc_第1页
多网卡绑定-负载均衡.doc_第2页
多网卡绑定-负载均衡.doc_第3页
多网卡绑定-负载均衡.doc_第4页
多网卡绑定-负载均衡.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

保持服务器的高可用性是企业级IT环境的重要因素。其中最重要的一点是服务器网络连接的高可用性。网卡(NIC)绑定技术有助于保证高可用性特性并提供其它优势以提高网络性能。双网卡绑定实现就是使用两块网卡虚拟成为一块网卡,这个聚合起来的设备看起来是一个单独的以太网接口设备,通俗点讲就是两块网卡具有相同的IP地址而并行链接聚合成一个逻辑链路工作。其实这项技术在Sun和Cisco中早已存在,被称为Trunking和Etherchannel技术,在Linux的2.4.x的内核中也采用这这种技术,被称为bonding。bonding技术的最早应用是在集群beowulf上,为了提高集群节点间的数据传输而设计的。下面我们讨论一下bonding的原理,什么是bonding需要从网卡的混杂(promisc)模式说起。我们知道,在正常情况下,网卡只接收目的硬件地址(MACAddress)是自身Mac的以太网帧,对于别的数据帧都滤掉,以减轻驱动程序的负担。但是网卡也支持另外一种被称为混杂promisc的模式,可以接收网络上所有的帧,比如说tcpdump,就是运行在这个模式下。bonding也运行在这个模式下,而且修改了驱动程序中的mac地址,将两块网卡的Mac地址改成相同,可以接收特定mac的数据帧。然后把相应的数据帧传送给bond驱动程序处理。详细信息请参考RedHat中Bonding实验的操作系统是RedhatLinuxEnterpriseAS3绑定的前提条件:芯片组型号相同,而且网卡应该具备自己独立的BIOS芯片。双网卡邦定的拓朴图(见附件)1.编辑虚拟网络接口配置文件,指定网卡IPvi/etc/sysconfig/network-scripts/ifcfg-bond0rootrhas-13root#cp/etc/sysconfig/network-scripts/ifcfg-eth0ifcfg-bond02#viifcfg-bond0将第一行改成DEVICE=bond0#catifcfg-bond0DEVICE=bond0BOOTPROTO=staticIPADDR=3NETMASK=BROADCAST=54ONBOOT=yesTYPE=Ethernet这里要主意,不要指定单个网卡的IP地址、子网掩码或网卡ID。将上述信息指定到虚拟适配器(bonding)中即可。rootrhas-13network-scripts#catifcfg-eth0DEVICE=eth0ONBOOT=yesBOOTPROTO=dhcprootrhas-13network-scripts#catifcfg-eth1DEVICE=eth0ONBOOT=yesBOOTPROTO=dhcp3#vi/etc/modules.conf编辑/etc/modules.conf文件,加入如下一行内容,以使系统在启动时加载bonding模块,对外虚拟网络接口设备为bond0加入下列两行aliasbond0bondingoptionsbond0miimon=100mode=1说明:miimon是用来进行链路监测的。比如:miimon=100,那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路;mode的值表示工作模式,他共有0,1,2,3四种模式,常用的为0,1两种。mode=0表示loadbalancing(round-robin)为负载均衡方式,两块网卡都工作。mode=1表示fault-tolerance(active-backup)提供冗余功能,工作方式是主备的工作方式,也就是说默认情况下只有一块网卡工作,另一块做备份.bonding只能提供链路监测,即从主机到交换机的链路是否接通。如果只是交换机对外的链路down掉了,而交换机本身并没有故障,那么bonding会认为链路没有问题而继续使用4#vi/etc/rc.d/rc.local加入两行ifenslavebond0eth0eth1routeadd-net54netmaskbond0到这时已经配置完毕重新启动机器.重启会看见以下信息就表示配置成功了.Bringingupinterfacebond0OKBringingupinterfaceeth0OKBringingupinterfaceeth1OK.下面我们讨论以下mode分别为0,1时的情况mode=1工作在主备模式下,这时eth1作为备份网卡是noarp的rootrhas-13network-scripts#ifconfig验证网卡的配置信息bond0Linkencap:EthernetHWaddr00:0E:7F:25:D9:8Binetaddr:3Bcast:55Mask:UPBROADCASTRUNNINGMASTERMULTICASTMTU:1500Metric:1RXpackets:18495errors:0dropped:0overruns:0frame:0TXpackets:480errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:0RXbytes:1587253(1.5Mb)TXbytes:89642(87.5Kb)eth0Linkencap:EthernetHWaddr00:0E:7F:25:D9:8Binetaddr:3Bcast:55Mask:UPBROADCASTRUNNINGSLAVEMULTICASTMTU:1500Metric:1RXpackets:9572errors:0dropped:0overruns:0frame:0TXpackets:480errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:1000RXbytes:833514(813.9Kb)TXbytes:89642(87.5Kb)Interrupt:11eth1Linkencap:EthernetHWaddr00:0E:7F:25:D9:8Binetaddr:3Bcast:55Mask:UPBROADCASTRUNNINGNOARPSLAVEMULTICASTMTU:1500Metric:1RXpackets:8923errors:0dropped:0overruns:0frame:0TXpackets:0errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:1000RXbytes:753739(736.0Kb)TXbytes:0(0.0b)Interrupt:15那也就是说在主备模式下,当一个网络接口失效时(例如主交换机掉电等),不回出现网络中断,系统会按照cat/etc/rc.d/rc.local里指定网卡的顺序工作,机器仍能对外服务,起到了失效保护的功能.在mode=0负载均衡工作模式,他能提供两倍的带宽,下我们来看一下网卡的配置信息rootrhas-13root#ifconfigbond0Linkencap:EthernetHWaddr00:0E:7F:25:D9:8Binetaddr:3Bcast:55Mask:UPBROADCASTRUNNINGMASTERMULTICASTMTU:1500Metric:1RXpackets:2817errors:0dropped:0overruns:0frame:0TXpackets:95errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:0RXbytes:226957(221.6Kb)TXbytes:15266(14.9Kb)eth0Linkencap:EthernetHWaddr00:0E:7F:25:D9:8Binetaddr:3Bcast:55Mask:UPBROADCASTRUNNINGSLAVEMULTICASTMTU:1500Metric:1RXpackets:1406errors:0dropped:0overruns:0frame:0TXpackets:48errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:1000RXbytes:113967(111.2Kb)TXbytes:7268(7.0Kb)Interrupt:11eth1Linkencap:EthernetHWaddr00:0E:7F:25:D9:8Binetaddr:3Bcast:55Mask:UPBROADCASTRUNNINGSLAVEMULTICASTMTU:1500Metric:1RXpackets:1411errors:0dropped:0overruns:0frame:0TXpackets:47errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:1000RXbytes:112990(110.3Kb)TXbytes:7998(7.8Kb)Interrupt:15在这种情况下出现一块网卡失效,仅仅会是服务器出口带宽下降,也不会影响网络使用.通过查看bond0的工作状态查询能详细的掌握bonding的工作状态rootrhas-13bonding#cat/proc/net/bonding/bond0bonding.c:v2.4.1(September15,2003)BondingMode:loadbalancing(round-robin)MIIStatus:upMIIPollingInterval(ms):0UpDelay(ms):0DownDelay(ms):0MulticastMode:allslavesSlaveInterface:eth1MIIStatus:upLinkFailureCount:0PermanentHWaddr:00:0e:7f:25:d9:8aSlaveInterface:eth0MIIStatus:upLinkFailureCount:0PermanentHWaddr:00:0e:7f:25:d9:8b本文出自 51CTO.COM技术博客查看( 464 ) / 评论( 2 ) / 评分( 5 / 0 ) 1 实验环境操作系统:CentOS Linux 5(Kernel:2.6.18-53.el5)网卡说明:双网卡(非同品牌型号)名字分别为eth0、eth1网络设置:01/242 配置方法2.1 相关文件/etc/sysconfig/network-scripts/ifcfg-bond0/etc/sysconfig/network-scripts/ifcfg-eth0/etc/sysconfig/network-scripts/ifcfg-eth1/etc/modprobe.conf/etc/rc.local/proc/net/bonding/bond02.2 开始配置1.备份eth0、eth1配置文件# cd /etc/sysconfig/network-scripts# cp ifcfg-eth0 bak.ifcfg-eth0# cp ifcfg-eth1 bak.ifcfg-eth12.建立ifcfg-bond0# vi ifcfg-bond0加入如下内容:DEVICE=bond0ONBOOT=yesBOOTPROTO=noneBROADCAST=55IPADDR=01NETMASK=GATEWAY=3.编辑ifcfg-eth0# vi ifcfg-eth0加入如下内容覆盖原有内容:DEVICE=eth0TYPE=EthernetONBOOT=yesBOOTPROTO=noneMASTER=bond0SLAVE=yesHWADDR=00:16:EC:AE:07:544.编辑ifcfg-eth1# vi ifcfg-eth1加入如下内容覆盖原有内容:DEVICE=eth1TYPE=EthernetONBOOT=yesBOOTPROTO=noneMASTER=bond0SLAVE=yesHWADDR= 00:50:BA:0C:65:025.编辑modprobe.conf# cd /etc# vi modprobe.conf追加如下内容:alias bond0 bondingoptions bond0 miimon=100 mode=1说明:miimon表示链路检查间隔,单位为毫秒;mode的值表示工作模式,他共有0、1、2、3、4、5、6七种模式,0模式:负载均衡模式,RR方式,全负载均衡,需要Switch侧做Trunk,可失效一网卡;1模式:热备模式,不需要Switch侧支持;2模式:负载均衡模式,XOR方式,根据来源MAC;3模式:广播模式,所有网卡一起收发数据包,可失效一网卡;4模式:802.3ad模式,需要Switch支持802.3ad Dynamic Link Aggregation;5模式:负载均衡模式,TLB方式,半负载均衡,发送为负载均衡,接收为动态分配,不需要Switch侧支持,可失效一网卡;6模式:负载均衡模式,ALB方式,全负载均衡,网卡需支持动态更改MAC,不需要Switch侧支持,可失效一网卡;常用的为0,1两种。6.编辑rc.local# vi rc.local追加如下内容:ifenslave bond0 eth0 eth1route add -net netmask bond03 结果测试重启服务器,在开机加载服务有如下提示输出则说明模块成功加载。Bringing up interface bond0 OK Bringing up interface eth0 OK Bringing up interface eth1 OK 3.1 查看IP配置输出信息应该与下方的输出类似# ifconfig -abond0 Link encap:Ethernet HWaddr 00:16:EC:AE:07:54 inet addr:01 Bcast:55 Mask: inet6 addr: fe80:216:ecff:feae:754/64 Scope:Link UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1 RX packets:10452933 errors:0 dropped:0 overruns:0 frame.:0 TX packets:2245803 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:2313966546 (2.1 GiB) TX bytes:1240415537 (1.1 GiB)eth0 Link encap:Ethernet HWaddr 00:16:EC:AE:07:54 inet6 addr: fe80:216:ecff:feae:754/64 Scope:Link UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1 RX packets:10353385 errors:0 dropped:0 overruns:0 frame.:0 TX packets:2245519 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2305237371 (2.1 GiB) TX bytes:1240369619 (1.1 GiB) Interrupt:225 Base address:0xc800 eth1 Link encap:Ethernet HWaddr 00:16:EC:AE:07:54 inet6 addr: fe80:216:ecff:feae:754/64 Scope:Link UP BROADCAST SLAVE MULTICAST MTU:1500 Metric:1 RX packets:99554 errors:0 dropped:0 overruns:0 frame.:0 TX packets:291 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:8729599 (8.3 MiB) TX bytes:47044 (45.9 KiB) Interrupt:217 Base address:0xac00 lo Link encap:Local Loopback inet addr: Mask: inet6 addr: :1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:12133 errors:0 dropped:0 overruns:0 frame.:0 TX packets:12133 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:18922380 (18.0 MiB) TX bytes:18922380 (18.0 MiB)3.2 网关连通状态# ping PING () 56(84) bytes of data.64 bytes from : icmp_seq=1 ttl=255 time=0.608 ms64 bytes from : icmp_seq=2 ttl=255 time=0.593 ms64 bytes from : icmp_seq=3 ttl=255 time=0.800 ms64 bytes from : icmp_seq=4 ttl=255 time=0.515 ms- ping statistics -4 packets transmitted, 4 received, 0% packet loss, time 3000msrtt min/avg/max/mdev = 0.515/0.629/0.800/0.104 ms3.3 查看bond0状态# cat /proc/net/bonding/bond0Ethernet Channel Bonding Driver: v3.1.2 (January 20, 2007)Bonding Mode: fault-tolerance (active-backup)Primary Slave: NoneCurrently Active Slave: eth0MII Status: upMII Polling Interval (ms): 100Up Delay (ms): 0Down Delay (ms): 0Slave Interface: eth0MII Status: upLink Failure Count: 1Permanent HW addr: 00:16:ec:ae:07:54Slave Interface: eth1MII Status: downLink Failure Count: 2Permanent HW addr: 00:50:ba:0c:65:023.4 Bond迁移状态在同一网段用一台机器持续ping Bonding主机,然后拔掉eth0的网线,同时使用其他网络接入服务。# ping 01Pinging 01 with 32 bytes of data:Reply from 01: bytes=32 time1ms TTL=64Reply from 01: bytes=32 time1ms TTL=64Reply from 01: bytes=32 time1ms TTL=64Reply from 01: bytes=32 time1ms TTL=64Reply from 01: bytes=32 time=3ms TTL=64Reply from 01: bytes=32 time

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论