负载均衡集群技术

2024-09-29

负载均衡集群技术(共7篇)

负载均衡集群技术 篇1

0 引言

负载均衡集群系统需要解决的问题是如何使用多服务器组成集群,从而提供处理大量并发服务的能力,以及如何把客户的数据请求通过算法分析合理地分配到多个服务器上,使之不出现一个服务器过忙而其他服务器特别空闲的情况,进而获得高性能的运算速度和数据吞吐能力。

1 虚拟服务器(Linux virtual server,LVS)

LVS[1]已经集成到很多开源的Linux标准内核中,一般如Cent OS、Free BSD等常用Linux系统均内置了LVS的各个功能模块,下载安装操作系统后,即可直接使用LVS的各种功能。

1.1 LVS实现的目标

使用LVS技术要达到的目标是:通过LVS提供的负载均衡技术,免费实现一个高性能、高可用的服务器群集[2],并具有很好的可靠性、可扩展性,方便维护,用低廉的成本实现最优的服务性能。

1.2 LVS的负载均衡调度算法

LVS的负载均衡调度算法[3]目前已实现轮转、加权轮转、最小连接、加权最小连接、基于局部性的最少连接、带复制的基于局部性最少连接、目标地址散列和源地址散列等8种常用调度算法[4]。

1.3 LVS负载均衡技术的应用范围

LVS主要实现基于IP的负载均衡[5],特点是实际应用不管是常见的Web、VOD,还是个性化的区域影像归档和通信系统(picture archiving and communication systems,PACS),应用服务都不需要重新配置,可以实现固化封装,对客户来说LVS系统是完全透明的,因此可以方便快捷地应用到大型网站、视频点播、云服务等各种场合。

2 区域PACS负载均衡技术的研究与实现

2.1 设计思路和难点

设计思路:

(1)可以利用该技术组建区域PACS负载均衡服务器集群,如果成功则可避免设备的单点故障,并能弹性承受访问负载。

(2)该方式在开源的Linux下免费实现,只需要2台稳定的计算机或者小服务器作为均衡调度服务器即可,硬件可以迅速到位,配置简单迅速,并可为单位节省开支。

(3)这种构架可以快速扩展,当今后PACS应用服务器负载能力不够时,可以很方便地扩展服务器数量,以提高整个集群的性能,而不必向负载均衡设备厂家去买服务器接入端口授权,整体上看就是通过软件方式,自己建了一套可伸缩的、类似F5设备的负载均衡器。

难点:这种构架一般应用于Web环境如大型网站、VOD视频点播或分布式数据库环境,很少把它移植到区域影像环境下,网上也没有类似的范例和参考文献。

2.2 设计分析

在建立我院PACS、放射科信息系统(radiology information system,RIS)过程中,根据全市统一部署,要求在我院建立全市区域医疗影像数据中心,全市辖区内各医院不再建设自己的PACS,各医院影像数据将集中入库存储到我院数据中心,并被全市各医疗单位工作站共享调阅,即该系统将负载全市十几家医院的PACS存取业务,数据压力较大。

在系统规划时,采用LVS+Keepalived技术来实现,即实现虚拟的服务器集群系统,而Keepalived起初是为LVS设计的,专门用来监控集群系统中各个服务节点的状态[6],并加入虚拟路由冗余协议(virtual router redundancy protocol,VRRP)的功能,解决静态路由出现的单点故障问题,保证网络不间断、稳定地运行。所以,Keepalived不仅具有服务器健康检测功能,而且也具有HA Cluster(high availability cluster)功能。

该结构具有如下优势:

(1)高可用性。LVS是一个基于内核级别的应用软件,因此具有很高的处理性能,用LVS构架的负载均衡集群系统具有优秀的处理能力,单个服务器的故障不会影响整个系统的正常使用,同时又实现负载的合理均衡,使应用具有高负荷服务能力,可支持上百万个并发连接请求[7],并可以通过增加服务器数量,弹性获得更高的性能。

(2)高可靠性。LVS负载均衡集群软件已经在企业、学校等得到了很好的普及应用[8],国内外很多大型的、关键性的Web站点(如淘宝网等)也都采用了LVS集群软件,所以它的可靠性在实践中得到了很好的证实,这些都说明了LVS的高稳定性和高可靠性。

(3)开源免费实现。LVS集群软件是按GNU通用公共许可证发行的自由软件[9],因此,使用者可以得到软件的源代码,并且可以根据自己的需要进行各种修改,软件上对我院来说是完全免费的。

(4)适合我院使用环境。LVS对前端Director Server支持大多数的传输控制协议(transmission control protocol,TCP)和用户数据报协议(user datagram protocol,UDP)[10],且对Real Server的操作系统没有任何限制,可运行在任何支持传输控制协议/因特网互联协议(transmission control protocol/internet protocol,TCP/IP)的操作系统上,包括Linux、各种Unix(如Free BSD、Sun Solaris、HP Unix等)、Mac/OS和Windows等。

通过上述分析可以看到,在影像系统用到的TCP(Dicom和Worklist等)完全可以采用“LVS+Keepalived”技术来实现负载均衡集群。

2.3 区域PACS负载均衡系统的具体实现

区域PACS负载均衡系统的高可用性主要体现在其需要7×24 h连续不间断工作。PACS服务器和负载均衡调度服务器均有冗余,当任何一个活动节点出现故障时,都能够在非常短的时间内将备份节点切换成新的,另一方面要求数据访问高峰时实现PACS服务器均衡负担区域内各医院的数据请求,确保整体的访问性能。

集群系统的简要构架如图1所示。

(1)首先使用2台服务器制作负载均衡器(均衡服务器对硬件要求不高,I3 CPU以上、2 GB以上内存,完全可以满足要求),下载免费的Cent OS并安装,采用Mini Desktop安装方式,很快即可安装完毕。

(2)修改字符集并关闭不需要的服务,使服务器运行的服务越少越好,以充分发挥Linux内核的性能。

(3)安装ipvsadm、keepalived,开源免费下载并安装。

(4)启用数据转发并配置服务启动。

(5)配置PACS主、备负载均衡服务器,如有需要可以扩展多个。

(6)配置PACS 1号应用服务器(服务器要求同上即可)。

(7)配置PACS 2号应用服务器。

(8)配置PACS 3号应用服务器(如有性能需要可以扩展多个服务器)。

在3台PACS应用服务器上启动Lvsrs服务,并开启VRRP端口,加入IP tables,即完成PACS负载均衡集群安装。

在配置完成并重启后,利用业务空闲时间,反复做灾难性停机测试,都能迅速切换到备用系统,不管是PACS应用服务器停机还是负载均衡服务器单、多点停机,只要确保1台LVS和1台Keepalived主机同时在线,系统都能在几秒内迅速恢复到业务,达到了预期设计效果。

2.4应用效果

正常运行如图2所示。

由图2可以看到,虚拟的175.168.8.28负载均衡服务器已经接管全市各医院对Dicom端口104(图像入库)和Worklist端口5000(数据库写入)的访问,并根据算法将业务进行分配的过程,Active Conn的数量就是当前的访问IP连接数。

各区域医院接入情况如图3所示。

由图3可以看到,来自区域内各医院(SourceIP)对虚拟负载均衡设备(Virtual)175.168.8.28的访问情况,以及负载均衡服务器把业务通过加权最小连接调度(weighted least-connection scheduling,WLC)算法分配到真实的175.168.8.23-25的3台服务器(Destination)的过程,此时关闭任意2台服务器均不会对系统造成影响。

