(计算机应用技术专业论文)服务器集群负载平衡技术的研究.pdf_第1页
(计算机应用技术专业论文)服务器集群负载平衡技术的研究.pdf_第2页
(计算机应用技术专业论文)服务器集群负载平衡技术的研究.pdf_第3页
(计算机应用技术专业论文)服务器集群负载平衡技术的研究.pdf_第4页
(计算机应用技术专业论文)服务器集群负载平衡技术的研究.pdf_第5页
已阅读5页,还剩67页未读 继续免费阅读

(计算机应用技术专业论文)服务器集群负载平衡技术的研究.pdf.pdf 免费下载

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

文档简介

武汉理t 大学硕士学位论文 摘要 随着互联网的发展,一些服务器常常因为要在很短的时间内应付数以万计 的访问申请而不堪重负。如何在完成同样功能的多个网络设备之间实现合理的 业务量分配,使之不致于出现一台设备过忙而别的设备却未充分发挥处理能力 的情况就成了一个问题,服务器集群负载平衡机制也因此应运而生。 对于服务器集群负载平衡技术而言,负载平衡调度算法是核心。在自适应 负载均衡算法中,通常情况下都是采用周期性的方式获得服务器的负载,这意 味着做负载平衡决策时,负载值并不代表成员的当前负载,而是过去的负载。 如果在一个短的时间内有很多客户链接,在负载值被更新之前,服务器的实际 负载将急剧地增加。针对以上问题,本文提出了一种基于遗传算法的自适应负 载平衡优化算法,对服务器的选择和分配不仅考虑到系统过去和现在的性能表 现,而且在并发请求任务预分配前,对系统将来的负载进行估计。 本文主要从以下几个方面进行了研究:首先,参考网络层次模型对当前的 服务器集群负载平衡技术进行了归类,详细介绍了每种负载平衡方法的工作原 理,对比分析了各种方法的优缺点及适应面;接着深入研究了常用的负载平衡 算法,画出了每种算法的流程图,指出其特点和局限性。从改进负载平衡数学 模型入手,提出了一种基于遗传算法的自适应负载平衡优化算法,并对改进算 法进行了分析和仿真演示;最后设计了一个基于w i n d o w s 平台的负载平衡系统, 对改进算法进行了验证,并对实验结果与其他传统算法进行了分析与比较。 关键词:服务器集群,遗传算法,负载平衡 武汉理工大学硕士学位论文 a b s t r a c t w i t ht h ed e v e l o p m e n to fi n t e r n e t ,s o m es e r v e r sa r eo v e r l o a db e c a u s et h e yh a v e t oc o p ew i t ht e n so ft h o u s a n d so fa c c e s si nav e r ys h o r tt i m e h o wt oa c h i e v ea r e a s o n a b l ev o l u m eo fd i s t r i b u t i o ni nt h e s en e t w o r ke q u i p m e n tt h a td e a lw i t hs a m e w o r k ,s ot h a ti tw i l ln o to c c u rt h es i t u a t i o nt h a to n ee q u i p m e n ti sb u s ya n do t h e r e q u i p m e n t s a r en o t ,s os e r v e rc l u s t e rl o a d - b a l a n c i n gm e c h a n i s mi sc o m i n g t h el o a d b a l a n c es c h e d u l i n ga l g o r i t h mi st h ec o r eo ft h es e r v e rc l u s t e rl o a d b a l a n c et e c h n o l o g y u s u a l l yw es e l e c tt h ep e r i o d i cm e t h o dt oo b t a i ns e r v e r sl o a di n a d a p t i v el o a d b a l a n c es c h e d u l i n ga l g o r i t h m ,t h i sm e a n st h a tt h el o a dv a l u ed o e sn o t r e p r e s e n tm e m b e r sc u r r e n tl o a d ,b u tt h ep a s t i ft h e r ea r em a n yc u s t o m e r st ol i n ki na s h o r tt i m e ,t h ea c t u a ll o a do fs e r v e r sw i l li n c r e a s es u d d e n l yb e f o r et h el o a dv a l u ei s r e n e w e d i nv i e wo ft h ea b o v eq u e s t i o n s ,t h i st h e s i sp r o p o s e daa d a p t i v el o a d b a l a n c e o p t i m i z a t i o na l g o r i t h e mb a s e do ng e n e t i ca l g o r i t h m ,w h i c hn o to n l yc o n s i d e r e dt h e p a s ta n dc u r r e n tp e r f o r m a n c eo fs y s t e mt os e r v e r sc h o i c ea n dt h ea s s i g n m e n t ,b u t a l s oe s t i m a t e df u t u r el o a do fs y s t e mb e f o r ep r e - a s s i g nt h ec o n c u r r e n tr e q u e s t t h i st h e s i sm a i n l ys t u d i e st h ef l l o w i n g :f i r s t l y , m a k i n gr e f e r a n c et ot h em o d e lo f t h en e t w o r kl e v e la n dc l a s s i f i n gt h ec u r r e n ts e r v e rl o a d - b a l a n c et e c h n o l o g y e a c h w o r k i n gp r i n c i p l eo fl o a d b a l a n c em e t h o dw a si n t r o d u c e di nd e t a i l s ,t h e nc o m p a r i n g a n da n a l y z i n gt h es t r e n g t h e n s ,w e a k n e s s e sa n da p a t i o no ft h e s ew a y s s e c o n d l y , ld i d a ni n d e p t hr e s e a r c ho nt h ec o m m o nl o a d - b a l a n c ea l g o r i t h ma n dd r e wf l o wc h a r to f e a c ha l g o r i t h m ,p o i n t i n go u tt h e i rc h a r a c t e r i s t i c sa n dl i m i t a t i o n s s e t t i n ga b o u tf r o m i m p r o v i n g t h em a t h e m a t i c a lm o d e lo fl o a d b a l a n c i n g ,p r o p o s i n g aa d a p t i v e l o a d b a l a n c eo p t i m i z a t i o na l g o r i t h mb a s e do ng e n e t i ca l g o r i t h m ,a n da n a l y s i s i n ga n d s i m u l a t i n gt h ea l g o r i t h m f i n a l l y , w ed e s i g n e dal o a db a l a n c i n gs y s t e mb a s e do nt h e p l a t f o r mo fw i n d o w s ,w h i c hv e r i f i e dt h eo p t i m i z a t i o na l g o r i t h m ,t h e na n a l y s e dt h et e s t r e s u l t sa n dc o m p a r e dt h e mt oo t h e r s k e y w o r d s :s e r v e rc l u s t e r , g e n e t i ca l g o r i t h m ,l o a db a l a n c i n g 独创性声明 本人声明,所呈交的论文是我个人在导师指导下进行的研究工作及取得的 研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含 其他人已经发表或撰写过的研究成果,也不包含为获得武汉理工大学或其它教 育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示了谢意。 研究生 ( 签名) :五她日 期: 关于论文使用授权的说明 塑聋幽脚 1 - 本人完全了解武汉理工大学有关保留、使用学位论文的规定,即:学校有权 保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或 部分内容,可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 研究生( 签名,:黼导师c 签名,: 崮 期鎏至生塑声辟 武汉理工大学硕士学位论文 第1 章绪论 1 1 课题研究的背景和意义 随着i n t e r n e t 高速发展,新的应用层出不穷,一些服务器常常因为要在很短 的时间内应付数以万计的访问申请而不堪重负,对于一个大型网站来说无疑是 一个十分重大的冲击,对于一个大型的拥有自己向外部提供服务的服务器的企 业来说也是一个考验。解决服务器超负荷运转,可以不断升级服务器硬件性能, 每当负载增加,服务器随之升级。这将带来一些问题:首先,服务器向高档升 级,花费资金较多;其次,升级频繁,机器切换造成服务中断,可能会导致整 个服务中断,而对于类似于电子商务等网站,任何服务中断和关键性的数据丢 失都会造成直接的商业损失。每种架构的服务器升级总有一个极限限制,而且, 单台服务器升级速度的提高永远也赶不上用户数量的增长。一台p c 服务器通常 所能提供的并发访问处理能力大约为1 0 0 0 个,更高档的专用服务器能够支持 3 0 0 0 至5 0 0 0 个并发访问,但拥有这样的能力仍然无法满足负载较大的网站的要 求。网络请求具有突发性,当某些重大事件发生时,网络访问量就会急剧上升, 从而造成网络的拥堵。对于提供大负载w e b 服务的服务器而言,c p u 、i o 的处 理能力很快会成为瓶颈。由此产生了服务器集群的概念。 服务器集群是指一组将通过网络连接起来的多台服务器集中起来,一起进 行同一种服务,在客户端看来就象是只有一个服务器,同时也就做到了对用户 透明。在负载平衡的思路下,多台服务器为对称方式,每台服务器都具有同等 的地位,可以单独对外提供服务而无须其他服务器的辅助。通过某种负载分担 技术,将外部发送来的请求均匀地分配到对称结构中的某一台服务器上,而接 收到请求的服务器都独立回应客户机的请求。服务器集群负载平衡技术有着单 点服务器不能实现的功能:更高的性能价格比、良好的可扩展性、更好的系统 可靠性和容错性。 综上所述,在网络中,当众多工作站同时向同服务器发出请求或同时访 问同一个文件时,所产生的信息传输阻塞现象却是无能为力的。为此采用服务 器集群负载平衡这种策略,它能让多台服务器或多条链路共同承担一些繁重的 武汉理工大学硕士学位论文 计算或i o 任务,从而以较低成本消除网络瓶颈,避免了单机拥塞或单机故障造 成的不良影响,便于扩展,保证服务需要,提高网络的灵活性和可靠性。 1 2 国内外研究现状 美国d e c 公司( d i g i t a le q u i p m e n tc o r p o r a t i o n ,d e c ) 开发的v m s c l u s t e r 系 统是最开发最早的服务器集群系统,技术也很成熟,但由于v m s 操作系统只能 在d e c 公司的v a x 系列和a l p h a 系列服务器上运行,v m s c l u s t e r 的应用受到 很大限制。u n i x 是服务器或工作站上普遍使用的操作系统,它运行稳定、安全 性也比较好,因此许多大的公司都采用了基于u n i x 的集群系统解决方案,如 d e c ,h p ,s u n ,i b m ,n c r 和d g 等公司,其中d e c 公司的t r u c l u s t e r 系统 提供了由4 台d i g i t a l a l p h as e r v e r 组成的集群系统,它集高可靠性、高可用性和 易管理性于一身,是关键业务计算机系统的理想解决方案。基于w i n d o w s n t 的 集群系统解决方案厂商主要有m i r c r o s o f l 和d e c 。m i c r o s o f t 于1 9 9 5 年就开始了 集群系统的开发工作。w i n d o w s2 0 0 0 中已经增加了集群功能,该高可用性集群 叫做w o l f p a c k ,也叫做m i c r o s o f tc l u s t e rs e r v e r ( m c s ) t 2 1 。 服务器集群在实现负载均衡这一研究领域,已经取得了很多研究成果。 最初人们通过循环d n s 来解决服务器的超负载现象问题。通过对d n s 进 行配置,将多个服务器的m 地址以循环方式返回,数据流量被初步分配给各个 服务器。但是循环d n s 没有一种核实机制,以检查被分配的服务器是否在正常 运行。用户可能被导向一个故障服务器或是正在维修不能提供服务的服务器。 第一代负载均衡产品通过实际流量来识别出某个服务器有没有响应。尽管提供 了足够的负载均衡功能,但是这些产品的设计理念是被动的,因此不会积极地 对服务器可用性或服务器上的内容进行核实确认。所以第一代产品虽然具有很 好的可扩展性,但是不能提供真正的高可用性。 在最新的负载均衡产品中,智能化越来越明显。一些智能化的负载均衡器 能够侦测到像数据库错误、服务器不可用等信息,从而采取措施使会话恢复和 重定向服务器,使电子商务能够得以顺利进行。多址负载均衡器可以对客户发 来的访问请求进行解析,计算出最佳地址,然后将该地址返回客户,使客户自 动连接到对其请求来说最佳的数据中心。如:i n t e l 网擎负载均衡器【3 j ,这一设备 针对拥有多个网站地址的企业进行专门设计,能够根据单个u r l 地址将通信路 2 武汉理工大学硕士学位论文 由到方便可用的站点,从而实现广域网范围的负载平衡。 然而不管市面上的负载均衡产品如何更新发展,都不能做到绝对的负载平 衡,在不同的环境下也不一定是最佳的方案;传统的负载平衡调度算法也不成 熟,如轮转调度、加权轮转调度都属于静态调度,不适于工作复杂的现实环境, 而最少连接调度、加权最少连接调度尽管在一定的条件下工作相当好,但这些 方法基于一个假设,即所有连接的计算量在平均意义上是相等的,但事实上一 个连接的计算量大小悬殊往往很大。对负载均衡算法的研究,让大量的并发请 求尽可能地均匀分配到服务器集群上,始终是一件非常有意义的事情。 1 3 负载平衡理论 1 3 1 负载平衡概念 负载平衡【4 】就是采用先进的多层交换技术,通过对服务器的性能和运行状况 的实时监测,根据不同服务器的健康状况,将来访的数据流量以最经济、最高 效的方式分配到合适的服务器上,达到最佳的服务器负载平衡效果,并实现服 务器的动态加入或移出功能。 负载平衡包含有两个方面的含义:1 把大量的并发访问或数据流量分担到多 台节点设备上分别处理,减少用户等待响应的时间,即对并发访问进行任务调 度,让不同的服务器来对不同的用户服务;2 单个重负载的运算分担到多台节点 设备上做并行处理,每个节点设备处理结束后,将结果汇总,再返回给用户, 使得信息系统处理能力可以得到大幅提升。对于普通的w e b 访问而言,负载平 衡通常都是指实现第一方面的功能,只有对于科学计算或高性能计算的分布式 系统而言,才考虑第二方面的功能实现。 负载均衡建立在现有网络结构之上提供了一种廉价有效的方法扩展服务器 带宽和增加吞吐量加强网络数据处理能力提高网络的灵活性和可用性,它的主 要功能有: 1 实现地理位置无关性,能够远距离为用户提供完全的透明服务,在用户 看来,并不知道他的实际应用请求是在哪个真实服务器上被处理的。 2 多台服务器共同分担对外的网络请求服务。网络负载均衡技术保证即使 是在负载很重的情况下,服务器也能做出快速响应,用户提供更好的访问质量。 武汉理工大学硕士学位论文 3 负载平衡不但可以有效地解决单服务器的性能限制,而且可以实现故障 的快速转移,为关键的业务程序提供不中断的服务。 4 解决网络拥塞问题,可以根据网络访问量的增加来相应地增加网络负载 均衡服务器的数量。 1 3 2 软硬件负载平衡 软件负载平衡解决方案是指在一台或多台服务器相应的操作系统上安装一 个或多个附加软件来实现负载平衡,如l i n u x 下的l v s 5 】【6 】等,软件负载平衡方 案是基于系统与应用的负载均衡,能够更好地根据系统与应用的状况来分配负 载,配置简单,使用灵活,成本低廉,可以满足一般的负载均衡需求。但是, 由于每台服务器上安装额外的软件运行会消耗系统不定量的资源,越是功能强 大的模块,消耗得越多,所以当连接请求特别大的时候,软件本身会成为服务 器工作成败的一个关键;另外软件可扩展性并不是很好,易受到操作系统的限 制。 硬件负载平衡解决方案是直接在服务器和外部网络间安装负载平衡设备, 这种设备我们通常称之为负载平衡器,如f 5 的b i g i p 、r a d w a r e 的w 曲s e r v e r d i r e c t o r 7 】【8 】,由于专门的设备完成专门的任务,独立于操作系统,整体性能得到 大量提高,加上多样化的负载平衡策略,智能化的流量管理,可达到最佳的负 载平衡需求。但是负载平衡设备成本昂贵,还有可能存在单点失效的问题,当 关键的负载均衡设备一旦出了问题,所有的服务器都不能正常工作。 硬件负载均衡,一般都不管实际系统与应用的状态,而只是从网络层来判 断,所以有时候系统处理能力已经不行了,但网络可能还来得及反应。硬件方 式更适用于一大堆设备、大访问量、简单应用,而象比如几台应用服务器的情 况,显然基于软件方式要合理得多。 1 3 3 本地全局负载均衡 负载均衡从其应用的地理结构上,分为本地负载均衡( l o c a ll o a db a l a n c e ) , , 和全 局负载均衡( g l o b a ll o a db a l a n c e ) 。本地负载均衡是指对本地的服务器群做负载均 衡,全局负载均衡是指在不同地理位置、有不同网络结构的服务器群问做负载 均衡。 4 武汉理工人学硕士学位论文 本地负载均衡能有效地解决数据流量过大、网络负荷过重的问题,并且不 需花费昂贵开支购置性能卓越的服务器,可充分利用现有设备,避免服务器单 点故障造成数据流量的损失。有灵活多样的均衡策略,可把数据流量合理地分 配给服务器群内的服务器,来共同负担。即使是再给现有服务器扩充升级,也 只是简单地增加一个新的服务器到服务群中,而不需改变现有网络结构、停止 现有的服务。 雾豫n 一,一、 k i f l 【e r f l t 嚏 箩一 ( 、l i e l n 图1 1 本地负载均衡框架图 全局负载均衡【9 】,主要用于在一个多区域拥有自己服务器的站点,为了使全 球用户只以一个p 地址或域名就能访问到离自己最近的服务器,从而获得最快 的访问速度,也可用于子公司分散站点分布广的大公司通过i n t r a n e t ( 企业内部 互联网) 来达到资源统一合理分配的目的。 尸霭( 1 i c n t 鱼曼 ,一、 7 h l c r n c 【 彭一。 ( 【k 1 1 【 图卜2 全局负载平衡框架图 一犀孽 11jq|j4l霉 ,i,f;, 一 一 、 雌 + 一 一 瑚 一 一 一 , m 、 一耐韪。蘸眶。 旮垦” 武汉理工大学硕士学位论文 1 4 本论文的组织 第1 章阐述了本文所研究问题的背景及研究现状,介绍了负载平衡的基本 概念。 第2 章详细分析了各种服务器集群负载平衡方法的基本原理,对比分析了 各种方法的优缺点及适应面。 第3 章对服务器集群常用的负载平衡算法进行了详细分析与比较,指出了 各算法的优缺点,发现常用负载平衡算法中存在的一些问题。 第4 章为了解决以上问题,对常用负载平衡数学模型进行了改进,提出了 一种基于遗传算法的自适应负载平衡优化算法,对算法进行了分析和仿真演示。 第5 章以w i n d o w s 系统为平台设计了一个负载平衡系统,运行改进的自适 应算法,并与其他传统算法的运行结果进行了比较。 第6 章对本文研究内容作了总结和展望,并提出了几个需要进一步研究的 课题。 6 武汉理工大学硕士学位论文 第2 章服务器集群负载平衡技术概述 从网络的不同实现层次入手,以客户端应用为起点纵向考虑,可以把负载 平衡技术分为数据链路层、网络层、传输层、应用层等几个不同层次的实现方 式,目前在每一个层次都己有大量的技术实现负载平衡的主要功能,其优缺点 也各不相同。在这一章中,我们将对这些负载平衡技术进行研究。 2 1 数据链路层负载平衡 随着带宽增加数据流量不断增大网络核心部分的数据接口将面临瓶颈问题 原有的单一线路将很难满足需求,而且线路的升级又过于昂贵甚至难以实现, 这时就可以考虑采用链路聚合( t r u n k i n g ) 技术。 链路聚合技术【l o 】将多条物理链路当作一条单一的聚合逻辑链路使用,网络 数据流量由聚合逻辑链路中所有物理链路共同承担,由此在逻辑上增大了链路 的容量,使其能满足带宽增加的需求。 图2 1 链路聚合技术 如图2 1 所示,增加一条链路使交换机与服务器相连,可以减轻服务器的负 担,提高服务器的可靠性,达到负载平衡的目的。 2 2 网络层负载平衡 2 2 1n a t 网络地址转换 n a t ( n e t w o r ka d d r e s st r a n s l a t i o n ) 1 1 1 为网络地址转换。它仅使用一个或少 数几个公有地址即能使所有内部主机接入i n t e r n e t ,缓解了i p v 4 地址紧缺的问题。 n a t 内部主机( 也称n a t 用户) 使用私有地址。当数据包外出时,n a t 设备将其 源地址由私有地址转换为公有地址,进而与外界主机通信。而当外部网络中的 武汉理工大学硕士学位论文 计算机访问地址转换网关拥有的某一外部地址时,n a t 设备能将其转发到一个 映射的内部地址上。 n a t 中主要的工作就是改写口包的源、目的地址信息,使得发向v i p ( 虚 拟i p 地址) 的请求数据经过改写后重新指向内部主机;同样内部的应答数据经 过负载均衡器改写后,以v i p 作为源地址发至请求者。 图2 2n a t 的负载均衡技术 原理: 1 客户发出服务请求。 2 负载平衡服务器接收到请求,将数据包中目的i p 地址改为选中的应用服 务器i p 地址,然后重新发出数据包。 3 应用服务器收到后,将应答包发回给负载平衡服务器。 4 负载平衡服务器收到应答包后将其中的源地址改回成服务i p ,发回客户 端。 网络地址转换的优点是实际服务器可以运行支持t c p i p 协议的任意操作系 统,实际服务器可以使用私有地址,只需在平衡服务器上配置服务i p 地址。而 且现在的防火墙都支持地址转换功能,因此,容易为用户接受。 缺点是网络地址转换的性能扩展能力有限,服务结点无法和客户端直接通 信,不论是请求数据还是应答数据,都需要经过负载均衡器进行i p 包处理工作, 在负荷比较重的时候会影响整个集群的性能,负载均衡器容易成为瓶颈。 2 2 2lp 隧道 i p 隧道( i p t u n n e l i n g ) 1 2 】亦称为i p 封装技术( i p e n c a p s u l a t i o n ) 是将一个i p 报文 封装在另一个i p 报文的技术。这可以使得目标为一个l p 地址的数据报文能被封 装和转发到另一个i p 地址,利用i p 隧道技术动态地选择一台服务器,将请求报 文封装和转发给选出的服务器,响应报文能从后台服务器直接返回给客户。使 武汉理工大学硕士学位论文 用隧道负载平衡方法的体系结构如图2 3 所示。 如| pi 燃巨矽 s 腓i v i p l | 一r 麟 il s lp ! 僻ll l 。蔷茹忑猫燃 t il p il :。d i r e c t o r : ; t :s e l e c to n er e a ls e r v e r , e n c a p s u l a t e ,1 i :a n d 幻r w a r di tt ot h er e a is e r v e r : :0 i r e c t o ri so nt h ec l i e n t - t o - , : :s e r v e rh a t fc o n n e c t i o n 。 : 王。一。一,j 图2 3i p 隧道的负载均衡技术 原理: 1 客户发出服务请求。 2 负载平衡服务器接收到请求,将请求报文封装在另一个i p 报文中,再将 封装后的i p 报文转发给选出的服务器。 3 服务器收到报文后,先将报文解封获得原来目标地址为虚拟1 p 地址的 报文,服务器发现虚拟i p 地址被配置在本地的i p 隧道设备上,所以就处理这个 请求。 4 然后根据路由表将响应报文直接返回给客户。 在基于隧道技术的负载平衡方法中,负载平衡器只将请求调度到不同的后 台服务器,后台服务器将应答的数据直接返回给用户。这样,负载平衡器就可 以处理大量的请求,与基于n a t 技术的负载平衡方法相比,负载平衡器具有更 大的系统吞吐量和扩展性。但是,i p 隧道技术对服务器有要求,即所有的服务 器必须支持“i p t u n n e l i n g 或者“i p e n c a p s u l a t i o n ”协议。而且,随着集群规模 的扩大,负载平衡器上对报文的封装的开销也越来越大,这也将限制了系统的 扩展性和负载平衡器的吞吐量。 9 荔篡磊卸|帅嘞 一 一一一一 武汉理工大学硕士学位论文 2 2 3 直接路由 直接路由【5 】的特点是运用网络分层原理,通过将目标i p 包封装在指定m a c 地址的以太网数据包中欺骗t c p 堆栈,因此实际服务器和负载平衡服务器必须 在同一个物理网段中,并且在应用服务器上必须将服务i p 定义在l o o p b a c k 虚拟 网卡上。 疲潮壤舞辫i 磁嬲璇务错2 图2 - 4 直接路由转换模式 原理: 1 客户发出服务请求。 2 负载平衡服务器接收到请求,选择一台服务器,不修改也不封装i p 报文, 将数据帧的m a c 地址改为选出服务器的m a c 地址,然后重新发出数据包。 3 服务器收到报文之后,发现报文的目标地址在本地网络设备上,处理请求, 将应答包通过路由器直接发回客户端。 平衡服务器在直接路由模式下,将请求调度到不同的实际服务器,实际服 务器直接将结果发回客户端。在大多数应用中,请求的字节数远小于应答的字 节数,所以与网络地址转换相比平衡服务器能处理更多的请求。直接路由是最 高效,网络延时最小的负载平衡技术,但是,为达到m a c 地址的欺骗,负载平 衡服务器和所有应用服务器必须在同一个物理网段。而且,现在有些操作系统 缺省是关闭这种特性的,如f r e e b s d ,必须显示打开相应的内核开关才可以。不 过,目前的主流操作系统,都可以满足直接路由的需求,如w i n d o w s 、l i n u x 、 a i x 、s o l a r i s 等。 l o 武汉理工大学硕士学位论文 2 3 基于第四层交换的负载均衡 第四层是t c p ( 传输控制协议) 和u d p ( 用户数据报协议) 所在的协议层。 在第四层中,t c p 和u d p 的数据包包含端口号( p o r tn u m b e r ) ,它们可以唯一 区分每个数据包包含哪些应用协议( 例如h t t p 、f t p 等) 。端点系统利用这种 信息来区分包中的数据,尤其是端口号使一个接收端计算机系统能够确定它所 收到的i p 包类型,并把它交给合适的高层软件。t c p u d p 端口号提供的附加信 息可以为网络交换机所利用,这是第四层交换的基础。 当前局域网交换机所谓的第四层交换技术,就是按照i p 地址和t c p 端口进 行虚拟连接的交换,直接将数据包发送到目的计算机的相应端口。通过交换机 将来自外部的初始连接请求,分别与内部的多个地址相联系,此后就能对这些 己经建立的虚拟连接进行交换。因此,一些具备第四层交换能力的局域网交换 机,就能作为一个硬件负载均衡器,完成服务器的负载均衡。 具有第四层功能的交换机能够起到与服务器相连接的“虚拟i p ”( v i p ) 前 端的作用。每台服务器和支持单一或通用应用的服务器组都配置一个v i p 地址。 这个v i p 地址被发送出去并在域名系统上注册。在收到一个服务请求时,第四 层交换机通过判定t c p 开始,来识别一次会话的开始。然后它利用复杂的算法 来确定处理这个请求的最佳服务器。一旦做出这种决定,交换机就将会话与一 个具体的i p 地址联系在一起,并用该服务器真正的i p 地址来代替服务器上的 v i p 地址【1 3 】。每台第四层交换机都保存一个与被选择的服务器相配的源i p 地址 以及源t c p 端口相关联的连接表。然后第四层交换机向这台服务器转发连接请 求。所有后续包在客户机与服务器之间重新影射和转发,直到交换机发现会话 为i i - _ 。 2 4 应用层负载平衡 2 4 1 反向代理负载均衡 反向代理负载均衡通过反向代理服务器将请求均匀地转发给多台内部服务 器之上,从而达到负载均衡的目的。反向代理服务器对外就表现为一个w e b 服 务器,外部网络就可以简单把它当作一个标准的w e b 服务器而不需要特定的配 武汉理工大学硕七学位论文 置。不同之处在于,这个服务器没有保存任何网页的真实数据,所有的静态网 页或者c g i 程序,都保存在内部的w e b 服务器上。因此对反向代理服务器的攻 击并不会使得网页信息遭到破坏,这样就增强了w e b 服务器的安全性。反向代 理服务器代理内部的多个服务器。这样外部网络的所有访问都必须经过反向代 理,因此就给我们方便地记录、分析、统计、控制用户的访问行为提供了可能, 而不必再去处理分布于各个内部服务器的大量访间日志【l 4 。 反向代理服务器本身虽然可以达到很高效率,但是针对每一次代理,代理 服务器就必须维护两个连接,一个对外的连接,一个对内的连接,随着并发连 接数量的增加,代理服务器本身的负载也变得非常大,最后反向代理服务器本 身会成为服务的瓶颈。 2 4 2h t t p 重定向 h t t p 重定向【1 5 】- 【17 】是利用h t t p 协议提供的重定向机制,w e b 服务器可重 定向输入的请求,w e b 服务器估计请求的处理时间结合自己的负载状况决定是 否转发。它需要一种机制在w e b 服务器之间交换各自的负载状况,分布式服务 项目组在h t t p 协议中添加一种方法用于管理集群和在分配器和服务器之间交换 信息如图2 5 所示,在图2 5 中服务器l 在收到客户请求后s t e r 4 ,并不处理该 请求而是重定向该请求到服务器2s t e p56 。 s 眈p3 : 瑚r c 弼唧哪峨棼臁l 一硝( h 辚l s 嘧p ,j 榴臂孵协哪翰铭f t , 碾lo 碡婚l s w p4 :t r l c l e t 心娜瞥铸恤t 出口珏b s t e p5 :v 矿d 口东西e t “嘲i s 船口瞰f i r f i r p 魁谴融蕈断魄 锄p7 :l x 髓蝴懈嘲啦簟簖镬怡矗- 自朗够碜 糖pb :【k w 啦树埘帮聊日鹾轴函知* 嚣 图2 5 服务器重定向技术 上图所示的结构对客户而言是不透明的,客户可以知道被重定向到的服务 武汉理工大学硕士学位论文 器地址;另一种实现采用包重写技术图2 6 对客户而言是完全透明的,在图2 6 中服务器1 在收到客户请求后s t e p4 ,在不影响客户的情况下重定向该请求到服 务器2s t e p 56 s l 诤j :a d k l t e h 蹦峰蚺瞳善i u 萎l 矗h ! ;哮,:a 鼬锋辑“狮钿雾耐h 辅i 蛳4 :d _ 睡c 埔雌印_ e 疆t 掣绰l 勘坤5 :谱曲嘲柳口雠b 函姐 臻婚踟曛弭r e r o , j 嘞 s l 雌7 :强啪嘲雌印i 瑚瓣臼矗蛔昂蛰 图2 - 6 包重写技术 h t t p 重定向具有很好的易用性,而在h t t p 请求和报文头中有很多对负载 平衡有用的信息。从这些信息中可以获知客户端所请求的u r l 和网页,利用这 个信息,负载平衡设备就可以将不同的请求引导不同的服务器上。但h t t p 重 定向需要复制同样数目的t c p 连接,需要修改h t t p 协议增大了反应时间。 2 4 3r o u n d - r o bind n s 负载平衡技术 在d n s 服务器中,可以为多个不同的地址配置同一个域名,而最终查询这 个名字的客户机将在解析这个域名时得到其中一个地址。因此,对于同一个名 字,不同的客户机会得到不同的地址,他们也就访问不同地址上的w e b 服务器, 从而达到负载均衡的目的。为了完成到不同服务器i p 地址的映射,r r d n s l l 刈 确定每一个被解析的名字的存活期( t i m e t o 1 i v e ,t t l ) 。超过存活期的请求就不 在本地解析,而是转发到授权了的r r d n s 进行到不同i p 地址的再映射。 武汉理工大学硕士学位论文 图2 7 基于d n s 的服务器集群负载均衡模型结构 原理: 1 向d n s 负载均衡器发出域名解析请求。 2 d n s 负载均衡器将选择的应用服务器地址返回给客户端。 3 客户端向这台应用服务器发出服务请求。 4 应用服务器响应客户端的请求。 客户端只需要知道应用服务器的域名信息,在正常的响应时间内就能得到 服务,选择应用服务器全部由负载均衡器控制,中间过程对于用户是透明的。 d n s 轮询实现起来简单,无需复杂的配置和管理,但是也存在不少问题t 首先,域名服务器无法知道服务结点是否有效,如果服务结点失效,域名系统 依然会将域名解析到该节点上,造成用户访问失败;其次,为了使地址能随机 分配,就应使t t l 尽量短,然而将t t l 设置得过短,将使d n s 流量大增,而 造成额外的网络流量;最后,它不能区分服务器的差异,也不能反映服务器的 当前运行状态。由于域名系统没有合适的负载策略,仅仅是简单的轮流均衡, 很容易发生负载倾斜,因此,在动态平衡特性上,d n s 轮询的效果并不理想。 2 4 4 基于客户端的负载平衡技术 这种模式指的是在网络的客户端运行特定的程序,该程序通过定期或不定 期的收集服务器群的运行参数,再根据某种选择策略,找到可以提供服务的最 佳服务器,将本地的应用请求发向它。如果负载信息采集程序发现服务器失效, 则找到其他可替代的服务器作为服务选择。整个过程对于应用程序来说是完全 透明的,所有的工作都在运行时处理,但这种技术存在通用性的问题。因为每 一个客户端都要安装这个特殊的采集程序;并且,为了保证应用层的透明运行, 需要针对每一个应用程序加以修改,通过动态链接库或者嵌入的方法,将客户 1 4 武汉理工大学硕士学位论文 端的访问请求能够先经过采集程序再发往服务器,以重定向的过程进行。对于 每一个应用几乎要对代码进行重新开发,工作量比较大。 在采用j a v a 构架模型中,常常使用这种模式实现分布式的负载均衡,因为 i a v a 应用都基于虚拟机进行,可以在应用层和虚拟机之间设计一个中间层,处理 负载均衡的工作。例如,s m a r t c l i e n t p 9 】是b e r k e l e y 做的一种基于客户端的解决方 法。服务提供一个j a v aa p p l e t 在客户方浏览器中运行,a p p l e t 向各个服务器发请 求来收集服务器的负载等信息,再根据这些信息将客户的请求发到相应的服务 器。高可用性也在a p p l e t 中实现,当服务器没有响应时,a p p l e t 向另一个服务器 转发请求。这种方法的透明性不好,a p p l e t 向各服务器查询来收集信息会增加额 外的网络流量,不具有普遍的适用性,部署和实现都很不经济。 2 5 常用负载平衡方法比较 表2 - 1 常用负载平衡方法比较 平衡方法基本原理优点及适应面缺点 链路聚合 链路聚合带宽增加,可靠性大大提高增加通信资源及设备端口的开销 技术 服务器可以运行任何支持 n a t 负载网络地址伸缩能力有限,调度器容易成瓶 t c p i p 的操作系统,节省i p v 4 平衡转换技术颈 地址空间 i p 封装技请求和响应分开处理极大地提所有的服务器必须支持i p 封装 i p 隧道 术 高整个集群系统的吞吐量协议。 请求和响应分开处理极大地集 m a c 地要求负载调度器与实际服务器都 直接路由 群系统的伸缩性。没有隧道 址修改有块网卡连在同一物理网段上 的开销 内容分发1 内容分发请求,防止非授权访 第4 层交换协议分析开销大 请求 问2 可以为传输流分配优先级 域名解析 实现起来简单,无需复杂的配置 1 各服务器间的负载容易存在倾 d n s 轮询 和管理,成本低、适用于大多数 技术斜2 系统的可靠性和可维护性差 t c p i p 应用 武汉理工大学硕士学位论文 续表2 1 常用负载平衡方法比较 平衡方法基本原理优点及适应面缺点 1 结合代理服务器的高速缓存1 必须为每一种应用服务专门开 反向代理 反向代理 技术提升静态网页的访问速度, 发一个反向代理服务器,限制其 服务器技术2 网络外部用户不能直接访问应用范围2 每次响应要维护双倍 真实的服务器,安全性高 t o p 连接,容易单点失效 访问流量 1 它依赖于特定协议,因此使用范 h t t p 重定可以对h t t p 请求和报头分析 围有限2 月最务器分清客户端所需 的高层控 向得出信息,引导到指定的服务器的网页和资源之前至少要进行四 制方式 次t c p 的数据包交换请求 特定的客 嵌入客户由于实际上集群呈现对等网模 户端运行部署和实现都不很经济 端应用式,灵活性可以最大化 程序 不同的负载平衡方法适用于不同的集群部署方式。一个好的负载平衡方法 也并不是万能的,它一般只在某些特殊的应用环境下才能发挥最大效用。因此 我们在考察负载平衡方法的同时,也要注意方法本身的适用面,在采取集群部 署的时候根据集群自身的特点进行综合考虑。 1 6 武汉理工大学硕士学位论文 第3 章服务器集群负载平衡算法的分析与比较 对于服务器负载平衡技术而言,负载平衡调度算法至关重要,不管是用软 件还是用硬件来实现负载平衡,都需要使用调度算法。服务器负载平衡算法有 很多,包括轮转算法、最少连接算法、散列算法等等,此外实际服务器可以被 分配不同的加权值来调整被分配的流量。比如性能高的大型服务器可配置较大 的加权值,而为性能较低的小型服务器设置较小的加权值。为了避免服务器因 过载而崩溃,可为实际服务器指定最大连接阈值来避免该服务器过载。任何服 务器可被指定为另一台服务器的备份服务器或溢出服务器,从而进一步保证了 应用可用性。以下将对常用的负载平衡算法进行分析与比较。 3 1 轮转调度算法 轮转调度算法【2 0 】【2 1 1 ( r o u n d r o b i ns c h e d u l i n g ) 简单地在一串节点中线性轮 转,平衡器将新请求发给节点表中的下一节点,如此连续下去。在服务器集群 环境中,轮转算法认为每台服务器都具有相同的地位,将新的请求轮流发给服 务器集群中的成员。在算法实现时,即每次调度执行i - ( i + 1 ) m o dn ,并选出第 i 台服务器。 假设有一组服务器s = s o ,s 1 ,s n 1 ,一个指示变量i 表示上一次选择 的服务器,w ( s i ) 表示服务器s i 的权值。变量i 被初始化为n 1 ,其中n 0 。轮 转调度算法流程图如下: 1 7 武汉理工大学硕士学位论文 图3 - 1轮转调度算法流程 轮转调度算法假设所有服务器处理性能均相同,不管服务器的当前连接数 和响应速度。该算法相对简单,不适用于服务器组中处理性能不一的情况,而 且当请求服务时间变化比较大时,轮转调度算法容易导致服务器间的负载不平 衡。在实际应用中,一般将它与其他简单方法联合使用时比较有效。 2 加权轮转调度算法 加权轮转调度【2 2 】( w e i g h t e dr o u n d r o b i ns c h e d u l i n g ) 算法可以解决服务器 间性能不一致的情况,它用相应的权值表示服务器的处理性能,假设服务器a 的权值为1 ,b 的权值为2 ,则表示服务器b 的处理性能是a 的两倍。加权轮转 调度算法是

温馨提示

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

评论

0/150

提交评论