摘 要 负载均衡技术的使用能够在不对网络中各种设备进行重大改造的条件下提高各种服务的质量,是解决当前网络业务迅猛增加和升级硬件设施之间矛盾的一个有效措施,本文简单描述了关于负载均衡方面的研究现状,重点介绍了现今linux bonding技术及其基于bonding技术的几种负载均衡的算法,并对此进行了简要的分析与研究,提出了其不足之处,针对这些不足提出了一种多网卡情况下基于传输协议的发送方面的算法,并对此进行了简单的实现,最后对此进行了测试,测试结果表明该方法的可用性。
关键词 linux bonding; 传输协议;负载均衡;高可用性;
1 引言
现今几乎各行各业内部都建立了自己的服务器,由于服务器的特殊地位,它的可靠性、可用性及其I/O速度就显得非常的重要,保持服务器的高可用性和安全性是企业级IT环境的重要指标,其中最重要的一点是服务器网络连接的高可用性,为实现这些要求,现在服务器大都采用多网卡配置,系统大都采用现在非常流行的linux作为服务器工作的环境。现在带宽已经不是服务质量提高的瓶颈了,相对的网络设备和服务器的处理能力就渐渐成为新的瓶颈。为提高服务器的网络连接的可用性和可靠性,目前Sun公司的Trunking技术、3Com公司的DynamicAccess技术、Cisco公司的Etherchannel技术等等都在研究将服务器的多个网卡接口绑定在一起的链路聚集技术, 链路聚集技术将多个链路虚拟成一个逻辑链路进而提供了一种廉价、有效的方法扩展网络设备和服务器的带宽,提高网络的灵活性与可用性。 本文介绍linux下的bonding 技术,linux 2.4.x的内核中采用了这种技术,利用bonding技术可以将多块网卡接口通过绑定虚拟成为一块网卡,在用户看来这个聚合起来的设备好像是一个单独的以太网接口设备,通俗点讲就是多块网卡具有相同的IP地址而并行连接聚合成一个逻辑链路工作。现在在关于linux bonding 技术中,有几种算法来实现负载均衡的要求,此文针对这些算法,在此进行简单分析与研究,讨论其不足,并提出另外一种在此基础上改进的一种基于传输协议的负载均衡实现方法。讨论如何实现多个网络接口的分在均衡及其故障接管。2 负载均衡技术和高可用技术研究介绍
2.1 负载均衡技术
负载均衡技术的主要思想就是如何根据某种算法将网络的业务流量平均分配到不同的服务器和网络设备上去,以减轻单台服务器和网络设备的负担,从而提高整个系统的效率。负载均衡既可以由有负载均衡功能的硬件实现,也可以通过一些专用的软件来实现,负载均衡是一种策略,它能让多台服务器或多条链路共同承担一些繁重的计算或者I/O任务,从而以较低的成本消除网络瓶颈,提高网络的灵活性和可靠性。2.2 高可用技术
实现负载均衡首先是基于网络的高可用性提出来的,高可用技术是容错技术的一个分支。实现系统的高可用性最简单的一个办法就是冗余。完整的网络负载均衡和高可用性网络技术有两个方面构成,一是多服务器的绑定和负载均衡,二是一个服务器内部的多网卡绑定的负载均衡,这里主要讨论一个服务器内部的多网卡绑定时的负载均衡。3 Linux的bonding技术中负载均衡的简单实现
3.1 Linux的bonding技术
Linux的bonding技术是网卡驱动程序之上、数据链路层之下实现的一个虚拟层,通过这种技术,服务器接在交换机上的多块网卡不仅被绑定为一个IP,MAC地址也被设定为同一个,进而构成一个虚拟的网卡,工作站向服务器请求数据,服务器上的网卡接到请求后,网卡根据某种算法智能决定由谁来处理数据的传输。Bonding技术可以提高主机的网络吞吐量和可用性。3.2 Linux的几种发送均衡算法
目前Linux的发送算法最主要的有三种:轮转算法(Round-Robin)、备份算法(Active-Backup)、MAC地址异或算法(MAC-XOR)。下面对目前这三种主要算法进行简单分析。3.2.1 轮转算法 该算法是基于公平原则进行的,它为每个将要被发送的数据包选择发送接口,算法的主要思想是首先 论文检测天使-免费论文检测软件http://www.jiancetianshi.com第一个数据包由一个接口发送,另一个数据包则由另外一个接口发送,下面依次进行循环选择。通过分析我们可以看出这种算法比较比较简单,在发送数据方面也比较公平,能保证网卡发送数据时候的负载均衡,资源利用率很高。但是我们知道如果一个连接或者会话的数据包从不同的接口发出的话,中途再经过不同的链路,在客户端很有可能会出现数据包无序到达的问题,而无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降。3.2.2 备份算法 该算法将多个网卡接口中的一个接口设定为活动状态,其他的接口处于备用状态。当活动接口或者活动链路出现故障时,启动备用链路,由此可见此算法的优点是可以提供高网络连接的可用性,但是它的资源利用率较低,只有一个接口处于工作状态,在有N个网络接口的情况下,资源利用率为1/N。3.2.3 MAC地址异或算法 该算法的主要思想是:由服务器的MAC地址和客户端的MAC地址共同决定每个数据包的发送端口号,由源MAC地址和目的MAC地址进行异或计算,并将异或结果对接口数求余计算。由于发送到同一个客户端的数据流经过同一个链路,因此数据包能够有序到达客户端。此算法在只有一个客户机访问服务器或者服务器和客户机不在同一子网的情况下,由算法思想得知这种情况下负载不会均衡,在只有一个客户机访问服务器的时候,资源的利用率也是1/N(N为接口数)。通常在一个大的局域网内,往往存在多个子网。 其拓扑结构如下所示:
4 基于传输协议的发送算法
上面我们对Linux中的几种实现多网卡发送负载均衡算法进行了分析,针对这些算法的不足,这里提出另外一种发送负载均衡算法。4.1 算法描述实现
我们知道网络传输协议有TCP和UDP两种,其中UDP是一种无连接、不可靠的传输协议。TCP是一种提供面向连接的、可靠的字节流服务,譬如一个客户机和一个服务器在彼此交换数据前要建立一个连接。一个TCP连接或者一个UDP会话的结构大致如下:{source,dst,saddr,daddr}
[8]电大学习网.免费论文网[EB/OL]. /d/file/p/2024/0424/fontbr />
5 测试结果进行验证分析
测试软件环境:RedHat9.0(内核2.4.20) 测试硬件配置环境:一台服务器(CPU: P IV 2.8G;内存: 512M;两块支持MII状态字寄存器的百兆网卡,每个有一个接口;一台客户机(配置和服务器一样);两台(一台也可)24口千兆交换机。测试软件为netpipe,利用此软件可以测试TCP 协议性能,用它依次来对轮转算法、MAC地址异或算法以及基于传输协议的发送算法的网络延时和吞吐率。这里服务器用来发送数据,客户机用来接收数据。 服务器发送方执行: NPtcp –t –s –h 172.19.11.130 –o test.ppt –p 客户机接受方执行: NPtcp –r –s测试结果(测试结果为平均值)如表一所示。 从测试结果可以得出结论:由于轮转算法简单,计算量小,网络延迟也相对小,而基于传输协议的发送算法计算量相对较多,网络延时也比较大。由于这里是双机对测,即只有一个客户端,一个服务器端,所有MAC地址异或算法每次计算的结果也就唯一,只有一个接口被使用,吞吐率最小。相对来说,基于传输协议的发送算法吞吐率要大一些。表一测试结果 上面测试需要说明的是:测试中服务器仅配置了两块网卡,并且只有一台客户机访问服务器,当网卡接口和客户机增加时,此文介绍的基于传输协议的发送算法的优势将会很明显。在一个比较大的局域网中多个客户机和服务器建立连接对话时,采用轮转算法的同一个连接的数据包经过不同的链路传送,无序到达客户端的概率就会增加,重发的次数也增加,服务器吞吐率会降低。而基于传输协议的发送算法则不存在这样的问题,此种情况下,服务器的吞吐率相对增加。6 结束语
Linux的bonding技术将多个网卡接口绑定在一起,使用多个接口发送数据,算法上实现了负载均衡和故障迁移与接管。它是一种不对称得负载均衡技术,目前只是研究了发送算法,接受算法还有待于进一步的研究,目前的链路技术都是将网卡接口绑定在一起来提高服务器的网络性能,但是各种实现算法包括基于传输协议的发送算法并没有考虑接口的速度,这一点有必要进一步改进。参考文献
1 A Cost-effective Approach to Improve Server Performance and Fault Tolerance.http://itpapers.zdnet.com/whitepaper.aspx?&scid=15&docid=46346 2 毛德操 ,胡希明着.LINUX内核源代码情景分析. 浙江大学出版社 3 博韦&西斯特陈莉君.深入理解linux内核(第二版)4 Alan Robertson Linux-HA Heartbeat system design.http://linux-ha.org.5 M.Bozyigita.”History-driven dynamic load balancing for recurring applications on network of workstations”. Systems and software,6 Load Balancing your NICS
[8]电大学习网.免费论文网[EB/OL]. /d/file/p/2024/0424/fontbr />
相关文章:
国际间节能减碳相关产业的发展状况04-26
短期国际资本/广义货币供应量与经济波动04-26
会计准则国际趋同的经济后果04-26
美国在国际经济领域的战略撤退04-26
全球经济失衡下国际经济秩序演变路径04-26
新自由制度主义与区域国际经济组织法04-26
我国出口结构对产业结构影响的实证研究04-26
经济全球化时代发展中国家的困境与出路04-26