数据吞吐性能情况如图4、5所示。

从图3~5可以看出,高峰时接入的IP近350个,同时某台多排CT设备IP:157.168.200.200进行入库操作,绑定图像234幅(约200 MB),时间消耗8 s,考虑到还涉及网络传输、盘柜写入的时间,速度达到预期效果,且今后需要的话可以随时扩展服务器,以得到更佳性能。

3结语

该系统经过长时间运行,系统均安全、稳定,投入较少,为单位节约了采购负载均衡设备的大笔开支,且可靠性、可扩展性方面都优于类似F5负载均衡设备,今后还可考虑将该应用固化到嵌入式服务器内部,通过开发图形化配置界面,做出配置简单、廉价安全、可扩展性好的区域PACS负载均衡系统,具有较高的推广价值。

摘要:目的:研制一种解决区域影像归档和通信系统(picture archiving and communication systems,PACS)在大量并发访问的情况下,单一设备承载能力不足问题的技术。方法:通过对虚拟服务器(Linux virtual server,LVS)负载均衡技术的研究与实践,设计并实现了一套高性能、高可用、廉价的服务器集群系统。结果:采用该技术的区域影像系统集群在实际应用中能承受大量并发访问,且稳定性极佳。结论:LVS技术可以为区域影像系统提供成熟、稳健的负载均衡方案,具有较高的性价比,适宜进一步推广应用。

关键词:区域PACS,LVS,负载均衡

参考文献

[1]张阿鹏,武维善.LVS中一种负载调度策略的设计与实现[J].微计算机信息,2008,24(3):251-252.

[2]张容.LVS负载均衡技术在G/S分布式集群中的应用[D].成都:成都理工大学,2009.

[3]章文嵩.可伸缩网络服务的研究与实现[D].长沙:国防科技大学,2000.

[4]曾东海,刘海,金士尧.集群负载调度算法性能评价[J].计算机工程,2006,32(11):78-79.

[5]吕丽平,臧国轻.基于LVS服务器集群的研究[J].电脑知识与技术,2010,6(21):5 754-5 756.

[6]沈平,潘志安,袁瑛.一例基于LVS+Keepalived架构的服务器访问故障分析[J].电脑知识与技术,2013,9(8):1 762-1 763.

[7]李文明.基于开源技术的高性能网站架构研究[D].邯郸:河北工程大学,2012.

[8]邱建新.LVS集群技术在教学资源库平台中的应用[J].微型机与应用,2013,32(23):81-82.

[9]严先有.基于LVS集群动态均衡负载的研究与实现[D].北京:北京工业大学,2009.

[10]王晋鹏.SAN网络环境下基于LVS集群的流媒体服务器的研究[D].北京:清华大学,2005.

负载均衡集群技术 篇2

1 流媒体负载均衡的原理

流媒体负载均衡是对分散的多个流媒体服务器进行集中管理的技术手段。流媒体负载均衡按一定的条件将流媒体服务器划分成组,组中每台服务器可以是对等的,也可以是分级的,但是都可以单独对外提供服务而无需其他服务器的辅助。

负载均衡设备对集群服务器进行健康检测(性能检测),确保集群中每台服务器都能单独接受用户请求,否则将其退出集群;然后按照一定的均衡算法,将流媒体请求定向到指定的服务器上,受分配的服务器独立地回应客户的请求[2]。

在实际使用中,用户只需记住1台服务器,即虚拟服务器,但其数据流能够被负载均衡器灵活地均衡到所有的服务。流媒体负载均衡实现原理图如图1所示。

由此可见,基于流媒体负载均衡技术的服务器集群平台至少可以实现以下两个功能:①运行功能,通过负载均衡可以集群多个流媒体服务器共同完成众多流媒体服务请求;②维护功能,通过健康检测可以对多个流媒体服务器进行集中监控和维护。

2 硬件实现的设备连接方式

负载均衡可以通过软件实现,也可以通过硬件实现。软件实现是指在服务器的操作系统上安装应用程序来实现负载均衡;硬件实现是指在服务器和互联网间安装负载均衡设备。硬件实现相比软件实现整体性能得到大幅提高,加上多样化的负载均衡策略,智能化的流量管理,可达到最佳的负载均衡需求。采用硬件方式实现的流媒体负载均衡,实施前需确定负载均衡设备连接方式。经调研,负载均衡连接方式主要有直连和旁连两种。

2.1 直连方式

直连方式是指所有流媒体服务器连接到负载均衡设备上,负载均衡设备再连接到交换机上并接入互联网。直连方式的设备连接及其数据流量走向如图2所示。

直连方式中,客户端数据首先经过负载均衡设备,负载均衡设备按均衡算法将数据传达到后台服务器,服务器响应请求并将数据返回给负载均衡设备,负载均衡设备接收到服务器数据后,再将数据传输给客户端。直连方式的数据交互过程如图3所示。

从以上分析可以看出,直连方式的每次数据交互都必须经过负载均衡设备,缺乏灵活性,数据时延较大;且该连接方式存在安全瓶颈,一旦负载均衡设备的网络链路中断,则所有服务器也会随之退出平台。

2.2 旁连方式

旁连方式是指将负载均衡设备及流媒体服务器一同连接到交换机上并接入互联网。旁连方式的设备连接及其数据流量走向如图4所示。

旁连方式中客户端想要接收流媒体服务时,则访问负载均衡器虚拟IP地址。负载均衡器按预先设定的规则进行信息分析,并依据一定的算法确定应该分配给哪一台服务器。然后请求服务的客户端被要求重定向到指定的流媒体服务器,最后客户端绕过负载均衡设备直接与指定的流媒体服务器建立连接,接收流媒体服。整个数据交互过程如图5所示。

根据旁连方式的工作过程,可以得出此连接方式有如下优点。

(1)增加了网络的灵活性。特定条件下如需对指定的某台服务器进行登录管理,只要通过授权获知其IP,即可直接登录,而不受负载均衡的分配。同时,一些特殊的应用,也可在核心交换机上采用策略路由的方式指向特定的网络设备。动静态分配相结合,大大增加了集群平台的灵活性。

(2)提高了网络整体的可靠性。采用旁连方式后,如果负载均衡设备出现问题,访问客户端可通过获知备用IP (流媒体服务器的真实地址)绕过负载均衡设备直接访问流媒体服务器,而不会对整个业务系统造成影响。

(3)提高了网络通信的有效性。旁连方式中,客户端重定向到指定的流媒体服务器后,此后的数据交互不再经过负载均衡设备,大大减短了流媒体数据时延。

(4)施工维护简单。如果对原没有负载均衡技术的系统进行负载均衡技术改造,那么,在直连情况下,服务器的IP地址、网络结构都要作调整(将服务器调到负载均衡后端),同时相关联的应用也要改动,需要进行严格的测试才能上线运行;然而,在旁连模式下,原有系统(包括网络结构)基本不需要作任何改动,故前者对系统改动较大,后者则改动较小。

根据以上各项指标的综合分析,该服务器集群平台采用旁连方式比较合适。

3 健康检测

为了防止客户端被均衡到故障流媒体服务器上,我们需对流媒体服务器的状态进行实时监控,即负载均衡设备模拟客户端向流媒体服务器发送数据请求,若流媒体服务器能够在规定时间实现握手回应,则将其保留在集群中,否则退出;这个过程对所有流媒体服务器是不断轮询地进行的,从而保证对服务器的检测是实时的。

流媒体服务器健康检测流程如图6所示。

