负载均衡器

2025-01-23

负载均衡器(精选12篇)

负载均衡器 篇1

0 引 言

NAS网络存储作为海量存储的一种方案,已被广泛使用。而随着数据的不断增长,单一的NAS网络服务器不能再满足客户需求,因而集群网络[1,2]提到日程上来。在集群的网络服务器中,由于服务器的处理能力与容量的不相同,作业的到达模式不一样,从而造成有的服务器大量资源被闲置,有的服务器却负载过重,即网络存储中负载不均衡的问题。目前虽然有些算法如轮询法[3]、最少链接法[4]等等在一定程度上提高了系统吞吐率,但均有缺点:轮询法是一种无状态调度,没有记录当前任何状态;最少链接法只记录了等待队列的作业数,而没有记录作业的预计处理时间。当作业量过多时,都会出现负载不均衡问题。因此,提出一种能够进一步提高系统吞吐率的方案是很有意义的。

1 负载均衡器的硬件设计

负载均衡器采用的是代理模式下的单路并联结构,主要的功能为实现网络和存储。因此应该尽量简化硬件结构,只保留网络与存储模块。负载均衡器的整体硬件结构框图如图1所示。

处理器采用SUMSUNG公司的16/32位RISC处理器Mini2440,网卡芯片选用的是DM9000,硬盘采用的是DOM电子盘(具有比传统的磁盘更高稳定度、高性能、高可靠度的数据存储,且频繁开关机都不易损坏)。由于只需实现网络与存储功能,因此可以对操作系统进行最精简的裁剪,只保留网络与存储模块。一来提高系统运行效率,二来可以减少存储操作系统的容量,降低成本。

1.1 网络功能模块

网络模块,本设计采用的是DM9000,硬件连接图如图2所示。DM9000有两个不同的端口,一个为地址端口(CMD),一个为数据端口(DATA)。通过CMD的高低电平来选择相应的端口访问。当CMD为低电平时,则为地址端口;为高时则为数据端口。

由于DM9000的特殊性,处理器只能直接访问地址端口与数据端口,因此,当需要读写内部寄存器的值时,先将需要读写的寄存器的地址写入CMD端口中,然后再从DATA端口读写寄存器的数据。

要使DM9000正常运行,并收发信息,必须正确地配置好DM9000的初始化过程,即需要对一些寄存器进行相关配置。值得一提的是无需对介质无关接口MII(Media Independent Interface)寄存器进行配置,如果操作不当,则会影响网卡芯片的初始化和网络连接。

1.2 存储功能模块

存储模块采用的是DOM电子盘,其硬件连接图如图3所示。DOM电子盘中的NAND Flash采用的是三星K9LBG08U0D, Mini2440直接对K9LBG08U0D进行读写操作。三星NAND Flash有五个字节值(第一字节为第一命令值,二-四字节为数据地址值,第五字节为第二命令值), 分五个周期写入。其中CLE线与ALE线不同的状态值控制对K9LBG08U0D的不同操作。当CLE为高电平,ALE为低电平时,输入的表示为命令;当CLE为低电平,而ALE为高电平时,则输入的表示为地址;当ALE与CLE均为低电平时,表示写入的为数据。

NAND Flash不能对存储模块进行“位”擦除,最小的擦除单位为“块”。当要往NAND Flash存入数据时,要先对它进行块擦除操作,之后才能存入数据。擦除操作流程图如图4所示。

NAND Flash不能无限擦除,具有一定的寿命(目前已有一些算法如磨损平衡[5]、ECC纠错[6,7]等能够提高其使用寿命)。当遇到坏区时,则不能再往其中写入数据。判断坏区的标准:① 擦除是否成功;② 能否成功写入数据;③ 读取数据时,“反转位”的数目大于规定值。以上任一个条件满足,都证明此块已坏,并将错误信息存入坏区管理表中。

2 负载均衡器软件设计

2.1 软件模型

本设计采用Red hat Linux 2.6.29版本的内核,进行相应的裁剪,编译完成后便可移植到负载均衡器中运行。内核包含网络接口芯片与硬盘驱动模块,在操作系统内核上的文件系统是EXT3,该文件系统直接调用内核提供的驱动程序接口,同时配置一些基本网络协议,NFS(网络文件系统)用于与Linux系统通信,CIFS(通用网络文件系统)用于Windows系统客户机通信。SMB(服务器信息块协议)用于Linux系统与Windows系统通信。模型图如图5所示。

均衡器保存文件解析表与存储负载表。文件解析表记录系统所存储的文件情况如:文件名、文件大小、文件类型、存储权限以及存储该文件的NAS服务器号。存储负载表则记录每个服务器中的所有待存储文件的数据量以及负载的预测运行时间,并进行及时更新。当客户端想要提取存储在服务器中的文件时,首先均衡器查询文件解析表,如果不存在就返回错误信息,如果存在,则向存储该文件的NAS服务器发送读取请求。当客户机要存储文件时,则均衡器先查询存储负载表,并寻找一个负载最轻的服务器对其进行处理。

网络管理模块是采用Web浏览器的网页管理界面,用户存取权限等参数均在其中设置。它具有较好的GUI界面,用户管理极为方便、简洁。

2.2 作业算法

不同服务器的处理能力与容量是不相同的,因此,相同的作业到达不同的服务器时,处理时间会有差距,这就要求选择一个最佳的服务器进行处理作业,减少作业的响应时间。已知有一些方法可以预测作业的执行时间[8,9,10]。动态预测时间算法就是基于不同服务器的处理能力,动态的预测作业在不同服务器上所执行的时间,从而实际分配作业至一个预计执行时间最小的服务器。即先假设服务器Ni的平均处理能力为D,且作业都是以独占方式工作。现在定义作业的动态预测执行时间:Time(Ti,Ni),即在标准平台(D=1)上处理该作业所花费的时间。当作业Ti到达处理能力为D的服务器Nj时,其作业预期执行时间:

Time(Ti,Nj)=Time(Ti,Ni)/D (1)

但性价比高的服务器预计的处理时间总会小于其他的服务器,而作业也会全都分配至此服务器,同样会导致负载严重不均衡问题。因此,对该动态预测时间算法进行相应改进。假设服务器均工作一段时间,把等候队列中的作业T=(t1,t2,…,tr)的预期执行时间以及文件大小都存储在负载均衡器中的存储负载表中。存储负载表把记录等待队列的总预计执行时间(等候队列所有作业的预计执行时间之和)作为新作业的等待时间:

Τime(Τi,Νj)=Τime(Τi,Νi)/D+k=1i-1Τime(Τk,Νj)(2)

其中,Time(Ti,Nj)为作业的实际预测时间,k=1i-1Τime(Τk,Νj)即为作业的等待时间。

当作业到达均衡器时,均衡器先计算出Time,然后再查询存储负载表中的预测总时间,之后把作业分配至Time最小的那路服务器中进行处理,并对该路服务器总作业预测时间进行及时更新。代码描述如下:

………

for(i=0;i<n;i++)

{

if(time_(i+1)+T(i+1)>time_(i)+T(i))

{

min=i;

}

}

………

send_massage(filename,i,…);

其中n为服务器的总数目,i为服务器的标号,min=i是选择预测总时间最少的服务器,send_massage(filename,i…)函数把文件名为filename的文件发送至标号为i的服务器,让其接收处理。

当等候队列有作业被执行完时,则把结果返回负载均衡器,告知作业被执行完,然后减除相应的预计执行时间。每当一个新的作业加入之时,负载均衡器总把它调度到一个预计时间执行最少的一个等待队列。

3 系统性能测试及比较

在不同负载下,对系统的吞吐率以及作业响应时间进行了测试。测试实验环境为4个配置不同的NAS服务器组成的一个集群,18台装有Linux系统的客户机,18台装有Windows XP系统的客户机。客户机配置为Intel(R)Core(TM)i3-2.53GHz CPU,2GB内存和100M网卡。吞吐率及负载能力测试结果如图6所示。

从图6中可以看出,在没有使用任何算法时,单一的服务器吞吐率很低,最大的连接数达到8台之后就不再提升;使用轮询算法与最小链接算法时,连接最大负载与吞吐率虽然比未使用算法的单一服务器效率高,但是整体负载情况及吞吐率较低。而使用负载均衡器的客户机最大连接数(负载)比最小链接法与轮询算法高。吞吐率比最小链接算法高28%左右,比轮询算法高58%左右。这是因为负载均衡器使作业比较均衡地分配到各个服务器中,而不会因为负载集中在某一个服务器上使其性能严重下降。另外,当服务器工作一段时间后,令其中任意一个服务器停止工作,其他3个服务器正常工作,负载均衡器会对分配在已停止工作的服务器上的任务进行超时检测,当超时后,均衡器认为服务器已经出现故障,从而把分配在里边的任务请求重新定向至其他3个服务器之中进行处理。可以看出系统不存在单点故障问题。

本设计从客户机上随机发送500个作业至集群服务器中,服务器按照不同方法调度,经10次实验结果求其作业平均总响应时间。测试表格如表1所示。

从表1中可以看出,使用轮询法时,作业数是平均分配至各个服务器中的,并没有考虑服务器处理能力的不同,因此总响应时间最长;最小链接法根据等待队列中作业的数量来分配新作业,相对降低了作业的总响应时间;负载均衡器根据作业的预计执行时间来预测作业的响应时间,使处理能力强的服务器获得更多的作业,从而进一步降低了作业的总响应时间。

4 结 语

本文设计的负载均衡器采用了动态预测总时间算法,能把接收到的新文件请求转发给负载最轻的NAS服务器,从而能自主地进行任务调度,达到负载均衡的目的。本设计非常适合推广与应用,其显著的特点有:成本低、智能性、负载能力强。价格比市场价格低几倍甚至十几倍;吞吐率比最小链接法、轮询法分别高28%、55%左右。但是负载均衡器通常是Web服务器群的唯一入口,因此,部署负载均衡器之前,必须首先考虑好负载均衡器的备份问题。当主负载均衡器出现故障时,备份负载均衡器能立即接管工作,避免了单负载均衡器出现故障问题。

参考文献

[1]David Nagle,Denis Serenyi,Abbie Matthews.The Panasas Active scale Storage Cluster[C]//Proceedings of the ACM/IEEE SC2004Confer-ence,2004:53-56.

[2] Bright J D,Chandy J A.A scalable Architecture for clustered Network Attached Storage[C]//Digest of papers-IEEE symposium on Mass Storage system,2005:196-206.

[3]Li Chuan Chen,Hyeon Ah Choi.Approximation algorithms for data dis-tribution with load balancing of Web servers[C]//Proceedings of IEEE International Conference on Cluster Computing,2008:274-281.

[4] Bryhni Haakan.A comparison of balancing techniques for scalable Web servers[J].IEEE Network,2007(7/8):58-64.

[5] Esther Spanjer.Flash management: How it extends the lifetime of solid-state Flash disks in VME bus system[J].VME bus system,2005(8).

[6]Shu Lin,Costello D J.Error control coding:Fundamentals and applica-tions[M].Englewood Cliffs,New Jersey:Prentice-Hall,2009.

[7]Berlemkamp E R.Bit-serial reed-solomon encoder[J].IEEE Transac-tions on Information Theory,2008,28(11):869-874.

[8]Xian-He S,Ming W.GHS:A performance system of grid computing[C]//Proceedings of the19 th IEEE International Symposium on Paral-lel and Distributed processing,April4-8,2006.

[9]Nudd G R,Kerbyson D J,Papaefstathiou E,et al.PACE:A toolset for the performance prediction of parallel and distributed systems[J].In-ternet J High perform comput,2009,14(3):228-251.