由于负载均衡器对流媒体服务器的检测是实时的,且能够显示出当前服务器的性能状况,给设备运维人员提供了有效的监测手段。

4 均衡算法及其实现方法[3,4,5]

负载均衡设备可以提供多种灵活的均衡算法,将数据流有效地转发到它所连接的服务器群。此系统设计中,负载均衡采用轮询+优先权的均衡算法。

4.1 轮询(Round Robin)

轮询(Round Robin)即将请求顺序循环地连接给每个服务器;在轮询算法下,集群中的服务器都是对等的而没有主次之分,服务器被分配到客户请求的事件是等概率的。

轮询算法的优点是实现简单,基本不需要策略设置,且对每台服务器都能实时利用。但是轮询算法不利于对集群中的服务器使用进行规划和掌握。在具体实现中,负载均衡一般避免这种算法;而健康检测往往采用这种算法,对所有服务器循环地进行检测,保证对每台服务器都能实时监控和管理。

4.2 优先权(Priority)

优先权(Priority)即给服务器分组,给每个组定义优先权,流媒体负载均衡设备将用户的请求分配给优先级最高的服务器组;当最高优先级别的组中所有服务器都不能再接受请求时,流媒体负载均衡设备才将请求送给次优先级的服务器组。这种方式实际上是为用户提供一种热备份的方式。

优先权算法的特点是可以通过设定优先级对集群中的服务器使用方案先期进行规划和设计,从而避免了盲目性;故在负载均衡中普遍采用这种算法。

为了实现优先权算法,必须先制定优先权策略,即分级的依据。根据企业通信设备属地化运维和双重化配置的特点,该服务器集群平台中,我们采用属地优先+主用优先的策略。

属地优先指客户请求优先分配给客户端所在地市的服务器组;主用优先指客户请求优先分配给指定的主用服务器。两者相结合,则客户请求会优先分配给客户端所在地市的服务器组中的主用服务器。

为了具体实现属地优先+主用优先的策略,在负载均衡器中对集群里要对所有的流媒体服务器先进行分组分级的配置。分组是将所有流媒体服务器按一定规则分组,具体实现是将同属同一地市公司的流媒体服务器合成一组;分级是进一步将组中的主用流媒体服务器设为高优先级,备用流媒体服务器设为低优先级。分组分级能将所有服务器进行有效整合,防止当某一组合成员无一正常运行时,可及时跳转到优先级相对较低组合成员上,保证客户端都能有效访问服务器。

负载均衡器具体配置中将各地区客户端所分配IP地址范围写入各自命名数据库内,数据库命名规则为各地区拼音首字母,例如江苏省公司用“JS”、南京地市公司用“NJ”,代表了相应的IP地址范围。然后为各组中的流媒体服务器设置优先级标识,主用赋予高优先级标识,备用赋予低优先级标识。

服务启动后,客户端访问集群服务器虚拟地址,负载均衡获取客户端IP地址信息,然后与数据库地址表比较,找到客户端IP所属市公司流媒体服务器组。确定所在分组后,进一步按照优先权的算法挑选优先级最高的流媒体服务器,然后按轮询的方式,顺序循环对组中服务器先健康检测,一旦满足性能要求则选中。若本地的流媒体服务器组都不能接受请求,则进一步将客户端请求依优先级别分配给省公司和其他地市公司的服务器组。

“属地优先”的重要代码如下:

(1)提高了流媒体服务的可靠性。负载均衡将分散的多个流媒体服务器组合成强大的服务器组,可以保证长期不间断地承载大量的服务请求。

(2)提高了流媒体服务的有效性。全省区域的用户在请求流媒体服务时,一般都只需要使用负载均衡虚拟IP地址,即可按均衡方式访问全省的服务器群,增强了访问有效性。

(3)提高了流媒体服务器的可控度。负载均衡提供了对流媒体服务器的监控手段——健康检测,运维人员可依据检测结果判断服务器正常与否,从而为状态检修提供重要依据。

随着电力通信数据网日益扩充,各类新业务不断涌现,通信数据量越来越庞大,对通信资源必须采取恰当合理的调度分配,才能确保通信网各类系统的安全稳定运行。

5 总结与展望

在江苏省电力公司部署一套负载均衡系统,在不对现有广域信息网设备进行改造、调整的情况下,成功实现了全省流媒体服务器负载均衡,节省了设备投资和运维费用。通过负载均衡系统将省、市公司所有流媒体服务器资源进行整合,大大提高了网络直播会议系统的并发用户数,从而为国网公司和省公司各项会议精神能准确、迅速地直接传达到每位电力员工提供了一条方便快捷的通信通道。在近2个月的试运行过程中,员工反映流媒体客户端访问流畅,流媒体服务器运行正常无堵塞,满足了实际调度运行需要。

总结该流媒体服务器集群平台主要有以下几个优点。

参考文献

[1]罗云峰,朱秋萍.流媒体通信技术及其应用[J].中国数据通信,2002,4(6):70-73.

[2]龙著乾.流媒体服务器集群的负载均衡研究[J].软件,2013,34(4):62-64.

[3]罗拥军,李晓乐,孙如祥.负载均衡算法综述[J].科技情报开发与经济,2008,18(23):134-135.

[4]戴艺,苏金树,孙志刚.基于流映射的负载均衡调度算法研究[J].计算机学报,2012,35(2):218-228.

服务器集群及负载均衡的研究 篇3

1 集群及集群的体系结构

集群是指一组独立的计算机系统构成的一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。服务器集群就是指将很多服务器集中起来一起进行同一种服务,在客户端看来就象是只有一个服务器。集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行。群集操作可以减少单点故障数量,并且实现了群集资源的高可用性。

服务器集群系统可以分为局部范围内的多台服务器组成的局域集群和多个局域集群在地理位置上广域分布而形成的广域集群。对于局域集群,一般为集中式的基于请求分配器的负载分配策略,对于广域集群,通常采用群集间的基于DNS和群集内的基于Dispatcher的两级负载分配机制或者基于服务器镜象的负载均衡机制。

1.1 基于服务器镜像

镜像站点的体系结构属于一种每个单独的节点都分散于地理上不同位置的集群,集群中每个节点具有不同的地址,具有相同的镜像内容。用户直接从多个具有独立URL的站点中进行选择,并将HTTP请求发送给该镜像站点,进而得到响应。一般来讲,用户可以选择一个地理上距离最近的集群节点以减少响应时间。

1.2 基于DNS

基于DNS的集群体系结构中,集群所在域的授权域名服务器(称为“集群DNS”)向外部提供一个单一的URL主机名作为整个集群的虚拟接口,使得集群对用户端具有透明性。集群中的每台服务器都具有一个真实的IP地址。集群DNS作为集群系统的集中式请求调度器,在域名(URL)到服务器节点IP地址的映射过程中,能够选择集群中的任何节点作为请求分配的目的地。

广域集群是一种典型的层次化结构,因此采用两级负载分配机制。首先利用局域集群中的DNS执行一级分配,将客户端请求分配至各个局域集群中,然后在局域集群中实现二级分配;另外一种是广域分布的自治域之间的动态负载分配和负载平衡。

对于广域集群系统而言,能否实现连接请求的公平分配对于QOS保证而言是一个至关重要的问题。文献[1]在给出的多量纲性能参数融合策略的基础上,提出的请求分配算法可满足系统的负载平衡需求。

1.3 基于请求分配器

“基于请求分配器(Dispatcher)的服务器集群能够完全控制所有到来的请求并且实现精细粒度的负载均衡”[3]。在基于请求分配器的集群系统中,前端的请求分配器作为到达请求的代理,负责集中地接收所有到达的HTTP请求,并且按照特定的负载均衡策略将客户的请求均衡、透明地分配给集群中的后端服务器。整个集群系统具有一个单一的虚拟IP地址,即集群地址,因此集群中的服务器对用户端是透明的。实际上,集群地址就是请求分配器的IP地址,即请求分配器为集群系统提供了一个单一的虚拟接口,使得整个集群对外部而言犹如一台单一的主机。

基于请求分配器的集群系统可以运行在以下三种模式下:

1.3.1 VS-NAT

Virtual Server via NAT(VS-NAT)即用地址翻译实现虚拟服务器。地址转换器有能被外界访问到的合法IP地址,它修改来自专有网络的流出包的地址。外界看起来包是来自地址转换器本身,当外界包送到转换器时,它能判断出应该将包送到内部网的哪个节点。优点是节省IP地址,能对内部进行伪装;缺点是效率低,因为返回给请求方的流量经过转换器。

1.3.2 VS-TUN

Virtual Server via IP Tunneling(VS-TUN)即用IP隧道技术实现虚拟服务器。这种方式是在集群的节点不在同一个网段时可用的转发机制,是将IP包封装在其他网络流量中的方法。为了安全的考虑,应该使用隧道技术中的VPN,也可使用租用专线。集群所能提供的服务是基于TCP/IP的Web服务、Mail服务、News服务、DNS服务、Proxy服务器等等.

1.3.3 VS-DR

Virtual Server via Direct Routing(VS-DR)即用直接路由技术实现虚拟服务器。当参与集群的计算机和作为控制管理的计算机在同一个网段时可以用此法,控制管理的计算机接收到请求包时直接送到参与集群的节点。优点是返回给客户的流量不经过控制主机,速度快开销少。

2 集群的可能存在的安全问题及对策

2.1 负载不均衡

对于集群,基于服务器镜像的集群的节点选择依赖于客户的主观判断,而客户并不知道所选择服务器节点的负载情况,因此可能会造成被请求节点的超载,而其它节点未被请求,造成负载不均衡。解决此种情况引起的负载不均衡,一般考虑对对应节点加请求反馈,即服务比例的反向定位。

此外,负载均衡算法的使用或系统配置不当的问题也会造成负载不均衡。如根据权值来计算的节点,高权值的节点比其他节点更容易分配到任务,从而引起超载,进而导致负载不均衡。

2.2 网络不可达

网络不可达一般由于路由问题或者网络的暂时性错误引起的。网络不可达错误在高可用集群环境中往往作为失效事件的触发条件,需要被被均衡器及时判断并做出响应。该错误比常见于网络风暴、节点web服务过载等情况下。由于内部通信机制的设计不当,导致节点之间过于频繁的进行消息通信,因而在集群内部的网络中产生大量的UDP通信包,使得网络阻塞。因此使用高效率的、可定制的网络消息协议就成了解决的关键。TCP/IP作为传统协议,本身存在一定的局限。在假定通信信道是可靠稳定的前提下,简化通信原语的设定,减少握手和确认消息,使用大的滑动窗口和收发缓冲区,以减少网络不可达引起的阻塞。

2.3 Session信息的安全稳定以及SSL交换

面向内容的负载均衡在使用过程中需要考虑Session信息的稳定及基于Session的SSL交换,如商务网站需要把一些信息如用户登录的权限、时间等存储会话,当客户端连接的时候,节点服务器会给客户端一个含有session id的cookie信息,客户端之后的request都附带会话。节点服务器根据id来索引客户端的session。当客户端重复请求时,集群技术因为仅对请求的地址和端口信息进行负载平衡,所以可能会把同一个会话的请求重定向到另外一个节点,从而导致Session失效,进而所有操作失效。重复使用session的SSL数据的加密也存在该问题。

解决该问题的办法是负载平衡器必需建立一个全局的Hash映射表,记录某个客户端的IP地址和服务器的Session标记的映射关系,在下次客户重新请求时,根据匹配关系定向到原节点服务器。此外,建立整体SSO认证与统一调度,由提供SSO服务主机来统一认证,因此则不存在节点不对应而导致的Session失效。

2.4 集群I/O的一致性

采用集群后,集群内的各个节点访问能力被视为等同,因此具有共享信息的能力,若某个节点改写数据,其它节点就需要接收到该数据,如何对这一数据进行一致性访问,就成为负载均衡系统的重要问题。目前对于存取量不大的可以采用NAS,在集群中通过部署,保证接点一致性访问。此外采用GFS或Lustre。

3 高校服务器集群负载均衡策略设计

根据前面分析关于服务器集群可能存在的问题,为了尽量规避风险,设计出如图1所示集群部署,整合了广域集群与局域集群。可以实现基于DNS的集群;同时通过路由配置,实现不同网络的镜像;此外建立基于请求分配器的集群(可根据实际网络情况,选择集群模式)。

4 结束语

服务器集群策略本文分析的各种问题及解决对策都是对单一问题进行分析,针对广域集群和局域集群整合后的综合应用的细节需要进一步进行研究。

摘要:该文描述了当前服务器集群的体系结构,分析了各种集群模式可能存在的安全问题及相应的参考解决对策,提出了一个高校服务器集群负载均衡策略的设计方案。

关键词:集群,负载均衡,安全对策

参考文献

[1]李捷,刘景森,刘先省.一种新的面向广域Web服务器集群的动态负载平衡算法[J].电子学报,2007(12):2425-2429.

[2]甄翠明,黄金春.利用多层网络连接提高公网Web服务器安全性[J].桂林电子科技大学学报,2008(12):523-525.

[3]Colajanni C M.Dynamical load balancing on Web-server systems[J].IEEE In-ternet Computing,1999,3(3):28-39.

负载均衡集群技术 篇4

随着计算机技术和信息技术的飞速发展,在科研和商业领域产生了越来越规模巨大的数据,这些数据的规模甚至达到了若干PB。单台节点显然已经无法处理如此规模巨大的数据,云计算在此背景下应运而生。Hadoop是一个由Apache基金会所开发的开源分布式处理系统[1]。该系统由若干节点组成,数据分布在各个节点上。用户提交作业后,Hadoop将作业拆分成若干task,然后分布到各个节点上运行,最后将结果汇总返回给用户。

在Hadoop等数据密集型的超级计算中,移动数据的代价要远远高于移动计算的代价。因此将计算移动到数据节点上,将大大节省网络带宽,提升作业的执行效率。数据负载均衡的集群,能够降低非本地化任务的次数,进而减少集群中数据传输量,提高系统效率[2]。

然而随着新的数据节点的加入以及用户对集群中文件的动态删除和添加,使得各个节点拥有的数据量变得不均衡。当集群中节点间的数据负载变得不均衡后,会引发许多问题。比如,MapReduce程序无法很好地利用本地计算的优势,计算任务被分配到非本地化执行的概率增大,于是节点不得不从其他节点复制数据,增加网络负载。节点之间无法达到更好的网络带宽使用率,各节点磁盘无法达到更好的利用率,这将间接导致集群的效率降低,作业的执行时间变长。可见,保证Hadoop集群的数据平衡是非常重要是事情,数据的负载均衡已经成为分布式计算的一个重要的研究领域[3,4,5]。