[10] Dinda P A.Online prediction of the running time of tasks[J].Journal of Cluster Computing,2006,5(3):225-236.

负载均衡器 篇2

一?什么是负载均衡器

负载均衡器可以根据实际的响应时间制定优先级交付决策,从而实现高性能?智能化流量管理,达到最佳的服务器群性能?采用第七层应用控制还可以减少通信高峰期的错误讯息,因为差错控制和流量管理技术可以侦测到一些错误信息,并透明地将会话重定向到另一个服务器,使用户顺利地进行使用?例如,服务器A不可用或者数据库出现错误,错误信息将会返回到负载均衡器上,然后会将客户的访问指向服务器B或者将消息重放到其他数据库中去,整个过程对用户是透明的?

目前,许多厂商推出了专用于平衡服务器负载的负载均衡器?目前负载均衡器生产商有:Intel?AlteonWeb?ArrowPoint(已被思科并购)?CoyotePoint?F5Networks?FoundryNetworks?HydraWeb以及RADWare等?负载均衡器的形式多种多样,作为启动器,它以各种形式和大小出现?

一些厂商,如Alteon?ArrowPoint,将负载均衡器集成到交换设备中,置于服务器与Internet链接之间;而另外一些厂商,如CoyotePoint?F5Networks以及HydraWeb,则运用两块网络适配器将这一功能集成到PC中,其中一块连接到前端止于Web服务器的Hub上,另一块通过路由器或其他设备连接到Internet上?一旦负载均衡设备检测到所管理的每台服务器承载的负荷量,它会按照一定的算法来分配通信?ArrowPoint公司的CS-100?F5的Big/ip?以及CoyotePoint公司的均衡器都支持循环均衡功能?

其处理方法是,均衡器同时向所有可用服务器以命令序列方式发送相同数量的请求?Alteon的AceSwitch180?CoyotePoint的均衡器?F5Networks的Big/ip以及RADWare的Web服务定向器支持这样一种均衡方法:它能以最小的TCP链接将请求发送到服务器?ArrowPoint的CS-100还支持静态负荷均衡选项,这就是说,为服务器分配请求是建立在事先已指定负荷量的基础之上的?举个简单例子,使用Pentium300的机器应比Pentium200承载更多的请求?

由于采用了负载均衡技术,自动故障恢复得以实现,服务的时间可以延长,24×7可靠性和持续运行成为可能?另外,负载均衡器一般也支持路径外返回模式,即绕过流量分配器,为那些焦急等待大量数据文件请求响应的客户提供更快的响应时间?

总之,如果负载均衡需求简单,也就是说,只是接近于通过所有服务器的“共享“级水平,并且网络环境也只是由低速LAN组成,则不需要太高级的均衡产品?同样的,若是静态内容传输,则只要具备循环分配功能的负载均衡器也就可以了?

在最新的负载均衡产品中,智能化越来越明显?一些智能化的负载均衡器能够侦测到像数据库错误?服务器不可用等信息,从而采取措施使会话恢复和重定向服务器,使电子商务能够得以顺利进行?多址负载均衡器可以对客户发来的访问请求进行解析,计算出最佳地址,然后将该地址返回客户,使客户自动连接到对其请求来说最佳的数据中心?

典型产品:Intel网擎负载均衡器

负载均衡服务具体分为本地负载均衡服务和远程负载均衡服务?英特尔公司的网擎(IntelNetStructure)7170网络应用负载均衡器,可应用于本地负载均衡服务?该设备能够平衡服务器群中所有的服务器和应用之间的通信负载,根据实时响应时间进行判断,将任务交由负载最轻的服务器来处理,以实现真正的智能通信管理和优秀的服务器群性能?

服务器故障切换和多重冗余特性可以让通信绕过故障点,从而使用户站点始终保持运行和可访问性?并且,每次提供负载均衡服务后,7170网络应用负载均衡器都有记录,每天都会自动生成一个报告,客户通过这一报告还能了解流量的分布情况?

英特尔网擎系列中的7190多址负载均衡器可用于远程负载均衡服务?这一设备针对拥有多个网站地址的企业进行专门设计,能够根据单个URL地址将通信路由到方便可用的站点,从而实现广域网范围的负载均衡?为了提高响应速度,7190采用“快速响应模式”,使所有的站点都能对同一用户的访问请求作出响应,响应最快的站点将接受并完成这一访问任务,而不是在发生用户请求时计算“最快“的路由因而产生额外的延迟时间?管理员可以采用这种模式确保很短的服务器响应时间,也可以选择对用户满意度产生更大影响的其他算法?

系统在后台收集多站点状态信息,如服务器响应时间?通信量?本地系统状态,从而使7190能够立即确定每个数据中心的状态,并将访问导向最佳站点?

二?负载均衡器和流量控制器的区别

负载均衡器,如果没有特殊说明一般是指对服务器的智能请求分配?其实还有个对链路的,那个叫做链路负载均衡?

举例1:

单位有一大网站,访问人员巨多,服务器要挂,于是从单一服务器变成多服务器,问题来了,如何分配用户的请求,答案1,轮循,每台服务器分配一次请求,周而复始,虽然不好,但能用?不好在某台服务器太忙或者死机或者巨闲,轮循机制依然持续,不能发现,不能排除?于是会造成某些用户访问不了或者访问巨慢,用户会投诉,服务器在浪费?答案2,负载均衡,通过多种侦测手段来判断目标服务器群中某台服务器的具体状态然后分配请求?负载均衡的实现份软硬件,软件的问题是通性的,比如稳定性,效率等都是取决于它的硬件平台,通用X86硬件平台在此方面非专用效率和稳定性都成问题?但软件优点是便宜,甚至免费?硬件的基本上就一个缺点,贵!F5?RADWARE等最便宜的都是十几万?倒是COYOTE比较便宜,不过刚进中国,知道人不多?

负载均衡大比拼 篇3

负载均衡的实现方法有四种:

1. 基于DNS的负载均衡:它是通过DNS服务中的随机名字解析来实现的,但不能够按照Web服务器的处理能力分配负载,无法完全解决现在网络中面临的问题:如单点故障问题、服务器资源不够用问题等。

2. Windows Server自带负载均衡服务:如果是基于IIS,Windows 2003 Server本身就带了负载均衡服务,但这一服务也只是轮流分配,可能会造成额外的网络问题。

3. 软件方式:通过一台负载均衡服务器进行,上面安装软件。这种方式比较灵活,成本相对也较低。但是软件负载均衡解决方案缺点比较多,因为每台服务器上安装额外的软件,运行会消耗系统不定量的资源,越是功能强大的模块,消耗得越多,所以当连接请求特别大的时候,软件本身会成为服务器工作成败的一个关键;此外软件的可扩展性并不是很好,受到操作系统的限制。

4. 硬件方式:通过专门的负载均衡设备实现。直接在服务器和外部网络间安装负载均衡设备,这种设备通常称之为负载均衡器,对于流量的分配可以有多种策略,但基本上都是与应用无关的,独立于操作系统。这种方式往往适合大量设备、大访问量、简单应用。

一般而言,硬件负载均衡在功能、性能上优于其他几种方式,因为它能有效地解决数据流量过大、网络负荷过重的问题。

网络处理器负载均衡 篇4

关键词:网络处理器,负载均衡,流保序,哈希

1 引言

当前, 网络处理器因为同时具有GPP的灵活性和ASIC的执行效率, 可用于多种网络协议处理环境中并支持多种服务类型, 因而得到了广泛应用。目前高性能网络处理器在单芯片中嵌入多个处理单元 (Processor Element, PE) , 多个PE通常组织成并行结构。因此网络处理器的负载均衡问题也成为路由器性能提高的关键因素之一。

2 网络处理器负载均衡的特点及性能度量标准

2.1 特点

由于网络处理器的处理单元采用并行组织结构, 因此网络处理器中必须有一个报文调度器 (packet dispatcher) 来进行极其重要的报文分配。本文着重讨论报文分配机制, 并假定进入输出队列的报文都能无阻塞的被调度到交互网络。

根据网络的传输特性, 适合网络负载均衡的报文分配策略应该满足以下几个基本要求:

低开销、高效率、流保序。

2.2 性能度量标准

(1) 负载分配。从负载均衡的观点来看, 最重要的性能标准就是在多输出链路之间以时间为单位进行的字节分布。一个理想的系统, 负载应该按输出链路的速率比例进行分配。

(2) 队列长度。队列长度标准重视负载分布的差异, 在一个负载较轻的时间段的实际影响远远小于在一个负载较重的时间段的实际影响。一个好的报文分配算法可能不需要在任何时间都有完美的负载分配, 但是它应该能保持队列小且均衡。

(3) 非节约工作状态空闲时间。空闲时间能捕获非节约工作系统的倾斜度:空闲时间标准越长, 系统偏离节约工作越远, 负载均衡的效率也越低。

3 基于哈希的负载均衡方法

哈希已经被广泛地应用于索引和搜索中, 把哈希用于网络负载均衡也是大势所趋。

3.1 直接哈希

直接哈希是负载分配的简单形式。报文分配器将一个哈希函数应用于五元组的一组域, 并用哈希的结果选择输出链路。它执行起来非常简单不需要维持额外的状态。

3.1.1 目的地址哈希

最简单的是以输出链路数N为模对IP目的地址哈希, 用公式表示为:

在这个公式中, 如果N=2k, 那么我们就可以用目的地址的最后k位作为输出链路的索引。这种哈希函数已经被应用于路由器中。

3.1.2 目的地址折叠XOR哈希

折叠XOR已经被应用于许多哈希函数, 并且在其他的应用中已经表明能提供很好的性能, 用公式表示为:

Di代表目的地址的第i个八位字节。选择链路时这个方法利用了更多的IP地址位数

3.1.3 源和目的地址折叠XOR哈希。

这是对前面一种哈希函数的简单修改, 在计算中包括了源地址, 也就是说, XOR对源IP地址和目的IP地址都进行折叠运算。用公式表示为:

Si、Di分别代表源IP地址和目的IP地址的第i个八位字节。

3.1.4 网络校验和

在RFC791中提出的网络校验和算法计算相对简单, 是一个好的哈希函数。通常把五元组作为16位网络校验和计算的输入种子, 输出链路的索引从校验和的结果模N得出。用公式表示为:

i=CheckSum (5-tuple即五元组) mod N

3.1.5 CRC16

16位CRC (循环冗余校验和) 算法已经被作为负载均衡的可能方案提出, 虽然比上面提出的哈希函数复杂一些, CRC16已经在高速系统中被成功实现。在CRC16方案中, 流量分配器对五元组作用CRC16, 然后模N得到输出链路。用公式表示为:

3.1.6 HRW (highest random weight)

最高随机权重算法, 其分配策略是:由固定的函数根据负载请求对象的标识信息和每个处理器的编号, 计算当前负载映射到每个处理器的权重, 并对映射结果进行比较, 将当前负载请求分配给权重最大的处理器。用公式表示为:

权重计算算法可描述为:

3.2 基于表的哈希

直接哈希只能够把流量分成相等的数目分配给多输出路径。然而, 流量负载并不总是想要平均分配。基于表的哈希方法能够既流出流量分配的结果又流出负载配置状况。

基于表的哈希方法首先把流量分配成M个单元, 这M个单元根据分配表映射到N个输出链路, 如图1所示。改变M个单元到输出链路的分配, 一个可以按预先定义的比率分配, 一个可以通过调整分配表来协调流量分配性能。M与N的比率决定了调整的粒度。通常, M比N大1或2倍的数量级, 因此, 能够以一个相当好的粒度分配负载。注意当M=N时是一一对应的映射, 这时基于表的哈希变成了直接哈希。