文献[6]对异构集群负载均衡以及文件响应时间进行了初步研究,但忽略了异构集群中节点容量的异构性。文献[7]提出了按比例存放数据的策略,该策略考虑到了节点的异构性,然而却忽略了节点存储空间的异构性对数据存放的影响。文献[8]在Hadoop数据负载均衡效率方面,提出了超负载机架的优先处理,能够在较短时间内使各个机架的数据负载达到平衡,但并没有考虑节点的异构性。文献[9]改进了副本管理技术,通过动态副本来解决数据热点的问题。

本文首先分析了默认负载均衡的原理及其局限性,然后提出了适用于异构集群的负载均衡的量化模型。最后通过大量实验证明了在特定环境下该模型能够更合理的降低集群的不均衡性,提高集群的效率,并有效减少作业的执行时间。

1 默认负载均衡原理及其局限性

默认的负载均衡策略是基于所有节点都是同构节点这样一个假设下的。同构集群下,由于节点的硬件配置,包括CPU、内存、磁盘容量等都是一样的,唯一不一样的参数为各个节点的存储空间利用率。负载均衡的目的就是将各个节点的存储空间利用率尽量达到一致。当集群中的部分datanode承载了过多的数据时,集群管理员便应该通过start-balancer.sh启动均衡器,来重新布局数据块。Balancer负载均衡程序根据用户提交的阈值(threshold)(默认为10%),将Data Node按照存储空间的利用率分为四组:分别为over Utilized Datanodes(过载的节点信息)、above Avg Utilized Datanodes(大于阈值的节点信息)、below Avg Utilized Datanodes(小于阈值的节点信息)、under Utilized Datanodes(空载的节点信息)。负载均衡的主要过程是将过载节点和大于阈值的节点数据往空载节点和小于阈值的节点移动,最终使得各个节点的存储空间的利用率偏离集群平均存储空间利用率在阈值以内。

在同构集群中,该负载均衡策略简单并可获得较好的效果。但是在异构集群中,由于节点的硬件配置有可能相差很大,性能高的节点显然可以处理更多的数据。各个节点分配给HDFS的可用空间也有可能相差几倍,将异构集群中各个节点的存储空间利用率均衡到尽量一致并不能达到负载均衡的效果。分析这样一种情况,假设集群中的节点Na的性能是节点Nb的一半(Pa=1/2 Pb),节点Na的存储空间Da为节点Nb的存储空间Db两倍(Da=2Db),节点Na的存储空间使用率是节点Nb的两倍。即性能低的节点Na的存储空间是性能高的节点的两倍,调用默认负载均衡程序,最终得到的期望结果会是节点Na的存储空间利用率等于节点Nb的存储空间利用率。表面上看两异构节点的存储空间的利用率达到了一个均衡状态,实际上,该操作使得集群变得更加不均衡,性能较低的节点Na获得了更多的数据。这使得低性能节点承担了更多的数据负载,使得该节点在作业执行过程中成为高负载节点,同时增加了非本地化任务的概率,增加了网络流量负载。此时,集群默认的负载均衡策略失效。所以异构集群中通过将各个节点的存储空间利用率均衡到一个一致的期望值来使得集群负载均衡的方法是不可取的。基于对默认负载均衡原理及其局限性的分析,我们提出了一种适用于异构集群中量化数据负载均衡的数学模型。该模型基于各个节点的性能及存储空间计算得出各个节点的理论空间利用率。

2 异构集群负载均衡量化模型

2.1 问题描述

异构集群的异构性不仅体现在高性能节点处理相同的工作消耗更少的时间,还体现在各节点分配给Hadoop使用的存储空间之间的差异性。本文提出的均衡模型基于各节点的性能按比例分配存储容量,而各节点存储空间的异构性可能导致异构集群中节点无法承载理想的存储容量。为此我们提出了一种基于集群异构性的量化负载均衡的数学模型。该模型基于各个节点的性能及存储空间,分别计算得到各个节点的理论磁盘利用率。再将用户输入的threshold参数泛化为各个节点的阈值。最终将异构集群的负载均衡转化为类同构集群的负载均衡,简化异构集群负载均衡问题的复杂性。

2.2 相关参数及定义

存储空间(Cconf(i)):某节点分配给HDFS使用的容量,而非节点磁盘容量,Cconf(i)表示第i个节点的配置容量。

已用容量(Cused(i)):某个节点的存储空间中HDFS使用的容量,Cused(i)表示第i个节点的已用容量。

节点的CPU性能(Pcpu(i)):由于多核的性能是无法达到1+1=2的效果。查阅相关资料得知,比较理想的情况下,双核的每个核的性能为单核的0.8~0.9。所以我们取多核CPU转换参数ρ=0.8。得到节点的CPU性能为:

其中Ncore(i)为节点的CPU核数,F(i)为节点的CPU频率(单位GHZ),ρ为多核CPU转换参数。

节点的内存性能(Pmem(i)):对于节点内存的衡量,采用Pmem(i)=Nmem(i),其中Nmem(i)为节点i的内存的大小(单位为MB)。

定义1节点相对性能:

式中α和β为CPU性能和内存性能的权重因子,且α+β=1。min(Pcpu),min(Pmen)分别为集群中节点CPU性能和内存性能的最小值。将集群中的所有节点性能统一为最小值为1的量化值,方便后面的计算。并由此计算出节点的性能总和:

定义2集群的存储空间利用率:

定义3各节点基于性能的理论存储空间占用容量及各节点基于性能的理论存储空间利用率:

定义4节点的动态存储空间最大负载:

由于磁盘空间的异构性,节点的存储空间有时并不能满足理论占用容量的需求,这时,我们需要将该节点理论上多余的数据转移到其他节点。为了确保节点的存储空间占用率不超过某一特定百分比这里我们需要定义一个节点最大负载。该值应该随着集群存储空间利用率的提高而提高。当集群负载较轻的时候,节点的最大负载应该维持在一个低水平上。这里我们采用自定义式(7)来描述节点动态最大负载,M取值范围[80%,100%),并随着集群存储空间利用率Ravg的增大而增大。若Ravg=50%,我们可以得到集群中的单个节点的最大负载为M=85%,若Ravg=50%,则M=96.2%。该公式较好地定义了节点最大负载,解决了节点可能出现的负载过重的问题,避免了用户静态配置导致的参数不适用的问题。

根据节点最大负载和各个节点基于性能的理论利用率,找出那些节点理论利用率大于节点最大负载的节点,并计算出盈余容量,集群盈余容量的计算公式如下:

式中i=1,2,…,n并且Rideal(i)>M。然后再将这部分容量分配给其他节点。迭代运行,直到集群中没有节点的理论容量大于节点最大负载值。

在将盈余容量分配给其他节点的过程中,以减少机架间数据传输为目的,我们采用了同机架优先的策略。该策略如下:当前机架内的某节点基于性能的理论利用率高于节点最大负载的时候,优先将该节点的容量分配到该机架的其他节点上。为此,我们定义了一个同一机架和非同一机架的配置比γ=2。该参数的意义在于优先将当前机架盈余出来的容量存放在同一机架的其他节点上,以减少机架与机架之间理论存储空间利用率的差别。最终我们得到一组各个节点基于性能的理论存储空间利用率。

定义5各节点参数化的阈值:

用户输入的threshold参数值t是集群达到平衡状态的各节点存储空间使用率与集群存储空间使用率的偏差值的最大值。如果偏差值小于该值,那么我们认为该节点是均衡的。由于异构集群中,各个节点的存储空间的异构性,该阈值所对应的存储空间及节点性能差别较大,于是我们需要将该阈值根据式(9)参数化为各个节点的阈值。

2.3 算法

下面介绍算法的详细步骤。

1)计算各个节点的相对性能值P(i),节点的性能总和P以及集群的存储空间利用率Ravg。

2)求出各个节点基于性能的理论占用容量Cidel(i)及基于性能的理论利用率Ridel(i)。

3)计算集群节点最大负载值M。

4)根据节点最大负载和各个节点基于性能的理论利用率,找出那些节点理论利用率大于节点最大负载的节点,并计算出盈余容量C_supr。如果没有找到该类节点,转6)。

5)基于机架的策略,优先将盈余容量分配到同一机架上。然后重新计算各个节点基于性能的理论利用率并转到4)。

6)将用户输入的threshold通过式(8)参数化为各个节点的阈值。

7)根据最终计算得到的各节点基于性能的理论利用率和各节点参数化后的阈值,将集群中的节点分为如表1所示四组。

8)计算各节点需要移动的数据量并移动数据。

9)算法结束。

3 实验与结果分析

由于实验环境有限,测试环境由三个机架共9个节点组成。其中机架A中有两个节点,机架B中有四个节点,机架C中有三个节点,Namenode节点位于机架B中编号为3的节点,同时该节点也作为Datanode节点。所有节点都安装为Ubuntu 12.04操作系统。实验环境的网络拓扑如图1所示。

实验中我们的负载均衡器运行在节点编号为3的节点,即Namenode节点。其中各个节点的硬件配置如表2所示。

为了比较异构集群中HDFS默认的负载均衡器和本文改进的负载均衡器之间的效果差异,我们将数据块的副本数设定为2,并将其中几个节点作为客户端上传文本数据,再删除其中的部分数据使集群处于不均衡的状态。然后分别运行默认负载均衡器和本文改进的负载均衡器,观察均衡效果。同时,我们分别在运行默认负载均衡器后和运行本文改进的负载均衡器后执行Hadoop的Word Count程序,观察程序在各个负载均衡后的执行时间。执行指令start-balancer.sh-threshold 5,即将阈值(threshold)设定为百分之5并执行负载均衡器,集群的状态如表3所示。

由表3的数据我们可以看出,改进后的数据负载均衡器能够较好地依据节点的性能调整数据的分布。为了验证本文改进的负载均衡器能够具有较好的数据均衡效果。运行Word Count程序以观察该程序在各状态下的执行时间。Word Count是Hadoop官方的MapReduce的demo程序。Word Count例程读取集群中文本文件,并统计文件中单词出现的频数。不同于蒙特卡罗方法计算π的demo例程,蒙特卡洛发计算π值,对节点的CPU性能要求较高,属于CPU密集型作业,而Word Count程序属于I/O密集型作业,对数据的分布更加敏感。本实验采用节点5作为客户端提交用户Word Count作业20次,观察作业的执行时间,并且作业执行前数据已经分布在集群中。

数据分布均衡的集群,可以有效减少作业调度带来的计算资源和数据资源在不同的物理节点而产生的数据迁移问题,并有效减少网络I/O,降低所谓的“非本地化任务”,缩短作业的执行时间[10,11]。图2显示了在不同数据负载均衡算法下作业的执行时间,横坐标表示的是我们执行作业的序列号,纵坐标表示的是作业的执行时间。从图中我们可以清楚的看出,相较于默认数据负载均衡算法下作业的执行时间,改进后的数据负载均衡算法可以有效地减少作业的执行时间,提高集群效率。

4 结语

本文分析了集群默认数据负载均衡的局限性,并针对该问题提出了异构集群数据负载均衡的量化模型。该模型通过综合考虑节点性能的异构性和存储空间的异构性求得各个节点存储空间的理论均衡利用率,并将用户输入的阈值量化为各个节点的负载参数。然后移动各个节点的数据,使得各个节点的存储空间利用率与理论均衡利用率的偏差值不大于各个节点的理论阈值。通过实验分析,证明了该模型能够让集群达到更均衡的状态,一定程度上减少了作业的执行时间,提高了集群的整体性能。

后续的研究将继续关注Hadoop异构集群中数据的负载均衡,特别关注集群中作业的执行与数据副本之间的关系。

参考文献

[1]White T.Hadoop:The definitive guide[M].O’Reilly Media,Inc,2012.

[2]王意洁,孙伟东,周松,等.云计算环境下的分布存储关键技术[J].Journal of Software,2012,23(4):962-986.

[3]Sun H,Chen J,Liu C,et al.Improving MapReduce Performance via Heterogeneity-Load-Aware Partition Function[C]//Cluster Computing(CLUSTER),2011 IEEE International Conference on.IEEE,2011:557-560.

[4]杨昊溟.云存储系统的数据副本放置算法研究[D].电子科技大学,2013.

[5]王宁,杨扬,孟坤,等.云计算环境下基于用户体验的成本最优存储策略研究[J].电子学报,2014,42(1):20-27.

[6]刘琨,钮文良.一种改进的Hadoop数据负载均衡算法[J].河南理工大学学报:自然科学版,2013,32(3):332-336.

[7]Xie J,Yin S,Ruan X,et al.Improving mapreduce performance through data placement in heterogeneous hadoop clusters[C]//Parallel&Distributed Processing,Workshops and Phd Forum(IPDPSW),2010IEEE International Symposium on.IEEE,2010:1-9.

[8]刘琨,肖琳,赵海燕.Hadoop中云数据负载均衡算法的研究及优化[J].微电子学与计算机,2012,29(9):18-22.

[9]陶永才,张宁宁,石磊,等.异构环境下云计算数据副本动态管理研究[J].小型微型计算机系统,2013,34(7):1487-1492.

[10]Ananthanarayanan G,Agarwal S,Kandula S,et al.Scarlett:coping with skewed content popularity in mapreduce clusters[C]//Proceedings of the sixth conference on Computer systems.ACM,2011:287-300.

负载均衡集群技术 篇5

下面我介绍一下企业级web应用系统基于Nginx和Memcache的负载均衡集群架构设计的实现方法。

本文共以五台服务器来做负载均衡集群架构设计, 服务器清单如表1所示。

服务器A同时提供WEB应用服务及负载均衡转发服务, 服务器B同时提供WEB应用服务及memcache缓存服务, memcache缓存系统使服务器A、B、C、D、E可共享使用session。域名www.aa.com直接解析到服务器A上, 由服务器A将用户请求负载均衡到服务器A、B、C、D、E上。

服务器操作系统均为Cent OS 6.2版本, 安装的软件分别为Nginx 1.2.7、My SQL 5.5.28、PHP 5.3.17, 应用程序为采用PHP+My SQL开发, 完全相同的应用程序分别放在服务器A、B、C、D、E的/home/wwwroot/www.aa.com目录下。

1 Nginx负载均衡配置

1.1 服务器A的nginx.conf文件配置

通过Secure CRT软件连接服务器A, 进入/usr/local/nginx/conf目录, 打开nginx.conf, 在http段加入以下代码:

注:1、因为服务器A使用80端口用来监听负载均衡的处理, 故对于服务器A不能再使用80端口来处理www.aa.com的访问请求, 否则服务器A转发到自己IP上, 然后再进到主服务器负载均衡分配IP阶段, 假如一直分配到本机, 将会造成一个死循环, 因此把服务器A的应用使用8080端口来访问。2、backup表示当其它所有非backup机器繁忙的时候才会将请求转发到这台服务器上。weight代表访问权重, 默认为1, 当设置为2的时候, 表示该台机器的被请求率为默认机器的2倍。

同时修改server段代码如下:

保存后重启nginx服务 (service nginx restart) 。

1.2 服务器B、C、D、E的nginx.conf文件配置