有两种方法执行基于表的哈希。一种方法是设置N-1个极限, 极限用于把M个单元划分成N个部分。当一个报文到达时, 流量分配器计算哈希, 并将哈希的结果与N-1个极限相比较来确定输出链路, 如图3所示。例如, 我们想分配负载到比率2:1的两条链路上, 我们能简单的设置极限为M/3, 对每个到达的报文我们计算哈希值并与极限比较, 如果哈希值比M/3大, 报文被送给第一个链路, 否则, 报文被送给第二个链路。

另一种比较灵活的方法是将输出链路的索引与M个单元结合, 如图3所示。这种基于索引的方法比基于极限的方法需要更多的存储空间 (M个索引对N-1个极限) 。另一方面, 用基于索引的方法把哈希值映射给输出链路比较简单, 它能够对表进行直接查询, 而基于极限的方法则要将哈希值与N-1个极限进行比较。

既然M个单元中的每一个都能独立的被指派给N个输出链路, 基于索引的方法更加灵活。当负载分配被调整或有新的链路增加或关闭的时候, 对现有流量的调整将最小;相反, 基于极限的方法将引起极大数目的流改变他们的输出链路。例如, 假设有一个新的链路增加到现有的两条负载均衡的链路上, 如果链路平均分配流量, 1/2的流量将被重新分配给不同的输出链路, 而基于索引的方法仅仅1/3的流受到影响。输出链路重分配将潜在地引起被影响流的巨大瞬时报文重定序。

5 结束语

关于网络处理器负载均衡问题的进一步研究方向主要包括以下几个方面:

(1) 并行处理与流水作业的结合。

(2) 对报文进行分类处理。

(3) 保持负载均衡与开销的平衡。

总之, 网络处理器的负载均衡问题对网络处理器的性能提高有着至关重要的意义, 我们将对这一课题进行更加深入的研究。

参考文献

[1]L.Kencl, J.Le Boudec, Adaptive load sharing for network processors, 2002 IEEE INFOCOM, New York, NY, USA, June 2002:545-554.

[2]W.Shi, M.H.MacGregor, P.Gburzynski, Effects of a hash-based scheduler on cache performance in a parallel forwarding system, Communication Networks and Distributed Systems Modeling and SimulationConference (CNDS 2003) , Orlando, FL, USA, January 2003:130-138.

[3]G.Dittmann, A.Herkersdorf, Network processor load balancing forhigh-speed links, 2002 International Symposium on Performance Evaluation of Computer and Telecommunication Systems (SPECTS 2002) , SanDiego, CA, USA, July 2002:727-735.

[4]E.Blanton, M.Allman, On making TCP more robust to packet reordering.ACM Computer Communication Review, January 2002, vol.32, 1:20-30.

[5]L.Kencl, Load Sharing for Multiprocessor Network Nodes.Ph.D.thesis, Swiss Federal Institute of Technology (EPFL) , January 2003.

[6]K.W.Ross, Hash routing for collections of shared Web caches, IEEE Networ., Nov-Dec 1997 vol.11, no.7:.37-44.

[7]R.Jain, A comparison of hashing schemes for address lookup incomputer networks.IEEE Transactions on Communications.October 1992vol.40, no.3:1570-1573.

链路负载均衡的应用 篇5

多宿主网络能够提高企业业务的可靠性和性能,但这种结构也面临着特殊的问题和挑战。因为多条因特网链路提供的是完全不同的公网IP地址段来让企业接入因特网,而在同一个内部网络访问因特网时,通常只能选择一个唯一的“缺省网关”,也就是说一个网络通常只可以选择一条因特网链路。如果我们将内部网络分成多个子网段,让它们各自使用一条因特网链路;或者,出网流量走一条链路,进网流量走另一条链路,那我们就达不到让多条链路互相备份以提高链路可靠性的目的。而BGP协议既不是一般情况下能采用的,也不能很好的实现多条链路负载均衡,尤其是对于进网流量更缺乏解决方案。

负载均衡器对多重连接ISP的状态进行监测

Omnirange Plus负载均衡器会随时监控多条ISP连接链路的状态,并根据监控结果对本地DNS服务器中的地址记录进行动态更新。如果某一个ISP发生工作中断(无论其原因是进行维护,工作过于繁忙,或者设备离线),那么负载均衡器将向域名服务器发送一条动态DNS更新信息,此域名服务器将删除服务已经中断的ISP所属范围之内的全部IP地址,并将之更新为可用最佳链路的IP地址。这样内向型数据包在达到目的DNS服务器时将始终可以最快速地获得可用的目的服务器的地址,而无需象之前那样在获得一个不可用的目的服务器地址后进行漫长的等待,因此可以大大减少访问的滞后时间,

如果一个曾经中断服务的ISP恢复了工作状态,那么属于该ISP的IP地址将在域名服务器中被重新激活。

群集配置的负载均衡交换机

当企业使用了一台OmniRange Plus系列产品时,已经可以解决多因特网链路的服务问题,但此时,作为因特网数据流的必经之路,单台OmniRange Plus也会成为单点故障所在。

Asce Networks充分考虑了用户需求,对OmniRange Plus进行了群集化(Cluster)设计:ClusterNG,企业可以随时将它的OmniRange Plus系统升级成为群集结构,ClusterNG群集中的OmniRange Plus设备最多可达16台,群集对内网/外网都是透明的。整个群集采用同一个虚拟IP地址,对用户而言是单一网关;群集中的所有设备工作于负载均衡状态,大大提高了整个OmniRange Plus系统的性能和可靠性。

群集的设置十分简单,只要将第一台OmniRange Plus的设置复制到所有其他节点,再进行极其简单的群集配置便可完成。群集中任何一台设备发生问题,都不会影响用户的因特网访问。当群集建立后,您可以随时加入一台设备,也可以随时取出一台设备进行升级维护,都不影响系统的正常工作,大大方便了系统维护。

宁夏社保的负载均衡应用探析 篇6

综合考虑负载均衡器在性能、可扩展性、灵活性、可靠性、安全性以及易管理性等方面的因素,宁夏社会保障一卡通工程中采用深信服AD应用交付设备实现网络链路负载和服务器负载。

使用负载均衡技术主要实现以下目标。首先,大量的并发访问或数据流量分担到多台节点设备上分别处理,可以实现用户访问流量能在各服务器上均衡分配,提高服务器资源利用率,减少用户等待响应的时间。其次,单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高。最后,某台服务器发生故障时能被及时检测到,并且故障服务器将会被自动隔离,直到其恢复正常后自动加入服务器群,实现透明的容错,保证服务器整体性能大幅提升。

负载均衡策略

在宁夏社保信息化系统的实际应用中,选择合适的负载均衡策略,可以使多个设备能很好地共同完成任务,消除或避免现有网络负载分布不均、数据流量拥挤、反应时间长的瓶颈,同时保证出现故障的服务器不再接受服务请求直至故障恢复等。负载均衡策略的优劣及其实现的难易程度有两个关键因素:一、负载均衡算法;二、对网络系统状况的检测方式和能力。

深信服负载均衡器集合出入站智能DNS解析、轮询、加权轮询、静态就近性、动态就近性等算法,解决多链路网络环境中流量分担的问题,充分提高多链路的带宽利用率,节约对通信链路的投资;通过分配最佳的通信线路,使用户获得绝佳的访问体验。此外,深信服负载均衡器还利用链路健康检查及会话保持技术,实现了在某条链路中断的情况下仍然可以提供访问链接能力,充分利用了多条链路带来的可靠性保障,对用户访问提供全面支持。

考虑到服务请求的不同类型、服务器的不同处理能力以及随机选择造成的负载分配不均匀等问题,为了更加合理地把负载分配给内部的多个服务器,需要应用相应的、能够正确反映各个服务器处理能力及网络状态的负载均衡算法。

运用多台服务器集群的机制,深信服负载均衡器能将所有真实服务器配置成虚拟服务来实现负载均衡,对外直接发布一个虚拟服务IP。当用户请求到达应用交付设备的时候,根据预先设定的基于多重四、七层负载均衡算法的调度策略,能够合理地将每个连接快速的分配到相应的服务器,从而合理利用服务器资源。不仅在减少硬件投资成本情况下解决单台服务器性能瓶颈,同时方便后续扩容,为大并发访问量的系统提供性能保障。

通过对服务器健康状况的全面监控,深信服负载均衡器能实时地发现故障服务器,并及时将用户的访问请求切换到其他正常服务器之上,实现多台服务器之间冗余。从而保证关键应用系统的稳定性,不会由于某台服务器故障,造成应用系统的局部访问中断。

此外,良好的负载均衡策略应有对网络故障、服务器系统故障、应用服务故障的检测方式和能力,避免服务器与某台负载均衡器间的网络出现故障时,负载均衡设备依然把数据流量分配到那台服务器,造成大量的服务请求被丢失,达不到不间断可用的要求。

深信服负载均衡器通过多个Internet站点的可达性,来共同判断一条链路的状况。例如,通过电信线路检查www.sina.com.cn、www.sohu.com、以及www.qq.com的TCP 80端口,并对检查结果做“或”运算。如此,只要其中一个站点可达,即可表明链路状态良好。该方法既避免了ICMP检查的局限性,也避免了单一站点检查带来的单点失误。深信服负载均衡器支持包括基于硬件运行状况的主动检查,基于应用类型的主动检查,基于观测方式的被动检查,以及自定义的健康检查机制。

会话保持机制

在宁夏社保信息的医疗保险刷卡就医即时结算过程中,一个用户与服务器需要经过多次的交互过程才能完成一笔交易或者完成一个请求——由于这几次交互过程是密切相关的,服务器在进行这些交互过程的某一个交互步骤时,往往需要了解上一次交互过程的处理结果,或者上几步的交互过程结果,服务器进行下一步操作时需要所有这些相关的交互过程都由一台服务器完成,而不能被负载均衡器分散到不同的服务器上。而这一系列的相关的交互过程可能是由用户到服务器的一个连接的多次会话完成,也可能是在用户与服务器之间的多个不同连接里的多次会话完成——不同连接的多次会话,最典型的例子就是基于http的访问,一个用户完成一笔交易可能需多次点击,而一个新的点击产生的请求,可能会重用上一次点击建立起来的连接,也可能是一个新建的连接。

通过深信服负载均衡器的会话保持技术,可以为用户选择曾连接上的特定服务器,实现无缝地处理用户请求;另一方面可以减少新建连接的数量,有助于减小负载均衡设备的系统开销。

其中基于Source IP的会话保持机制也被称为基于简单会话保持,是指深信服负载均衡器在作负载均衡时是根据访问请求的源地址作为判断关联会话的依据,对来自同一IP地址的所有访问请求在做负载均时都会被保持到一台服务器上去。另外一个很重要的参数就是连接超时值,负载均衡器会为每一个进行会话保持的会话设定一个时间值,从一个会话上一次完成到这个会话下次再来之前的间隔如果小于这个超时值,负载均衡器会将新的连接进行会话保持,但如果这个间隔大于该超时值,AD会将新来的连接认为是新的会话然后进行负载均衡调度。

全局负载均衡