通过Secure CRT软件连接服务器B, 进入/usr/local/nginx/conf目录, 打开nginx.conf, 在http段加入以下代码:

保存后重启nginx服务 (service nginx restart) , 在服务器C、D、E上做以上同样的配置。

2 Memcache缓存系统安装配置

2.1 下载及安装memcache服务

下载memcache安装文件及服务需要依赖的libevent文件包至服务器B的/root目录下, 命令如下:

2.2 启动memcache守护进程

2.3 配置phi.ini配置文件

为使服务器A、B、C、D、E可共享session, 在各服务器上需分别做如下配置:

进入/usr/local/php/etc目录, 使用vi命令打开php.ini文件, 将session.save_handler和session.save_path的参数配置如下:

3 负载均衡功能验证

当访问www.aa.com的时候, 为了区分是转向哪台服务器处理, 可在服务器A、B、C、D、E的/home/wwwroot/www.aa.com目录下分别上传了一个不同内容的index.php文件, 以作区分。

打开浏览器访问www.aa.com, 刷新后发现所有的请求根据weight权重的不同而被服务器A分配到了不同的服务器上, 实现了负载均衡效果。将正式运行的WEB系统分别上传至服务器A、B、C、D、E的/home/wwwroot/www.aa.com目录下, 再次打开浏览器访问www.aa.com, 登陆WEB应用系统, 可以发现session信息通过memcache缓存系统可以同步在各服务器上共享使用, memcache缓存系统得到应用。至此, 基于Nginx和Memcache的负载均衡集群架构设计功能得以实现。

摘要:负载均衡 (又称为负载分担) , 就是将负载 (工作任务) 进行平衡、分摊到多个操作单元上进行执行。负载均衡是大流量高并发网站需要实现的架构设计, 同时对于负载均衡集群架构系统, 各服务器间需要共享session信息, Memcache是一个高性能的分布式的内存对象缓存系统, 以守护程序方式运行于一个或多个服务器中, 随时接收客户端的连接和操作。

负载均衡集群技术 篇6

关键词:负载均衡,服务器集群,调度算法

1引言

随着因特网技术的飞速发展,因特网已经成为越来越多的人们学习、工作以及生活的必备工具之一[1]。但是,随着因特网用户数的不断增加,各大网络公司的具体服务器系统变得越来越不堪重负。 通过使用集群技术来改装原有的具体服务器系统, 成为一种能够快速的应付这种局面并有效解决这个问题的好方法。集群系统一般都要靠前端的负载均衡调度器将用户的连接请求转发到后台的具体服务器之上。转发过程必须有负载均衡算法的配合,才能使得用户连接请求在各台具体服务器之间得到合理、均匀的分配[2]。

本文在深入的研究LVS集群系统及其主要实现的四种负载均衡算法的基础上,提出了一种改进的调度算法,该算法的最大特点是能够定时收集后台各台具体服务器的性能指标和实时负载指标。性能指标包括了CPU处理速率、内存大小、磁盘读写速率和网络带宽等。负载指标是连接数与最大负载值的比值。根据这些指标,负载均衡调度算法计算出了具体服务器的综合性能参数,通过负载指标也相应的计算出具体服务器的综合负载参数,最后通过这两个参数和本文设计出来的另一个公式转换得到了各台具体服务器的权重值。因此,通过这种方法负载均衡调度器就可以在集群系统的运行过程中,获得代表具体服务器的性能水平和实时负载状况的权重值,使得其可以更加合理的在具体服务器间分配用户的连接请求。

2传统的负载均衡调度算法

2. 1轮叫算法

轮叫调度( Round Robin Scheduling) 算法就是以轮叫的方式依次将请求调度不同的服务器,即每次调度执行i = ( i + 1) mod n ,并选出第i台服务器。算法的优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度[3]。轮叫调度算法假设所有服务器处理性能均相同,不管服务器的当前连接数和响应速度。该算法相对简单,不适用于服务器组中处理性能不一的情况,而且当请求服务时间变化比较大时,轮叫调度算法容易导致服务器间的负载不平衡。

2. 2加权轮叫算法

加权轮叫调度算法是轮叫算法的改进,该算法考虑到了集群系统中各服务器节点的性能差异,给每一台服务器分配一个性能权值,但是该算法没有考虑到实际运行中Linux虚拟服务器集群系统的实际负载情况[4]。比如由于各个不同的用户连接所要求的任务的运行时间各不相同,导致运行一段时间后的集群系统后台的各台具体服务器的实际运行的性能状况已与初始状态有明显的不同。所以,该算法还是不能最合理的实现LVS集群系统的负载均衡。

2. 3最小连接算法

最小连接调度( Least - Connection Scheduling) 算法是把新的连接请求分配到当前连接数最小的服务器。最小连接调度是一种动态调度算法,它通过服务器当前所活跃的连接数来估计服务器的负载情况[5]。调度器需要记录各个服务器已建立连接的数目,当一个请求被调度到某台服务器,其连接数加1; 当连接中止或超时,其连接数减1。最小连接算法考虑到了后台各服务器节点的实时负载情况,但是各服务器性能差异没有考虑到,若集群中各服务器节点性能差异很大,那么最小连接算法会很容易造成负载调度的不平衡。

2. 4加权最小连接算法

加权最小连接算法考虑到集群系统中后台具体服务器的实时负载水平的不同以及具体服务器性能水平的不同这两个重要的因素,但是仅仅以连接数来代表对应的具体服务器的负载程度、并以一个权重值来代表具体服务器的性能水平,明显是将问题过于简单化了[6]。在系统实际运行过程中,服务器的负载指标和性能指标可能会更复杂,所以加权最小连接算法还是不能很好的实现具体服务器间的负载平衡。

3改进的负载均衡调度算法

3. 1改进算法设计思路

本文提出的算法旨在改变负载均衡调度器的调度依据,在原有的加权最小连接算法的基础上进行改进,每一次调度时,负载均衡调度器都需要知道集群中各个服务器的性能状态和负载状态,并根据这两种状态计算出综合指标参数,判断分配哪一台服务器提供服务。首先,调度器向集群发送状态查询命令,请求各服务器节点反馈自身的性能状态和负载状态。服务器性能指标包括: CPU处理速率、内存大小、磁盘读写速率、网络带宽。服务器负载指标包括: 当前负载值和最大负载值。根据性能指标与负载指标的比值,计算得到服务器综合指标值,这个比值就作为负载均衡器的调度依据。

3. 2性能指标参数和负载指标参数

3. 2. 1综合性能指标计算

假定集群中存在n台服务器,这n台服务器可以用集合表示为S{ S1,S2,…,Sn} 。具体的计算思路如下: ( 1) 读取服务器发送过来的性能指标; ( 2) 对各台服务器中的各个性能指标进行统计,以得出各个性能指标中数值最大值; ( 3) 将每个服务器的指标值与这些对应的最大值相比较得出指标的比例值。经过这3步,就得到了可以用在同一个公式中的比例指标值。最后通过加权公式计算出综合性能参数。

定义1: CPU处理速率比值CPi

其中Ci是第i台服务器的CPU处理速率,max( C1, C2,…,Cn) 是集群中服务器CPU处理速率最大值。

定义2: 内存比值MPi

其中Mi是第i台服务器的内存大小,max( M1,M2, …,Mn) 是集群中服务器内存最大值。

定义3: 磁盘读写速率比值DPi

其中Di是第i台服务器的磁盘读写速率,max( D1, D2,…,Dn) 是集群中服务器磁盘读写速率最大值。