为实现将相同应用系统的服务内容部署在宁夏社保两个数据中心之上,保证承载应用系统的两个数据中心能够具备更高的持续性和可用性以及快速性,使得用户不管身处任何位置都能获得更快速、更稳定的访问体验,在宁夏社保信息化建设中通过部署两台深信服负载均衡器,使用全局负载功能,进行服务器负载均衡。同时使用负载均衡器的健康检查机制,实时的监控各个数据中心的运行状况,及时发现出现故障的数据中心或者其内部服务器,从而保证将用户后续访问请求都分配到其他的正常数据中心或者服务器之上。不但使多站点之间形成冗余,保障用户访问稳定,还提升了各站点的资源利用率。

1、智能DNS方式多站点调度

利用智能DNS解析技术,在宁夏社保信息网络中以唯一的域名的方式为所有发布相同服务的数据中心提供统一的入口,根据预先设定的负载策略将用户的访问请求分配到不同数据中心之上,从而实现多数据中心的负载均衡调度。

当用户通过域名方式进行访问时,可以根据用户使用的Local DNS位置进行就近性计算,将最佳站点的IP地址解析给用户。

2、IP-Anycast方式多站点调度

通过动态路由协议在多个站点发布虚拟服务IP,利用网络中的路由信息实现用户的就近访问和站点冗余。当多个站点同时在线提供服务时,用户访问虚拟服务会根据路由信息来选择出最近站点。当某个站点出现故障时,OSPF路由会删除到该站点的路由,因此用户访问虚拟服务时会将该站点排出选择,待该站点恢复以后,OSPF路由则会重新将该站点的路由加入。路由通知的快慢取决于网络的规模,一般情况下在1分钟内。

3、就近性判断机制

为了保障用户在访问资源时,能够被引导至“最优”的数据中心,全局负载均衡设备需要对用户到各站点之间的距离、延时及当前数据中心的负荷等众多因素进行分析判断。深信服全局负载均衡支持静态和动态两种就近性方法,两种方式可以并存使用。

在静态就近性方法中,深信服全局负载均衡设备中都搜集了全球的IP地址形成地址库,并能够实现实时更新;当用户访问目标IP属于哪个运营商(或地区),就为用户选择这个运营商(或地区)的数据中心(或链路)。当用户请求没有包含在设备的地址库中时,深信服全局负载均衡设备将会主动查询该地址所属地区(或运营商),匹配之后再根据静态就近性为用户选择数据中心。如果上述两种方式都无法判别用户请求IP所属地区(或运营商),则直接使用动态就近性。

在动态就近性方法中,当用户发起访问请求时,深信服负载均衡设备可以通过综合考虑各数据中心的传输延迟和数据中心链路的实时负荷,准确计算出最佳路径,将用户引导至最佳的数据中心。

虚拟化在负载均衡器上的应用

为适应双活应用级数据中心建设,负载均衡器应实现虚拟化、Cluster冗余等多种技术的有机组合,将大量低端负载均衡器整合为少数高性能负载均衡器,极大地简化IT系统的结构并降低成本。

通过虚拟化技术有效避免多业务冲突的问题。采用虚拟化技术,把一台高端的物理负载均衡器划分成多个虚拟负载均衡器。每个虚拟负载均衡器运行不同的业务逻辑和网络结构,彼此之间完全隔离。任何一个虚拟负载均衡器上的安全问题或系统崩溃都不会影响同一平台上的其他虚拟设备。系统管理员可以灵活的在虚拟设备间分配平台资源以适应不断变化的应用流量。这样,可以把几十甚至上百个应用部署在一台高端负载均衡器上,彼此间毫无冲突且软硬件资源按需分配。各虚拟设备分配不同的管理界面,实现各自独立管理。

使用Cluster技术将多台负载均衡设备部署在同一个群集内,实现性能的水平扩展和设备之间的冗余备份,简化配置,方便管理,通过提供一个虚拟服务IP地址,以代理方式将虚拟服务IP映射为负载均衡器内部的全局虚拟服务IP,实现应用和网络链路负载,提高可用性和可靠性。虚拟化技术和Cluster带来的益处包括:

1、提高设备利用率。将多台低利用率的负载均衡器的负载整合到一台设备,提高硬件设备利用率,节省投资成本。

2、资源灵活分配。按需调整多个虚拟负载均衡器间的资源,无须再为单个应用的流量增加而购置新设备。

3、快速应用部署。相对于物理负载均衡器以小时,甚至以天计的安装时间,虚拟负载均衡器几分钟即可完成新应用的上线。

4、节能减排。采用虚拟化技术整合后,减少了负载均衡器数量,降低能耗,节省机架空间,提高机房密度。

网站的负载均衡解决方案 篇7

信息时代的高速发展, 推动了企业对信息化的高要求, 而Web服务成为了很多企业展示自己和交流的一个重要平台和手段。企业的网站服务器随着被访问的提高, 使得单一设备根本无法承担高访问量的负载处理。如果扔掉现有设备去升级设备, 这样将造成很大的浪费。于是, 负载均衡机制应运而生。负载均衡, 英文名称为Load Balance, 其意思就是将企业关键应用服务器和其它企业关键应用服务器的负载进行平衡、分摊到多个企业关键应用服务器和其它关键任务服务器操作单元上进行执行。负载均衡技术建立在现有网络之上, 它提供了一种廉价有效的方法扩展带宽和增加吞吐量, 加强数据处理能力, 提高服务器的灵活性和可用性。

二 负载均衡技术的应用

负载均衡技术的应用, 决定了企业服务器的高性能和高利用率。负载是不可避免的, 随着访问量的增加它就会增大, 面对负载我们只有很好的利用均衡技术把负载对服务器和网络的影响降到最低点, 提高企业服务器的利用率, 发挥服务器的高性能, 为整个企业提供快速和便捷的服务。企业可根据网站访问量大小来适当采用适合自己的负载均衡技术, 当访问量不大时可使用多台服务器来分担负载, 将不同的服务器用在不同的方面。按提供的内容进行分割时, 可以将一台服务器用于提供新闻页面, 而另一台用于提供游戏页面;也可以按服务器的功能进行分割, 将一台服务器用于提供静态页面访问, 而另一些用于提供CGI等需要大量消耗资源的动态页面访问。当企业网站访问量增大时, 还用分割法来均衡负载已不可用了, 由于业务量的发展将非常迅速, 并且, 网络新的应用层出不穷, 即使按照当前最优配置建设的网站系统, 也很快会落后于网络流量的发展。尤其是网站的核心部分, 其数据流量和计算强度之大, 使得单一设备根本无法承担, 而如何在完成同样功能的多个网络设备之间实现合理的业务量分配, 使之不至于出现一台设备过忙、而别的设备却未充分发挥处理能力的情况, 就成了一个问题, 负载均衡机制也因此应运而生。根据上述分析, 流量负载可能在网络中很多地方出现, 因而负载均衡策略也应有多种多样的形式。因此, 我们将从网络的层次来阐述一个企业网站的负载均衡方案。

1.服务器群集均衡方案

企业网站的Web服务器及其他应用服务器承载着重要的网站应用。然而, 单一计算机可以提供有限级别的服务器可靠性和可伸缩性。但是, 通过将两个或两个以上高级服务器的主机连成群集, 网络负载均衡就能够提供关键任务服务器所需的可靠性和性能。

使用多服务器的分布式结构, 将网站的Web和其它应用分布在多台服务器上, 即将企业网站的Web和其它应用服务分布在4台服务器上。其中每台服务器都具备等价的地位, 都可以单独对外提供服务而无须其他服务器的辅助。然后, 通过NG FW4000防火墙将外部发送来的请求均匀分配到4台服务器上, 接收到连接请求的服务器都独立回应客户的请求。由于通过同步分发, 建立内容完全一致的Web服务器并不困难, 因此基于服务器集群的负载均衡技术是很容易实现的。

NG FW4000防火墙可以支持一个服务器阵列, 这个阵列经过防火墙对外表现为单台的服务器, 防火墙将外部来的访问在这些服务器之间进行均衡, 同时可以识别出故障的服务器。防火墙的均衡策略如下:

顺序选择地址+权值。

根据PING的时间间隔来选择地址+权值。

根据CONNECT的时间间隔来选择地址+权值。

根据CONNECT然后发送请求并得到应答的时间间隔来选择地址+权值。

2.网站网络传输解决方案

由于企业网站在网站应用系统建设中, 要求应用系统模块之间的接口采用XML标准和Web Service规范, 同时, 作为一个综合性的大型网站, 要求提供标准的在线交易功能和安全可靠的网上支付功能。因此, 在网站网络传输的内容上, SSL和XML将占用相当的服务器资源, 会影响网络的传输速度。

SSL (加密套接字协议层) 是一种应用极为广泛的Web信息安全传送协议。目前, 98%的Web上的安全传送都运用SSL。SSL已经成了安全互联网交易中数据加密的工业标准, 由于SSL运用加密算法和密码, 其加密/解密过程需大量占用服务器的CPU资源, 使CPU利用率接近100%, 从而大大降低了服务器性能。当网络用户大大增加后, 网络性能将急剧降低, 很可能用户会因网络响应欠佳而失去耐心离开网站。

信息时代, 服务器反应速度至关重要, 为根本解决SSL给服务器运行带来的不利影响, 必须采用专门设备处理SSL协议, 以使服务器CPU从繁重的加密/解密过程中解脱出来。

当使用SSL加速器时, 所有非SSL数据流可以未受任何改变地通过加速器;但是当由SSL加密过的数据流经过SSL加速器时, 进入的SSL数据流被解密并干净地传给服务器, 而外流的SSL数据流被加密并传向客户。这样服务器只需简单地处理SSL请求, 原本消耗众多计算资源的HTTP/SSL现在被专用的SSL加速设备负责处理。使用了SSL加速器之后, 系统每秒处理的安全连接数可由原来几十个增长到数百个。当然, 如果需要最大限度地利用服务器, 也可以卸载SSL处理工作。

此外, SSL加速器可以实现灵活的动态堆叠, 实行自动的“任务分担”以得到最大的扩展能力。一般SSL加速器可以自动与所有类型的服务器协同运行, 并可以支持一台或多台服务器。

XML (扩展标识语言) 是SGML (标准通用标识语言) 的一个子集, 它已经快速取代EDI (电子数据交换) 成为B2B网上交易的统一格式。事实已经证明, XML所采用的标准技术最适合Web开发。XML支持结构化的数据, 可以更详细地定义某个数据对象的数据结构, 例如, 描述产品, 详细定义该产品的生产厂、产品名、产品号、产地等信息, 这种定义不仅为标记该产品提供方便, 而且这种XML数据很容易按生产厂、产品名等排序, 使用户的查询变得更方便。XML加速器可以将XML交易进行分类, 如按照商业合作伙伴名称或类型、交易价值或数量以及时刻或时区为依据, 配置业务优先级, 从而提高响应速度, 解放服务器资源, 更快地处理交易。智能化的XML加速器可以使用多变量分类包括与、或, 以满足复杂业务的优先级要求。还有的XML加速器自身提供服务器的负载均衡, 以达到快速、安全的目的。

3.基于网络的层次均衡策略

现代负载均衡技术通常操作于网络的第四层或第七层。第四层负载均衡将一个合法的IP地址映射为多个内部服务器的IP地址, 对每次动态使用一个内部IP地址来对应一次TCP连接请求, 已达到负载均衡的目的。第七层控制应用层服务的内容, 提供了一种对访问流量的高层控制方式, 适合对HTTP服务器群的应用。第七层负载均衡技术通过检查流经的HTTP报头, 根据报头内的信息来执行负载均衡任务。第七层负载均衡受到其所支持的协议限制 (一般只有HTTP) , 这样就限制了它应用的广泛性, 并且检查HTTP报头会占用大量的系统资源, 势必会影响到系统的性能, 在大量连接请求的情况下, 负载均衡设备自身容易成为网络整体性能的瓶颈。

三 结束语

网站负载解决方案很多, 本文主要从网站的层次上阐述了, 如何搭建一个网站的负载均衡机制, 做到防范于未然, 让网站很好的发挥其便捷性, 灵活性, 为企业的信息化建设保驾护航。

参考文献

[1]佘松庆.网络教学平台负载均衡解决方案[J].中国远程教育.2003 (23)

[2]朱利, 张兴军.Web服务器组的负载均衡方法研究[J].小型微型计算机系统.2003 (12)

[3]陈志刚, 刘安丰, 熊策, 张连明.一种有效负载均衡的网格Web服务体系结构模型[J].计算机学报.2005 (04)

ALAD动态负载均衡算法研究 篇8

关键词:动态负载均衡,自适应,应用层,服务器集群

0 引 言

随着计算机和Internet的高速发展,网络服务已经逐渐成为主要的商业手段,服务器承载的信息量和访问量成几何级数增长[1],有效地利用服务器资源处理海量的访问请求是一个关键的问题,服务器集群成为一种能够提供高性能和高可靠性的解决方案。集群由多台互联的服务器组成,为Internet服务提供了数据冗余、服务能力冗余、内容分发等技术,多台服务器可以同时进行多个事务处理,提高了性能。以Web服务为例,用户的HTTP请求被均衡地、透明地分配到集群中具体的服务器上执行,并将结果返回给用户。由于集群中服务器数量的众多,需要通过有效的负载均衡算法,将用户的请求合理的分配给这些服务器。由于集群中每台服务器的负载水平的不同,合理、均衡地分配任务到各台服务器上,并实时地将任务较多的分配到负载更轻的服务器上,从而平衡系统负载,提高系统的整体处理能力和服务质量是现在的重点研究内容。

1 研究现状

现有的负载均衡算法可以分为静态负载均衡算法和动态负载均衡算法。静态负载均衡算法按照固定的方式分配请求,它并不考虑应用服务器的运行状态,只是按照特定的或者理想的方式进行分配。一种常见的负载均衡算法是根据各个应用服务器的处理能力C1,C2,C3,…,Cn,按照概率Ρk=Cki=1nCi随机分配请求。另一种静态负载均衡算法是轮询算法(Round Robin),它将用户请求依次分配给应用服务器。静态负载均衡算法优点在于算法简单、运行速度快,不会对负载均衡服务器造成较大负担,但是缺点是算法的条件理想化、人为确定的因素较多,不能用于复杂的应用场景。

动态负载均衡算法[2]通过在一定的时间窗口内,不断更新应用服务器的状态信息,通过一定的方式计算出其负载,根据负载均衡算法,选择一台服务器处理请求。动态负载均衡算法更加符合现实场景,有效的分配请求,合理地利用应用服务器的处理能力。常见算法采用的负载因素有服务器连接数、服务器集群的LARD以及综合计算CPU、内存和硬盘运行状态[3]等,执行的动态负载均衡算法常见的有加权轮询(Weighted Round Robin)[4]、最小负载[5]、哈希[6]等。

文献[7]介绍了动态负载均衡算法Pick-KX,该算法从可用的服务器集群中随机挑选出K台服务器,之后按照其负载水平,依概率分配请求。Pick-KX算法无法在异构的服务器集群中发挥作用,其性能计算方法只适用于相同的计算机,并且依概率分配的方法随机性大,容易出现负载的波动。

文献[8]提出的动态反馈负载均衡算法,考虑了服务器的处理能力,同时实时计算服务器的负载,根据每台服务器当前负载比例值得出服务器动态的分配权值,按照分配权值加权轮询。该方法使用了负载向量和负载权值向量计算服务器负载,可以有效地实现动态的负载平衡。但是该算法的缺点在于负载向量有很多方向,考虑了大量的负载因素,这种情况下容易出现过拟合的问题,并且不重要的负载因素变化反而会影响算法的最终性能。

综合以上分析,我们需要确定更加有效的负载因素,可以正确地反映集群中计算的负载变化,避免使用随机和复杂的算法,减少人为因素的干扰,自适应地选择服务器。最终的目的是降低服务器集群系统的总体响应时间、提高吞吐量。本文主要探讨一种应用层自适应(ALAD)动态负载均衡算法,介绍该算法使用的负载因素和计算方式,讨论自适应选择算法的原理,并通过实验验证这些因素可以有效地反应系统的负载变化,证明自适应选择算法可以合理地分配负载,达到更好的负载平衡效果,更有效地利用系统资源。

2 ALAD动态负载均衡

ALAD动态负载均衡算法首先收集应用服务器的负载因素,计算综合负载权重,将该权重作为重要的参数,执行自适应选择算法,计算出每台应用服务器的饥饿度,选择饥饿度最大的服务器执行负载。本算法在计算负载因素时,充分考虑到应用层特点,并且没有人为设定的参数值,而是根据服务器的运行情况,自动适应各个服务器的负载水平,调整负载的分配方法。下面我们将详细介绍负载因素、综合负载权重的计算和自适应选择算法的具体内容。

2.1 负载因素

ALAD动态负载均衡算法所采用的负载因素以各个应用服务器的响应延迟为主要参考,将应用服务器的请求处理成功率和运行时间作为辅助因素。这三个因素均可以直接在负载均衡服务器上收集,通过收集的数据计算最终每一台应用服务器的综合负载权重。下面将详细叙述这三个因素的原理和综合负载权重计算方法。

(1) 响应延迟因素LatFact

假设一共有n台应用服务器S1,S2,S3,…,Sn,在负载均衡服务器端,可以检测到每台应用服务器处理请求的发送时间rsent、处理时间rproc和接收时间rreci,通过下式可以计算出每台应用服务器处理器请求的总体延迟时间lat:

lat=rsent+rproc+rreci (1)

总体延迟时间lat综合反映了应用服务器自身的负载状态以及负载均衡服务器和应用服务器之间的网络状态,lat值越小表明应用服务器的处理能力越强,网络状况越好。通过lat计算每台应用服务器的响应延迟因素LatFact:

LatFactk=min(lat1,lat2,lat3,,latn)2latk (2)

较小响应延迟的应用服务器将会得到更大的响应延迟因素值。

(2) 成功率因素SuccFact

在负载均衡服务器端,记录每台应用服务器被选中处理请求的次数elct;每台应用服务器处理请求出错的次数fault。根据收集到的数据,计算应用服务器的成功率因素SuccFact:

SuccFactk=(elctk-faultk+100elctk+100)1.2 (3)

成功率因素SuccFact体现应用服务器成功处理请求的概率,文献和实验均表明对于一台正常运行中的应用服务器有SuccFact≥0.9[9]。式中分子分母取100作为起始值能够避免刚开始运行的服务器由于偶然的出错而导致SuccFact大幅度下降。

(3) 连续服务时间因素TimeFact

在负载均衡服务器端,收集每台应用服务器连续提供应用服务的时间t,根据收集到的数据,计算所有应用服务器连续服务时间中的最大值tmax:

tmax=max(t1,t2,t3,…,tn) (4)

tmax和t,计算应用服务器的服务时间因素TimeFact:

对于应用服务器,刚开始运行服务的服务器压力要小于已经运行了较长时间的服务器[9],因此应当将更多的请求分配给服务时间较短的机器。该公式根据应用服务器连续服务时间的不同,使得TimeFact∈[1,3],并且逐渐趋向于1。

(4) 综合负载权重LoadFact

负载均衡服务器收集应用服务器的性能数据,通过上面的定义计算出三个因素值,最后计算出每台应用服务器的综合负载权重LoadFact:

LoadFact=⎣LatFact×SuccFact×TimeFact」 (7)

综合负载权重LoadFact的值与当前应用服务器以及网络的负载能力成正比,在后面的自适应选择算法中,将被用于计算应用服务器饥饿度。

2.2 自适应选择算法

在自适应选择算法中,定义当前总请求数量为TotalRq。合理的负载均衡算法应当使得请求的分配情况可以按照每台应用服务器的LoadFact成比例进行,以充分发挥处理能力较强的服务器的性能,那么对于应用服务器应当有:

elctΤotalRqLoadFacti=1nLoadFacti (8)

以此为目标,基于上文的综合负载权重LoadFact,定义应用服务器的饥饿度为hungry,计算公式如下:

hungry=ΤotalRq×LoadFact-elct×i=1nLoadFacti(9)

通过计算得到应用服务器S1,S2,S3,…,Sn的饥饿度,就可以选择其中饥饿度最大的一台服务器λ,也就是使得λ满足:

hungryλ≥(hungry1…n)|λ∈[S1,S2,S3,…,Sn] (10)

服务器λ被选中后,将负载转交给它进行处理。结合上一节中介绍的负载因素和综合权重的计算,自适应选择算法的具体执行步骤如下:

Step 1 用户的请求R到达负载均衡服务器;

Step 2 负载均衡服务器收集应用服务器S1,S2,S3,…,Sn的运行信息,包括发送时间rsent、处理时间rproc和接收时间rreci;处理请求的次数elct;请求出错的次数fault;连续提供应用服务的时间t;

Step 3 由式(1)-式(6)分别计算每台应用服务器负载因素LatFact1…nSuccFact1…nTimeFact1…n,之后通过式(7)计算综合负载权重LoadFact1…n;

Step 4 根据Step 3得到的LoadFact1…n,由式(9)计算每台应用服务器的饥饿度,得到hungry1…n;

Step 5 根据式(10)选择饥饿度最大的应用服务器λ,满足hungryλ≥(hungry1…n)且λ∈[S1,S2,S3,…,Sn];

Step 6 将R分发给应用服务器λ处理,elctλ+1,如果λ出错,则faultλ+1,至此完成一次算法执行流程。

简单的测试显示,在例如有两台服务器A、B组成的集群,它们的综合负载权重LoadFact值分别为320和680,那么根据该选择算法,实际运行时的分配序列是ABAAABAABA…的循环。从结果序列可以看出其中70%的负载交给服务器A,30%的负载交给服务器B,表明该算法能够按照已经计算好的综合负载权值进行负载分配,并且具有稳定的结果序列。通过执行该算法,当所有应用服务器的选中次数均达到期望值,最终所有的应用服务器饥饿度均为0。

3 实验和结果分析

试验中我们一共使用6台计算机组成一个小型实验服务器集群,其中1台作为负载均衡服务器,1台作为数据库服务器,另外4台作为应用服务器。负载均衡服务器运行一个基于Apache HTTP Server的负载均衡服务程序,分别实现了本文提出的ALAD动态负载均衡算法、动态反馈负载均衡算法和静态加权轮询算法[10]。数据库服务器进行了专门的设置,可以支持并发1024个连接,使其不成为测试中的瓶颈。4台应用服务器运行Apache Tomcat服务,并且均部署了统一的J2EE测试应用,使用局域网络共享Session。4台应用服务器基准性能测试显示性能比为4∶4∶3∶3,我们将静态加权轮询算法中的权值按照此性能比进行设置。J2EE测试应用包含了Internet应用服务常见的页面生成、数据库访问和写入操作,代码来自于实际运行的系统。

实验中我们使用测试计算机并发大量请求,向负载均衡服务器发送HTTP POST数据,一共发送5000次。得到如图1所示平均响应时间。

图1中,横坐标表示测试时采用的并发连接数,分别是50、100、200、500和1000,纵坐标表示集群的总体响应时间,单位为毫秒(ms)。