定义4网络带宽比值NPi

其中Ni是第i台服务器的网络带宽,max( N1,N2, …,Nn) 是集群中服务器网络带宽最大值。

这些比值的取值在0到1之间,每一种比例值的大小都反映了该服务器的性能优劣程度,需将这些指标结合起来考虑服务器的综合性能,我们给它们分配权重值,利用计算公式可算出某台服务器的综合性能指标。分别给上面四个比例设定一个加权系数Wc、Wm、Wd、Wn,各个加权系统取值在0到1之间,取值大小体现了指标在集群服务器中的重要程度,通过下面公式( 5) ,可得到第i台服务器的综合性能参数GP( Si) 。

定义5服务器综合性能参数GP( Si)

3. 2. 2综合负载指标计算

假定在某一时刻,集群中第i台服务器的实时用户连接数为Li,该服务器的最大负载为MLi,它们的比值即为t时刻该服务器的负载参数LP( Si) ,公式( 6) :

3. 3服务器综合指标参数

根据上文得到的综合性能指标和综合负载指标,可以计算得到第i台服务器的综合指标参数F( Si) :

根据上述公式( 7) ,负载均衡调度器计算出集群中每台服务器的综合指标参数后,选择指标参数值最大的服务器分配用户请求,因为指标参数F( Si) 越大,意味着综合性能指标GP( Si) 越大或者综合负载指标LP( Si) 越小,这台服务器一定是最合理的分配选择,这就是本文改进算法的主要依据和核心思想。

3. 4算法的具体实现

根据上面所述的算法思想,可以在负载均衡调度器上运行此算法,调度器每次都将用户请求分配给综合指标参数F( Si) 最大的服务器节点。算法伪代码如下:

最后,F( Si)max就是性能最优的服务器,调度器会把连接请求分配给该服务器。

4实验结果分析

为了检验本文提出的改进调度算法的性能,根据现有的条件,搭建了一个提供Web服务的集群系统,集群系统包括一台负载均衡器、后端三台真实服务器和一台共享DB服务器,在负载均衡调度器上分别运行加权最小连接算法和本文提出的改进算法进行比较测试,测试请求时用户请求登录操作,测试工具使用的是WAS服务器测试工具。根据WAS反馈的数据,分析了请求的平均响应时间和请求成功次次数数,测测试试结结果果如如图图1、图图2所所示示。

很明显,改进的调度算法相比加权最小连接算法,在请求响应时间和吞吐率上,都表现出更好的性能,并且在测试过程中,还发现,加权最小连接算法往往会出现服务器过载的问题,而改进算法保持集群中服务器实时负载状况良好,不会出现过载的情况。可见,与加权最小连接算法相比,改进的调度算法能够有效地减少集群总体连接的平均响应时间, 并实现集群良好的负载均衡效果。

5结束语

基于负载均衡技术的专利分析 篇7

关键词:负载均衡,异构网络,区域负载均衡

一、引言

负载均衡是蜂窝网络中一个与生俱来的问题。由于用户和对应的业务流量进入小区时具有随机性、时变性, 并且常常是不平衡分布的, 导致整个网络中的负载可能出现不平衡的分布状态。

二、传统的负载均衡解决方法

解决这一问题的方法有两种: (1) 在网络部署之前对网络规划和管理进行优化; (2) 在网络控制节点中部署LB算法, 使网络能自动调节其下属小区中负载的分配:

(1) 专利文献CN200710097524公开了一种负载均衡的实现方法, 判断无线接入设备是否达到负载均衡;如果所述无线接入设备达到负载均衡时, 则停止公开服务集标识。通过本发明在无线接入设备达到负载均衡上限时, 停止公开服务集标识, 使处于负载均衡环境中的无线客户端能够更合理地选择接入有效的无线接入设备。

(2) 专利文献CN200810066200公开了一种过载处理的方法, 当核心网节点过载时, 将处于重叠区域的用户设备UE转移到与过载核心网节点有重叠区域的其它资源池中。

此外, 针对不同的业务流转移的实现方式, 还可将负载均衡方式分为两类:基于信道借用和基于负载转移的负载均衡方法:

(1) 基于信道借用的负载均衡方法。

专利文献CN01126236公开了一种基于基站负载分配信道的新方法, 根据目标小区的负载情况分配信道, 当小区负载轻时, 分配容量高的信道, 当负载重时分配容量小的信道。

(2) 基于业务转移的负载均衡方法。

专利文献CN200910076892公开了一种实现负荷均衡的方法:获取本系统中的每个基站下的所有小区的负荷;根据本系统中每个基站下的所有小区的负荷, 确定本系统中不同频点的负荷状态;如果有处于高负荷状态的频点, 则对本系统中不同频点之间的负荷进行负荷均衡调整, 并通知各小区中的UE读取更新后的系统消息。

三、改进的负载均衡技术

现有在小区间实现负载均衡的方法仅根据小区的负荷比来选取目标小区, 选取的目标小区可能并不合适, 导致负载均衡的效果不明显, 通信网络质量差等问题。为保证服务质量提出一种新的想法:在负载转移时除了考虑目标小区的负载情况之外, 还要综合考虑其他因素, 从而选择最合适的小区进行负荷转移, 例如:

专利文献CN200910205966综合考虑小区性能信息以及负荷状况来选择目标小区, 具体为根据所述待调整小区的相邻小区的性能信息, 从所述相邻小区中确定出与所述待调整小区进行负载均衡的目标小区;根据所述待调整小区中各用户的性能信息, 从所述待调整小区中的用户中确定出进行负载均衡的目标用户;将所述目标用户调整到所述目标小区中。

随着通信技术的发展, 异构网络中的负载均衡问题随着出现, 不同的接入系统对网络资源的描述各不相同, 彼此之间无法识别, 且不同的系统之间没有有效的资源交互机制。针对上述问题, 随之产生了一系列有关异构网络中负载均衡的专利申请:

专利文献CN201110074202提出了一种异构网络间剩余资源的交互方法, 在不增加系统复杂度的情况下, 实现了异构网络间的资源交互, 可用于异构网络间剩余资源交互和第四代移动通信系统的信令设计。

综上, 现有的负载均衡存在如下缺点:一是每次负载均衡只考虑单一小区对, 不能减轻其它小区的负载, 导致区域内负载均衡次数的增多;二是存在负载均衡震荡问题, 使某一小区触发负载均衡的次数过多, 影响区域内用户的服务质量和系统性能的提升。

针对现有技术的不足, 提出了一种新的技术区域负载均衡, 简介如下:

专利文献CN201110182081提出了一种蜂窝移动通信系统中的区域负载均衡方法, 将多个小区组成一个区域, 区域内的小区同时做负载均衡, 增强负载均衡效果, 可以减少区域内负载均衡的次数, 避免区域内负载均衡的震荡, 使区域内各个小区的负载趋于平均值, 提升区域内用户的服务质量和系统性能。

四、结束语

由于通信领域各种技术发展迅速, 异构网络、LTE、自组网、4G通信技术等方面的发展越来越成熟, 小区负载均衡都是这些领域的热门研究课题, 我国企业应该加大研发力度, 提高创新能力, 全面提高专利申请的质量, 并且努力实现专利与标准的结合, 以科学有效的方式应对专利竞争, 力争在未来的市场竞争中占得先机。

参考文献

[1]梁小芳, 唐宏.3GPP系统中的负载均衡研究[J].电信工程技术与标准化.2009 (11) .81-83.

上一篇:处理意见下一篇:虚寒型胃痛