响应时间图表明,在较低的并发连接情况下,应用服务器负载压力不大,三种负载均衡算法下均可以达到较短服务器响应时间。随着并发连接数的提高,应用服务器负载出现变化,4台服务器由于性能和负载水平的不同,响应延迟开始出现差别。静态加权轮询算法不能根据负载调整请求的分配,请求堆积在高负载的应用服务器上,使总体响应时间明显提高。动态反馈负载均衡算法能够调整负载的分配,但是由于其负载水平计算对真实的运行情况反映不够准确,甚至在某些情况性能不及静态算法。

本文的ALAD动态负载均衡的综合负载权重所选用的三个因素相比动态反馈算法中复杂的负载向量更能有效地反映当前应用服务器的负载,自适应选择算法合理地选择负载较轻的服务器,将负载更多地分配给两台性能较好的应用服务器,将总体响应时间控制在正常的水平。

实验中服务器集群的平均吞吐量结果如图2所示。

图2中,横坐标表示测试时采用的并发连接数,分别是50、100、200、500和1000,纵坐标表示集群的吞吐量,单位为MB/s。

在并发数量较低的情况下,由于实验用服务器性能较强,三种算法难以拉开差距。当并发连接数量逐渐增大,本文的ALAD算法逐渐显示出优势,当200个并发线程时,已经达到甚至超过测试服务器的承载能力,对比的两种算法开始出现性能下降,而ALAD算法仍然保持较高的吞吐量。在500和1000线程并发的高负载情况下,ALAD算法也能够提供高于对比算法的吞吐量。吞吐量的实验结果也证明了本文选择的三种性能因素可以有效地反应集群系统中应用服务器的负载情况,并且自适应选择算法能够有效的平衡负载,其实际表现优于对比的算法。

我们在实验中记录的ALAD动态负载均衡算法请求分配情况如图3所示。

图3中,横坐标表示测试进行的时间,纵坐标表示服务器被选中的累计次数。

从图中可以看出,本文采用的自适应选择算法将更多的请求分配给了性能较好的两台服务器,并且基本符合基准测试的4∶4∶3∶3的性能比例。分配情况比较平稳,没有出现大幅度波动的问题。

4 结 语

服务器集群已经成为提高Internet服务性能和可靠性的主要方案,负载均衡算法的优劣直接影响集群总体响应时间和吞吐量。本文介绍的ALAD动态负载均衡算法,通过收集应用服务器的负载因素,计算综合负载权重,将该权重作为重要的参数,执行自适应选择算法,计算出每台应用服务器的饥饿度,选择饥饿度最大的服务器执行负载,最终达到负载平衡的效果。ALAD动态负载均衡算法采用的三项负载因素能够有效地反映出应用服务器的运行情况,为自适应选择算法提供了关键的执行参数,保证了其有效性,实验验证了本方法能够平衡Web集群系统的负载、降低总体响应时间、提高吞吐量。不过ALAD算法实现的时间复杂度和应用服务器数量有关,在大规模的服务器集群中可能会出现负载均衡器的性能问题,因而计算方法需要更进一步优化,对ALAD动态负载均衡算法的改进将是我们下一步的研究内容。

参考文献

[1]Labovitz C,Iekel-Johnson S,McPherson D,et al.Internet inter-do-main traffic[C].ACM SIGCOMM conference,2010.

[2]Boudreau D,Borden J M,Philippou J A,et al.Network switch load balancing[P].US patent,6788692,Sept.2004.

[3]郑洪源,周良,吴家祺.Web服务器集群系统中负载平衡的设计与实现[J].南京航空航天大学学报,2006,38(3):348-351.

[4]Teo Y M,Ayani R.Comparison of load balancing strategies on cluster-based web servers[J].SIMULATION,November2001,77(5-6):185-195.

[5]Guo J N,Bhuyana L N.Load balancing in a cluster-based web server for multimedia applications[J].Parallel and Distributed Systems,IEEE Transactions,2006,17(11):1321-1334.

[6]Cao Z R,Wang Z,Zegura E.Performance of hashing-based schemes for internet load balancing[C]//Nineteenth Annual Joint Conference of the IEEE Computer and Communications Societies,2000.

[7]Cardellini V,Colajanni M.Dynamic Load Balance on Web-server Sys-tems[J].IEEE Internet Computing,2002,3(3):28-39.

[8]王春娟,董丽丽,贾丽.Web集群系统的负载均衡算法[J].计算机工程,2010,36(2):102-104.

[9]Fujii T,Dohi T.Statistical failure analysis of a web server system[C].Availability,Reliability and Security,2009.

无线Mesh网负载均衡技术 篇9

关键词:WMN,自适应,负载均衡,负载均衡算法

1 WMN负载均衡的设计背景与发展趋势

1.1 WMN负载均衡的设计背景

近年来随着无线宽带技术的迅速发展, 无线通信技术被越来越广泛地使用, 无线通信节点迅速增加, 在这种高业务量环境下, 如果网络中某个节点发生拥塞, 成为整个网络的瓶颈节点时, 人们就希望数据包能顺利地“绕过”该节点, 平稳地到达目的节点;同时还希望提高网络资源利用率, 避免出现一部分资源被过度利用, 而另一部分资源却闲置在一边造成资源浪费, 从而达到整个网络的负载均衡, 正是在这种需求下, 负载均衡受到越来越多地关注。

而WMN主要应用于无线宽带接入和大容量数据传输, 侧重于提高整个网络的高吞吐量, 因此很容易出现单节点拥塞现象, 如何提高网络传输容量自然就成为WMN主要的设计目标。

1.2 负载均衡发展趋势

目前WMN组网协议设计的基本思路是:根据WMN的结构特性, 硬件上利用新的无线电技术, 提高频谱空间复用和多信道技术;算法上在参考 (Mobile Ad hoc Network, MANET) 相关协议的同时, 依据现有的有线网络均衡思想, 再根据WMN的特点优化负载均衡算法, 同时还要考虑网络拓扑结构的变化、上层业务数据的速率变化以及节点能量的变化等多个方面因素。

2 现有的负载均衡策略

为了实现无线mesh网的负载均衡, 目前通常采用的策略是:提高硬件技术和改进算法。

2.1 硬件技术对负载均衡的支持

无线mesh网的传输, 采用的是多跳技术, 节点与节点间数据传输不可避免的会出现同频干扰现象。为提高频带利用率, 硬件上采用新的物理层无线电技术, 如:定向智能天线、自适应调制编码、 (Multiple Input Multiple Output, MIMO) (多输入/多输出) 技术、可重配置无线电、感知无线电、软件无线电技术以及多信道系统功率智能控制等技术, 降低节点间同频干扰, 提高了空间频率复用和网络容量, 且降低了整体信号功率。

WMN的优势在于:在不牺牲信道容量的情况下, 在一些AP (Access Point) 信号覆盖不到、信号很弱或者根本不具有直接视距无线链路的用户之间, 通过移动终端多跳转发, 建立非视距连接, 这样可以有效提高信号覆盖, 扩展网络范围。在此架构下, 无线链路间距更短、发射功率更小, 节点间干扰更少, 因此频率复用效率更高。并且距离较近的终端节点可以直接通信, 而无需占用AP的资源, 减少网络整体的负担, 提高网络的总容量。

早期的功率控制研究大多是基于图论的拓扑控制模型。如果两个节点之间的距离是在无线传输范围内, 则两个节点就是邻居节点, 就可以建立一条边。而传输范围取决于信号功率、路径距离、以及接收灵敏度等因素, 因此要在保持连通性的前提下尽量减少节点的度数, 而度数的减少也就意味着节点间的干扰也小了;而最近的研究表明, 基于图论的拓扑控制模型并不能完全刻画节点间的互相干扰问题, 转而采用基于SINR (Signal to Interference plus Noise Ratio) 信号与干扰和噪声比来进行功率控制, 通过感知周边节点的拓扑结构, 采用自适应算法智能控制单节点信号发射功率, 动态调整载波侦听门限值, 从而提高空间复用度。但是降低节点信号功率的同时也可能带来一些问题:比如可能造成数据包传输率的下降, 此外由于信号覆盖面降低, 传输的跳数会增多, 造成时延增大, 还会导致AP邻近节点负载过重的问题, 这些都是今后研究中需要解决的课题。

2.2 基本的网络负载均衡算法

现有的负载均衡算法继承了有线网络的思想, 主要包括以下几种:

(1) 轮转法。

在节点信号覆盖区内的所有节点都具有同等地位, 对这些节点采用顺序选择, 将收到的数据包轮流发送给下一跳节点。因此可以很容易算出, 每个节点被选中概率是1/N。

(2) 散列法。

通过单映射不可逆HASH函数, 以事先定义的规则的映射方式, 将数据包发往下一跳。在该算法中, 如何选择HASH函数, 对预防碰撞影响很大。

(3) 最少连接法。

纪录当前所有活跃节点, 将数据包发给目前具有最少连接数的偏僻节点。

(4) 最短时延法。

记录节点到下一跳节点的时延, 将数据包分配给时延最短的节点。

(5) 权重轮循法。

根据数据包的优先级或者当前的负载状况来建立负载平衡多优先级队列, 每个队列中的每个等待发送的数据包都具有相同处理等级;在同一个队列里的数据包可以按照前面的轮转法或者最少连接法进行均衡, 而队列之间按照优先级的先后顺序进行均衡处理。在这里权重值是基于每个节点传输能力的一个估计。该算法可以看作是对其它算法的一个补充, 一般不单独使用。

(6) 权重随机法。

此种均衡算法类似于加权法, 不过在传输数据包时是个随机选择的过程。

(7) 随机法。

节点队列里的数据包随机传输给邻居内的多个节点。

(8) 动态反馈法。

根据结点的实时负载情况, 不断调整节点间数据包的传输比例来避免个别结点超载时, 依然收到大量数据包, 造成丢包, 从而提高系统整体吞吐率。

2.3 基于无线mesh网的负载均衡算法

2.3.1 预设参数机制

此类算法会预先设定好用于计算负载的相关参数和权系数, 当负载超过预先设定的阈值就执行事先定义的均衡操作, 但是由于是参数是预先设定的, 如参数设置不当, 有可能导致系统性能严重下降, 而参数的设置既是关键点, 也是难点。目前已经有人提出具有负载感知的自适应算法, 通过不断更新负载信息实现自主学习, 并且自动进行参数的最优化, 使网络负载逐步实现均衡。例如:LWR (Load Aware Routing) 算法在网络负载较重时, 中继节点收到源节点发送来的RREQ (Route Request) 时就直接丢弃。这种丢包策略对减少无效数据包的转发, 降低负载具有十分重要的作用。但是该算法只有在收集到足够的负载信息的条件下才能做丢包决策, 否则, 可能会使后续节点无法及时了解网络状态, 导致网络出现“隐藏节点”和“伪断裂”现象。LSR (Load Sensitive on Demand Routing) 算法则通过路由比较函数所得出的权值来选定一条最佳的路由。

2.3.2 基于负载感知机制

负载均衡是一个动态过程, 因此有学者提出了基于流的负载感知路由协议:链路上每个节点都参与负载信息的更新过程。由于路由发现需要进行泛洪, 路由更新需要负载参数传递。泛洪可以获得精确的网络信息, 但要消耗大量的网络资源, 负载参数的频繁传递会使整个网络充斥着大量的控制包, 造成网络资源利用率降低。因此根据路由选择和维护发起点又分为源节点感知、中继节点感知和目的节点感知路由选择。

(1) 源节点感知路由选择。

这类算法采用源节点发起路由选择和路由维护, 中继节点感知网络状态并把负载信息发送给源节点。

AMR (Aggregated Multipath Routing) , 采用请求/响应机制的按需路由算法, 源节点采用类似于DSR (Dynamic Source Routing) 泛洪方式来获取网络状态信息并建立多路径拓扑结构。当网络出现拥塞或者失效时, 源节点通过修改路由, 来避开该链路。该算法由于采用网络图来保留路由状态信息, 复杂度是O (n2) , 因此存储复杂度偏大, 而且路由请求中存有大量冗余信息, 过长的等待期以及路径计算复杂度大都是需要解决的问题。

MSR (Multi Path Source Routing) , 基于启发的、利用加权轮询多路径调度机制实现负载均衡。类似DSDV (Destination-Sequenced Distance Vector) , MSR也是通过源节点沿多条路径周期性发送探测包, 根据反馈信息计算各路径延时并求出权值, 再把负载依据权值, 分配给多条路由。

DLAR (Dynamic Load Aware Routing) , 该算法避免采用MSR周期发送探测包的方式, 改由中继节点, 周期性地将自身缓存中数据包的数目作为负载信息发给邻居节点, 后续节点据此参数来监测负载状态。如果出现拥塞现象, 目的节点通过广播发送请求数据包 (RREQ) 至源节点, 寻找替代路由。为了减少广播次数, 后续的算法中出现了, 由目的节点或者拥塞节点后的中继节点来进行路由维护和选择。

(2) 中继节点及目的节点感知路由选择。

采用中继或目的节点进行备用路由的选择和维护, 比采用源节点选择路由具有更好的灵活性和更高的可靠性。

LBAR (Load Balanced Ad Hoc Routing) , 从源节点到目的节点链路上的结点参数都会周期性的传送到目的节点。当链路发生拥塞或者主路径失效后, 目的节点根据收集的所有可能路径的相关信息选出最佳路径作为备用路由。作为ABR (Associativity Based Routing) 的改进协议, LBAR更能准确细致的反应网络的环境特性。

DLLMR (Dynamic Load-aware Based Load-balanced Routing) , 一种基于DSR的改进算法。源节点利用多条路由, 搜索剩余负载容量的节点来进行路由选择和负载均衡。目的节点向源节点发送RREP (Route Reply) 时, 中继节点根据分组中的负载信息更新自己的路由表, 同时广播寻找更好的路径。

LLDR (Least Loaded Dynamic Routing Protocol) , 由源节点来建立传输路径, 而路由维护由目的节点来完成, 中继节点不发送探测包, 而是采用DF (Dynamic Fragmentation) 机制:在分组中周期性捎带负载信息, 使后续节点能及时了解链路上的负载状况。当负载超过门限, 目的节点会重新选择一条路由

2.3.3硬件与算法相结合的负载均衡机制

采用软件与硬件相结合的方式, 通过自适应技术对负载进行实时监测与控制, 实现信号发射功率与传输性能的最优化, 由于充分利用了无线mesh网的结构特性, 使得这种思想具有重要的现实意义。

MRPLB (Multi Path Routing with Load Balancing) , 一种利用报文粒度的流量分布方法和负载均衡机制共同作用来实现拥塞避免。该算法需要硬件支持来实现对信号发射功率的实时监测, 利用智能控制技术把信号发射功率降低到一个合理的水平, 使节点间干扰更少, 频率复用率更高。

3结束语

本文首先介绍了通过硬件合理控制信号发射功率来降低节点间同频干扰, 提高频带复用率来均衡网络资源;然后分析和比较了当前提出的几种负载均衡路由技术各自的优缺点。通过分析, 笔者认为:目前路由选择机制, 已开始由单纯的源节点路由选择向多节点共同参与路由选择, 这样不但提高了灵活性而且增强了网络的健壮性;此外均衡算法也陆续开始向软、硬件相结合以及智能化方向发展, 由于自适应算法具有自主优化系统参数、自我学习能力、高度的灵活性和对网络负载的敏感性的特点, 都将成为未来无线mesh网络的重点研究方向之一。

参考文献

[1]方旭明.下一代无线因特网技术:无线Mesh网络[M].北京:人民邮电出版社, 2006.

[2]M.JOA-NG, I.U, A peer-to-peer zone-based two-level ink stateroutingfor Mobile ad hoc networks[J].IEEE Journal on SelectedAreas in Communications, special Issue on Wireless Ad hoc Net-works, 1999 (8) .

[3]王彬.无线局域网中的负载均衡技术[J].中兴通讯技术, 2006 (06) .

浅论动态反馈负载均衡算法 篇10

负载均衡是一个服务器集群, 它是由多台服务器以对称的方式组成的, 每台服务器都有等价的地位, 不需要其他服务器的辅助, 因为它们都可以单独的对外提供服务。均衡负载能够平均分配客户请求到服务器集群, 以此提供快速获取重要数据, 解决大量并发访问服务问题。

目前负载均衡的分类可以从以下几面来分:

首先, 根据调节策略的不同, 可以分为静态负载均衡和动态负载均衡两类:

(1) 静态负载均衡。静态负载均衡预先根据已知负载的情况分配网络负载, 这种策略的优点是不会产生额外的开销[1]。 (2) 动态负载均衡。系统根据网络中的负载情况动态的调度服务器提供服务, 但在动态调度时对任务的分配管理会造成额外的系统开销。

其次, 根据调节手段的不同, 可以分为以下两类:

(1) 软件方案。软件解决方案是将负载均衡软件直接安装到服务器上。网络管理员可以对服务器进行高度管理, 如分析CPU、内存等系统资源的使用情况。由于传输流不必经过额外的设备, 因此在理论上可以节省费用、提高性能。 (2) 硬件方案。通过提供额外的硬件来实现负载均衡, 如提供具有负载能力的路由器、交换机。

再次, 根据调节对象的不同, 可以分为以下四类:

(1) 服务器的负载均衡。通过监视所有的用户请求, 并在可用的服务器群之间进行智能化的负荷分配, 从而可以提供容错、冗余、优化和可扩展性能。 (2) 高速缓存服务器的负载均衡。提供优化的Internet访问和存储资源使用率, 同时, 也使整个服务器集群的性能得以最大程度的发挥。 (3) 防火墙的负载均衡。防火墙的负载均衡通过有效地管理多个防火墙和其他安全设备上的流量。监视客户的数量和每个防火墙上的负载, 并在各单元之间动态地平均分配流量, 同时还可兼顾呼入和呼出的流量。 (4) 链路的负载均衡。链路的负载均衡是一种基于内容的交通管理解决方案, 适用于具有多个链路的网络[2]。

2 动态反馈的负载均衡的现状

2.1 负载均衡产品的巨大应用领域

伴随着计算机进入以网络为中心的计算技术新时代, 电信系统、电子政务、电子商务、网络邮件、网络视频等各种基于网络的服务业得到了飞速发展。随着人们对于网络服务的需求不断增加, 企业关键服务的访问量也在迅速增长。网络服务的持续在线和更迅速响应时间的要求, 加强了企业对能提供7×24小时不间断、高质量网络服务的信息基础设施的需求, 网络应用优化设备将成为继网络连接设备、网络交互设备、网络完全设备之后的网络信息化建设的必备设备。

2.2 负载均衡产品的庞大市场需求

负载均衡集群系统一直被业界看好, 据IDC最新报告, 随着基础网络的完善和应用的增多, 亚太地区 (不包括日本) 的企业正在增加在内容管理软件上的支出, 负载均衡集群系统市场有望因此得到很大的增长幅度。IDC新近报告指出亚太地区 (不包括日本) 内容管理软件市场有望从2003年的1.0942亿美元增长至2008年的2.1938亿美元, 5年的复合年增长率达到14.9%。这主要是受到金融和政府部门推动, 前者试图降低成本, 提高客户服务水平, 后者的主要目标是降低成本, 提高效率, 以便为人们提供更好的服务。IDC预测中国内地流量市场5年复合年增长率达20.2%, 并认为需求将越来越多地来自竞争同益加剧的银行业, 此外还包括通过政府门户网站向公众提供及时更新的信息, 以及部署Web内容管理软件解决方案等。从2004年第四季度到2005年第一季度, 世界范团内的负载平衡设备出货量增长10%, 为1.1万部, 销售额增长5%, 达到1.75亿美元。2003年3季度F5的国内营业额为1300万美元, 估计其年营、世额为5000万美元左右, 按其60%的市场占有率计算, 2003年此类产品的国内市场容量为8000万美元, 即6.5亿人民币左右[3]。

3 动态反馈的负载均衡算法

动态调度策略主要有两种:集中式调度策略和分布式调度策略。通过把原来集中式调度由中心节点收集所有节点信息的工作, 改由各节点自适应的收集, 根据自身状态主动传给调度中心就可以实现。这样中心调度节点只需根据当前已有的各节点发来的负载信息来进行决策调度, 不必再去主动收集各节点机的信息, 降低了由于负载信息收集增加的额外通信开销, 减轻了调度节点负担。

集中式调度中不可能每次请求到来时查询各节点负载情况, 可以每隔一段时间进行一次负载信息的查询、计算。同样, 分布式反馈中也可以每隔一段时间由各节点根据自己的性能和负载状态计算出一个值, 返回给负载均衡器。负载均衡器根据一定算法给出每个节点的可用度权值w, 把新到达作业分配给可用度最高的节点。由于每次的负载状态信息的反馈都会有一个时间片段, 如果在这个时间内到达多个请求均简单地分配给一个节点, 则可能会造成这一节点的过载。因此还必须由负载均衡器根据一定算法评估当前服务节点的真实负载, 这就要考虑服务器节点各项性能参数, 包括静态参数 (如:CPU频率, 内存容量, 系统I/O速率, 网络带宽等) 和动态参数 (如:CPU占用率, 内存使用率, 系统I/0使用率及网络带宽占用率等) , 并且要考虑某时段内各种动态参数的改变情况, 综合分析, 给出一个合理、简便的算法, 确定各服务节点权值, 达到负载均衡的目的。

3.1 动态反馈机制

集群系统运行一段时间之后, 各服务节点的实际负载状况会与调度器上记录的负载量产生一定的偏移。因此, 需要通过周期性的负载信息查询来修正调度器上的记录。这种“查询—修正。任务分配—查询”称为动态反馈机制。由于动态反馈机制需要额外的系统开销, 所以对于每一个新来到的服务请求来说, 我们不可能部去进行一次负载信息查询, 而只能在每个r时间间隔作一次节点负载信息查询。每次负载信息查询得到的是每个服务节点上的各项信息, 例如CUP占用率L (Ci) 、磁盘I/O占用率L (Di) 、内存占用率L (Mi) 、网络带宽占用率L (Ni) 、进程数量占用率L (Pi) [4]。

3.2 服务节点处理能力计算

我们在进行负载均衡计算时, 如果服务节点是异构的, 则不仅要考虑节点的负载量, 而且也必须要考虑到节点的处理能力。这样做的好处是能让处理能力高的节点承担更多的任务。对于节点Si的处理能力C (Si) , 主要从这几个指标考虑:CPU数量m、CPU类型、内存容量C (Mi) 、磁盘I/0速率C (Di) 、网络吞吐量C (Ni) 、最大进程数量C (Pi) 。

总之随着信息技术的发展, 特别是Web技术的发展, 对网络上的服务器提出了越来越高的要求, 越来越多的瓶颈会出现在服务器端。集群技术是实现高性能服务的一种有效途径。服务器集群负载均衡应用成倍提高了服务器应用的可用性、可伸缩性和可靠性, 扩展了服务器带宽和吞吐量, 加强了网络数据的处理能力, 提高了网络的灵活性和可用性。

摘要:随着我国Internet的迅速发展, 几乎户户有主机, 人们对服务器的性能要求也越来越高, 目前很多系统状态都是采用动态反馈负载均衡算法。在此旨是浅谈动态反馈负载均衡算法的应用。

关键词:负载均衡,动态反馈,算法

参考文献

[1]李拮, 金春慧, 何荣希.一种实现负载均衡的波长选路算法[J].东北大学学报, 2005, 26 (2) :118-121.

[2]王友良, 叶柏龙.分布式系统中动态负载平衡的研究[J].科学技术与工程, 2005:572-575.

[3]付国为, 刘心松, 冯玮.基于负反馈的网络负载调度算法[J].成都信息工程学院学报, 2006, 21 (6) :779-782.

负载均衡器 篇11

关键词:负载均衡;网络

中图分类号:TP393.18 文献标识码:A文章编号:1007-9599 (2010) 04-0000-01

Promote Campus Networks Functions Using Load Balancing

Hao Minchai,Qiao Zhenmin

(1.Shijiazhuang Technology College, Electrical&Electronic Engineering Department, Shijiazhuang050081,China;2.Shijiazhuang Technology College,Office Shijiazhuang050081,China)

Abstract:This thesis focuses on dividing pressure in several servers through load balancing technology to solve the problem of heavy load of CPU or I/O caused by simultaneous accessing.

KeyWords:Load balancing;Network

随着网络应用的不断深入,网内的信息流量快速增长,当用户量及其应用量很大时,在同一时刻主机服务器可能要承受大量用户的来访请求,然而一台主机的处理能力是有限的,倘若访问量的增长超过了主机的处理极限,主机的处理能力就会成为网络应用的瓶颈,这将制约网络应用的继续发展,对于提供解决以上问题的应用系统至关重要,负载均衡系统应运而生。

一、主要的两种解决方法

(一)要从硬件和网络结构上尽量提高网络和系统性能和效率

采用高性能的PC服务器作为网络服务器,提高服务器的计算和负载能力。采用大容量、高传输速率的存储系统和利用RAID 5技术实现很高的读写速度和性能。对于流媒体服务和WEB应用,采用千兆技术实现到INTERNET的高速接入;选用高性能的防火墙用于提供内外网访问,实现高效的WEB访问。

(二)使用流量分担技术

在网络内增加多台主机服务器,并让这些服务器保存和处理相同的应用内容。这样的主机服务器并不一定要求是技术最先进、性能最强大的,所以投资可以相对较少,但是由它们组成的服务器群,却能够共同完成网络的服务功能。优点:当用户来访时,这些服务器轮流响应不同用户的请求,通过流量分担技术把大量的用户请求自动地分散到了不同的主机服务器中处理,从而减少了单个主机上的任务量,实现了网络流量在多台主机间的平衡处理,在完成同样功能的多个网络设备之间实现合理的业务量分配,使之不至于出现一台设备过忙、而别的设备却未充分发挥处理能力的情况。

二、负载均衡实现的方式

(一)基于软件的负载均衡

通过自己的agent(由负载均衡产品厂商开发)或者使用一些系统管理工具的模板,来收集关于后台服务器的信息,并根据这些信息调整对资源的分配。Agent是为特定的软件和硬件服务的,它能够非常严密地监视应用状况。使用现有系统管理工具的负载均衡产品可以通过API和公共协议监视更多的软件和硬件。

优点:如果你的网络发生了变化,或者你需要一些特殊的功能,软件能够非常快地进行升级并满足你的需要。

(二)基于硬件的负载均衡产品

基于硬件的负载均衡通常是由路由器和switch完成的。这些设备使用ASIC(application-specific integrated circuits),以线速运行。优点:这是最快的负载均衡产品。

三、负载均衡产品实现的方案

在市场上有几代不同的负载均衡的方案,它们的功能从简单逐渐变得复杂。

第一代负载均衡产品只是简单的round-robin DNS机器它能够把HTTP进程在几个IP主机里进行分配。这类系统使用简单的PING命令来保证进程请求不会被送到一个状态不佳的服务器那里,并为多服务器引入了一个变量来表示容错率。

第二代负载均衡产品不仅仅检查服务器是否还在运行,它还要检查服务器的性能状态。也就是说,如果一台服务器负载过重,发进来的请求就会被转发到其他机器上以保证负载在所有能够获得的资源里均衡分配了。

第三代负载均衡产品覆盖了整个内容分发系统。随着Web和网络服务变得越来越成熟,仅仅监视Web服务器的某一层是远远不够的。如果一个Web主机非常健康,但是它的后台服务器或/和应用有问题的话,把请求发给这台主机也是毫无意义的。新的服务,比如在线销售,都已经开始使用多层服务器来管理内容、数据库和事务处理引擎。由于电子商务目前已经关系到客户的钱,这就要求我们必须保证能够为客户提供尽可能好的性能和可靠性。因此,负载均衡厂商开发了第三代负载均衡产品以保证整个内容分发系统的健康、良好运行。

不仅处理网络和服务器性能问题,还能够根据前台请求和后台内容来分配资源,会识别请求,然后把该请求挂起,直到所请求内容已经准备好了,这叫做delayed binding。

这种能够识别内容的路由非常有用,服务器集群可以为特定的应用(比如CGI、流媒体、cookie服务等等)进行调整,而且负载均衡会处理并分发所有的请求到保持连接的客户端。

四、结束语

负载均衡只是一个策略,负载均衡技术实现的方法根据系统的软硬件不同而有所区别,有通用方法也有专用方法,有的网络系统还为此提供了专门的服务,负载均衡技术最终目的是减轻单个主机服务器的负载压力,但不能牺牲网络其他方面的性能。而对于我们校园网为基础的教育网站,可能涉及到多方面的网络应用,各种办公业务都往上迁移,所传送不仅是一般的文本信息,还有很多视频和语音。如远程教学方兴未艾,不少院校都在全国各地设立网络教学点,进行远程教学和在线辅导,各个站点都必须能够同网络教学中心进行实时交流,在这种情况下,势必也会产生大量并发访问,因此要求网络中心服务器必须具备提供大量并发访问服务的能力,这样,网络中心服务器的处理能力和I/O能力已经成为提供服务的瓶颈,如果客户的增多导致通信量超出了服务器能承受的范围,那么其结果必然是服务器无法提供服务,所以要对我们的校园网络进行统筹规划,应该根据实际需求来选择能够满足应用的负载均衡方案,解决我们面临的问题。

参考文献:

[1]E.Kata,M.Butler,and R. McGrath.A scalable HTTP server:the ncsa prototype.Computer Networks and ISDN systems,1994.Vol 27,P155-164

网络负载均衡技术研究和应用 篇12

B/S架构业务系统的大量应用,对网络及服务器性能提出了更高的要求,需要服务器具备快速处理大量并发访问的能力。目前百口泉采油厂投用各类B/S应用系统达到50多套,投入各类服务器14台,每天承载着较高的访问量和复杂的业务处理。

通过对各类应用系统的应用日志分析及调查用户使用情况了解到,各服务器的运行情况并不尽如人意,部分系统经常出现响应慢,而部分服务器利用率非常低。 如何对服务器进行整合, 在保证各系统正常运行的基础上,实现硬件系统的充分利用,降低能耗,构建绿色企业,成为亟待解决的问题。

负载均衡技术可以很好地解决这一问题, 目前可用的负载均衡技术有基于硬件设备和基于软件设置管理两种解决方法, 根据现状,我们选择了Windows 2003自带的负载均衡技术,通过研究和实施,有效地将多台服务器群集为一台,对外提供统一的Web应用服务,一方面提高了各系统的服务处理能力,另一方面降低了系统的停机率。

2网络负载均衡(NLB)技术研究

网络负载均衡技术是服务器群集技术的一种, 建立在网络结构之上, 可提供有效快捷的扩展服务器带宽,增加数据的吞吐量,加强网络数据处理能力,提高网络服务的灵活性和可用性。

负载均衡群集是由多台计算机以对称的方式组成一个服务器集合(图1),每台计算机都具有等价的地位,都可以单独对外提供服务而无须其他计算机的辅助。 通过某种负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台计算机上, 而收到请求的计算机单独回应用户的请求。 负载均衡能够平均分配用户请求到服务器上,快速响应请求数据,解决了服务和服务器流量动态平衡问题。 利用网络负载均衡技术具有以下优点:

(1)网络负载均衡能将传入的请求传播到32台服务器上,即最多可以使用32台服务器共同分担对外的网络请求服务, 网络负载均衡技术保证即使是在负载很重的情况下, 服务器也能做出快速响应。

(2)网络负载均衡对外只需提供一个IP地址。

(3)当网络负载均衡中的一台或几台服务器不可用时,服务不会中断,网络负载均衡算法自动检测到服务器不可用时,能够迅速在剩余的服务器中重新指派客户机通讯。

(4)可以根据网络访问量的增加来动态增加网络负载均衡服务器成员数量,提高服务能力。

3网络负载均衡技术应用

如上所述,为了提高Web服务器的响应速度,满足用户应用需求,我们在两台Dell R910服务器上部署应用了Windows 2003的网络负载均衡技术。 服务器配置见表1。

3.1配置群集

(1)启动 “网络负载平衡管理器”:登录服务器SRV-BKQIIS1 (IP:10.72.96.51),从 “管理工具”或者命令行输入 “nlbmgr”,右击” 网络负载平衡管理器”选择“新建群集”(图2)。

(2)设置群集网络参数:进入 “群集参数”设置, 输入IP地址为 “10.72.96.60”, 在子网掩码输入 “255.255.255.128”, 在 “ 完整Internet名称”后面输入 “inner.bkq.xjyt.petrochina”。

(3) 添加节点: 点击 “ 下一步” 按钮, 进入 “ 连接” 界面, 在 “ 连接”设置界面中输入当前服务器的名称SRV-BKQIIS1,点击“连接”按钮,将在下面的信息框中显示出连接的计算机的IP地址。 选择公网IP(10.72.96.51)地址(图4),点击“下一步”,进入主机参数设置界面点“完成”即可。

同理,将第二台服务器用以上步骤加入到群集中,最终效果如图5所示。

(4)设置节点优先级及负荷分配。 在NLB各节点中,可以通过设置节点的优先级对节点服务器的响应进行排序,当在集群中各成员节点硬件差异较大时,可以降低硬件配置较低的节点服务器负荷量,保证各系统的正常服务能力(见图6)。

图6节点端口符合量设置

3.2 Web服务同步

由于本次负载均衡主要用于Web服务,因此,需针对两台节点器的Web服务进行同步,以保证各系统的正常服务(见图7)。

图7负载均衡服务器IIS网站内容

通过以上设置,节点SRV-BKQIIS1与节点SRV-BKQIIS2不仅各有一个外部使用的静态IP地址,同时还拥有NLB创建的群集IP(10.72.96.60)。用户所访问的群集IP,通过负载均衡算法,自动分配到两个节点服务器上。

为验证网络负载均衡的效果, 在各节点服务器Web服务根目录各创建了DEFAULT.HTML,文件内容见表2:

当SRV-BKQIIS1 (10.72.96.51) 关闭时, 通过浏览器访问10.72.96.60, 得到结果如图8所示; 而当关闭SRV -BKQIIS2 (10.72.96.52)时,访问10.72.96.60,得到结果如图9所示。 由此可以判断通过网络负载均衡,有效地实现了服务故障时服务的自动转移,保证了服务的可靠性。

4结束语

上一篇:电工技术基础下一篇:重视物流的风险