(计算机系统结构专业论文)基于corba的适应性负载均衡服务研究及其容错机制设计.pdf_第1页
(计算机系统结构专业论文)基于corba的适应性负载均衡服务研究及其容错机制设计.pdf_第2页
(计算机系统结构专业论文)基于corba的适应性负载均衡服务研究及其容错机制设计.pdf_第3页
(计算机系统结构专业论文)基于corba的适应性负载均衡服务研究及其容错机制设计.pdf_第4页
(计算机系统结构专业论文)基于corba的适应性负载均衡服务研究及其容错机制设计.pdf_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

中文摘要 ( 随着复杂分布式计算技术的快速发展和分布式服务的广泛应用,对分布式对 象中向件的服务质量提出了越来越高的要求。在c o r b a 技术日臻完善的同时, 基于c o r b a 的分布式应用,在服务质量q o s 方面,也提出了更高的扩展性和 可靠性要求。解决分布式中间件系统扩展性和可靠性需求一个重要方法就是负载 均衡,它不仅能通过将客户请求均匀分配到多个服务器上执行以保证系统的扩展 性,也能根据系统实时运行状况、系统配置的改变( 比如硬、软件故障) 来动态 调整负载,以保证系统可靠性。 基于c o r b a 的负载均衡是近年来c o r b a 研究领域的一个新课题,而目前 多数研究方案存在着没有解决c o r b a 负载均衡自身容错机制的问题。容错机制 对于可靠的负载均衡服务是十分必要的,因为负载均衡服务的容错机制,可以保 障在负载均衡服务或者分布式应用对象发生故障时重新分配任务,并在故障出现 时仍保证系统运行效能,避免负载均衡服务成为系统性能瓶颈。体论文在基于 c o r b a 的负载均衡研究及其容错机制设计方面的主要贡献在于j ( 1 ) 归纳分析 了目前已有的负载均衡解决方案以及它们在负载均衡容错研究和实现上的不足; ( 2 ) 基于c o r b a 负载均衡,分析了各个不同解决方案的优缺点,说明为分布 式应用提供单独实现1 的c o r b a 负载均衡服务的必要性;( 3 ) 结合适应性负载 均衡架构和o m gc o r b a 容错规范,提出了单独实现的c o r b a 负载均衡服务 中容错机制的设计方案:( 4 ) 通过测试客户端的延时和吞吐量,给出了容错适应 性负载均衡服务的运行效率,以及故障恢复实验中的性能结果,并利用实验结果 进一步说明容错机制对负载均衡服务的重要性。 【关键字】中间件 7c o r b a ,扩负载均衡y 容错,扩展性,可靠性 1 因为c o r b a 规范中没有负载均衡服务的定义,日前多数基于c o r b a 的负载均衡服务都是利用c o r b a 已定义的其他服务。如命名服务、事件服务来实现负载均衡的功能,而不是专门的负载均衡服务。正凼 为如此, e 1 i j 的应用受到了一定的局限( 论文3 2 节中将详细闸述) ,所以需要有单独实现的负载均衡服务, 在c o r b a 架构中与其他服务同等的发挥作用 j i a b s t r a c t w i t ht h er a p i dd e v e l o p m e n to fc o m p l i c a t e dd i s t r i b u t e dc o m p u t i n gt e c h n o l o g ya n d d i s t r i b u t e da p p l i c a t i o n s ,m o r es h o u l db ed o n et oe n s u r eq o s ( q u a l i t yo fs e r v i c e ) f o r d i s t r i b u t e do b j e c tm i d d l e w a r es e r v i c e s w h i l ec o r b a b e c o m e sm o r ep o p u l a ra n d m a t u r e ,c o r b a b a s e da p p l i c a t i o n sr e q u i r em o r ei ns a l a b i l i t ya n dd e p e n d a b i l i t y o n e i m p o r t a n tw a y t om e e tt h o s eq o sr e q u i r e m e n t si sl o a db a l a n c i n g i tc a l lh e l pi m p r o v e s c a l a b i l i t yb yd i s t r i b u t i n ga n dp r o c e s s i n gc l i e n ta p p l i c a t i o nr e q u e s t se q u i t a b l ya c r o s s jm u l t i p l es c i w c r sa n df o rd e p e n d a b i l i t y , i tc a nh e l pa d a p td y n a m i c a l l yt os y s t e m r u n t i m es t a t u s ,s y s t e mc o n f i g u r a t i o nc h a n g e ( d u et oh a r d w a r eo rs o r w a r ef a i l u r e ) c o r b a b a s e dl o a db a l a n c i n gi san e wr e s e a r c ht o p i c a c c o r d i n gt om o s ta v a i l a b l e c o r b a b a s e dl c a db a l a n c i n g i i t t l ei sc o n s i d e r e df o rf a u l tt o l e r a n c em e c h a n i s mi n l o a d b a l a n c i n gs e r v i c e h o w e v e r , f a u l tt o l e r a n c e i s n e c e s s a r yf o r r e l i a b l el o a d b a l a n c i n gs e r v i c e ,r e d i s t r i b u t i n gt a s k si n c a s eo ff a i l u r eo fd i s t r i b u t e da p p l i c a t i o n o b j e c t so rl o a db a l a n c i n gs e r v i c e s ,t h u st oe n s u r es y s t e mp e r f o r m a n c ea n da v o i dl o a d b a l a n c e rb e c o m i n gn e wb o t t l e n e c k t h i st h e s i sp r e s e n t sf o u rc o n t r i b u t i o n st or e s e a r c h o nc o r b a b a s e dl c a d b a l a n c i n gs e r v i c ea n di t sf a u l tt o l e r a n c ed e s i g n :( 1 ) ip r e s e n t d i f f e r e n tl o a db a l a n c i n gs o l u t i o n s ,s u m m a r i z et h e i rd e f i c i e n c i e sa n da n a l y z et h e i rf a u k t o l e r a n c ec o n s i d e r a t i o n s ;( 2 ) i a n a l y z ev a r i o u sc o r b a - b a s e dl o a db a l a n c i n g m e c h a n i s m s ,c o m p a r et h e i rp r o sa n dc o n sa n de x p l a i nw h y w en e e di n d e p e n d e n tl o a d b a l a n c i n gs e r v i c e ;( 3 ) ip u tf o r w a r d an e wf a u l t - t o l e r a n ts c h e m ef o ra d a p t i v e c o r b a - b a s e dl o a db a l a n c i n gs e r v i c e ;( 4 ) ip r e s e n tt h er e s u l t so fp e r f o r m a n c e e x p e r i m e n t sb ym e a s u r i n gc l i e n tl a t e n c ya n dt h r o u g h p u ta n dh o wf a u l tt o l e r a n tl o a d b a l a n c i n gs e r v i c eb a l a n c e ss y s t e ml o a du n d e rs y s t e mf a i l u r e i nr e s u l t ,ip r o v et h e n e c e s s i t yf o rt h ee m p l o y m e n to ff a u l tt o l e r a n c em e c h a n i s mi n t oc o r b a - b a s e dl o a d b a l a n c i n gs e r v i c e 【k e y w o r d s 】m i d d l e w a r e ,c o r b a ,l o a db a l a n c i n g ,f a u l tt o l e r a n c e ,s c a l a b i l i t y , d e p e n d a b i l i t y 基于c o r b a 的适应性负载均衡服务研究及其容错机制设计 第一章前言 第一章前言 1 1c o r b a 技术发展与负载均衡 c o r b a 是一种标准的面向对象应用程序体系规范。当前企业面临的主要问 题是需要集成多种工作单元,企业可以利用现有软硬件来解决不断增长的业务。 i n t e r n e t 使计算机联结起来,c o r b a 使应用软件联结起来。在i n t e r n e t 上集成应 用软件,就是通常所说的“分布式软件开发”。c o r b a 为可移植、面向对象的 分布式计算应用程序提供了不依赖于平台的编程接口和模型,它不依赖于编程语 言、计算平台、网络协议的这一特点,使得它非常适合现有分布式系统新的应用 程序开发和系统集成。 过去几十年间,i n t e m e t 技术迅速发展,i n t e m e t 服务也出现一片繁荣景象, 对分布式应用的可靠性和扩展性的要求也越来越高。随着电子商务、网上股票交 易等的发展,对分布式应用又提出了相当高的服务质量要求。负载均衡是保护现 有硬件投资的一个有效手段,通过硬、软件机制来决定如何分配处理客户请求。 由于客户请求是均匀分配到多台服务器上的,负载均衡机制提高了系统的可扩展 性。同样,当硬、软件发生故障时,它可以根据新的系统配置动态调整任务分配, 从而进一步保证了系统可靠性,使整个系统一直高效运作。 c o r b a 规范目前还没有对负载均衡服务进行标准化,但目前不少生产 c o r b a 产品的公司以及一些研究机构、大学实验室都在研究利用各种方法以实 现分布式中间件负载均衡功能。 1 2 论文立意 目前各种负载均衡解决方案中,已实现了容错机制的负载均衡,在各自的应 用环境下,通用性、共享性、独立性方面均存在着各自的不足。随着分布式应用 的发展,基于中间件的负载均衡正成为新的重要解决方案。目前单独通用的基于 c o r b a 的负载均衡服务并不多,这些单独通用的负载均衡服务,又往往没有充 分考虑负载均衡服务本身的容错。然而容错和负载均衡本身就具有十分紧密的关 系,容错是完善的负载均衡服务本身需求( 负载均衡服务可能就是客户和服务器 通讯的中介机构,它的故障可能会导致整个系统无法正常工作) ,而负载均衡又 是容错服务的后续( 因为通常系统发生故障后需要重新分配应用请求,重新将请 求负载均衡,以使系统恢复正常工作) 。本论文就是针对单独通用的c o r b a 负 第1 页共4 3 页 基于c o r b a 韵适应牲负载均衡服务研究及其容错机制设计 第一章前言 载均衡服务,基于分布式对象计算组织d o c g ( d i s t r i b u t e do b j e c tc o m p u f i n g g r o u p ) 的适应性通讯环境a c e ( a d a p t i v ec o m m u n i c a t i o ne n v i r o n m e n t ) 和a c e t a o ( t h ea c eo r b ,a c e 的c o r b a o r b 实现) 开放架构( 通用性、共享性 和独立性获得保证) ,对其负载均衡服务做了进一步的改进,设计了负载均衡服 务本身的容错机制。t a o 负载均衡服务的容错机制是基于标准c o r b af a u l t t o l e r a n c e 规范和思想,因此保持了服务原有的通用性和独立性。单独负载 均衡服务特有的容错功能,为更加复杂的分布式应用环境中的负载均衡服务提供 了更多保障,容错机制的加入,使得负载均衡服务对含状态信息复本的负载监测 更加方便和可行。 1 3 文章组织 论文的其余部分组织如下:论文的第二部分分析了现有各种负载均衡服务的 特点及不足,并对它们的容错机制进行了分析:第三部分重点分析各种基于 c o r b a 的负载均衡解决方案,非单独负载均衡服务的不足,以及它们在容错机 制方面的考虑;论文第四部分基于分布式对象计算组织d o c gc o r b a 架构t a o 的负载均衡服务,根据标准c o r b af a u l tt o l e r a n c e 规范和t a o 容错服务 架构,对负载均衡服务性能进一步改进,设计了t a o 负载均衡服务的容错机制; 第五部分对改进结构进行性能测试和分析;论文最后给出了容错负载均衡今后的 研究方向。 第2 页共4 3 页 基于c o r b a 的适应性负载均衡服务研究及其容错机制设计 笙三兰垒望塑塑苎查坌鲞 第二章负载均衡技术分类 2 1 负载均衡技术介绍 随着i n t e m e t 应用服务量( 尤其是电子商务、银行、股票等业务) 的急剧增 长,对具有可扩展性,可靠性分布式系统的应用需求也越来越大? 面对迅速增长 的业务,负载均衡技术不仅可以保护原有的硬件投资,而且可以明显提高系统反 应速度和性能。 - 负载均衡技术可以增强系统的扩展性和可靠性。具体来说,在分布式应用需 求急剧增长的今天,负载均衡首先可以分流用户的执行请求,保证多个服务器均 等的处理请求,而当服务器负载超过系统正常运转的门限值时,可以增加新的事 务处理服务器来满足更多的需求,以此保证系统扩展性。同样,当系统出现硬软 件故障时,负载均衡可以保证系统动态适应配置变化,从而保证系统可靠性。 负载均衡算法分为两种:一是静态负载均衡,也就是一次性分配任务处理服 务器或应用执行对象,直到任务所在的服务器或应用执行对象出现问题;二是动 态负载均衡,即使任务分配过后,仍能动态的将任务从一些负载重的服务器或应 用执行对象向负载轻的服务器或应用执行对象上转移。完全的依赖静态负载均衡 往往是不够的,因为静态负载均衡依赖的是当时的负载状况,而这些负载状况可 能已经是过时的了( 比如在短时间内可能有大量的请求发送到该服务器或应用执 行对象,或者当一个请求被分配到某一服务器或应用执行对象,在下一请求分配 之前,负载分析器来不及刷新负载信息,就会导致大量请求很短时间内发到同一 服务器,从而引起h e r d 效应) ,也有可能因为网络或每台机器正在处理的任务不 同等原因,导致初始的负载均衡状态发生变化。因此,为保证整个系统高效运行, 还需支持动态负载均衡。负载均衡涉及几个方面的问题:( 1 ) 负载评价要素( 2 ) 负载的正确测量估计( 3 ) 任务迁移策略。 根据应用不同级别或层次,我们可以将负载均衡技术分为:基于网络的负载 均衡,基于o s 的负载均衡和基于中间件的负载均衡。 2 2 基于网络的负载均衡技术 基于网络的负载均衡主要是通过i p 路由器和d n s 服务器的功能实现的。对 于路由器,可以将t c p 流绑定到任一台后台服务器,而对于d n s 服务器,则可 以在解析主机名时,将请求分配到不同的后台服务器上,从而也实现了对用户来 第3 页共4 3 页 说t 透明”的负载均衡。d n s 负载均衡技术是最早的负载均衡解决方案之一 它的优点是实现简单、实施容易、成本低,适用于大多数t c p i p 应用,因此许 多大型的网站都采用此种负载均衡技术。 但是它的缺点也非常明显,它并不是严格意义上的负载均衡,它只是把 h 1 v r p 请求平均的分配到后台的w e b 服务器上,而不考虑当前w e b 服务器的 负载情况和每台服务器实际的配置和处理能力,这样,最慢的w e b 服务器可能 成为处理的瓶颈,而处理能力强的服务器又不能充分发挥作用。其次,多数基于 底层的负载均衡局限在于并没有考虑客户请求的内容,比如u r l 中的路径信息。 。2 3 基于o s 的负载均衡技术 基于o s 的负载均衡主要通过分布式操作系统的群集( c l u s t e r i n g ) 、负载共 享( l o a ds h a r i n g ) 和进程迁移( p r o c e s sm i g r a t i o n ) 技术来实现。群集是一种低 成本但却十分有效的负载均衡机制,它通常是和负载共享、进程迁移一起实现负 载均衡。分布式系统可能包括若干个异构的计算节点,这些计算节点通过网络连 接。虽然计算节点在物理上可能是分布的,但对于用户来说必须从软件上实现系 统环境的统一。任一计算节点的所有资源对于其他计算节点来说是透明和易用 的。比如重要的系统资源之一c p u ,如果各个节点之间可以共享计算负载的话, 那么任一节点的c p u 资源对于其它节点来说就需要实现透明使用。系统需要决 策哪些任务应该在哪些节点上执行,或者哪些任务在执行过程中需要迁移,迁移 到哪个新的计算节点。 进程迁移就是将一个进程从当前位置移动到指定的处理器上。它的基本思想 是在进程执行过程中移动它,使得它在另一个计算机上继续存取它的所有资源并 继续运行,并且不必知道其它运行进程的情况,就可以启动进程迁移操作,这意 味着迁移是透明的。进程迁移技术用于处理器、网络节点间的负载均衡,但是进 程状态迁移则需要能够处理异构节点差异的网络架构的支持。 2 4 基于中间件的负载均衡技术 近年随着分布式应用的发展,对分布式应用环境提出了越来越高的要求。虽 然负载均衡的研究已有很多年,但是基于网络和基于操作系统的负载均衡技术在 负载控制粒度( 比如操作系统通常都是进程级上的负载平衡,而基于网络的通常 都是根据地址) 、对用户请求分析上都有很大的局限,因此基于中间件的负载技 术应蕴而生。基于中间件的负载均衡策略优势在于:基于中间件的负载均衡策略 第4 页共4 3 页 基于c o r b a 的适应性负载均衡服务研究及其窖错机制设计塑三皇垒望塑塑垫查坌茎 可以和特定的基于网络和基于o s 的负载均衡策略联合实现负载均衡功能;它可 以构建在普通的网络和0 s 基础上,减少了构建成本;此外,它可以根据不同应 用的负载均衡条件提供丰富的语义方法实现负载均衡。 2 5 负载均衡与容错机制 负载均衡和容错是紧密联系在一起的。负载均衡保证整个系统中的负载能均 衡分配,通过指定或重新指定客户请求到相应的服务器,达到优化整个系统性能 和缩短反应时间的目的,包含容错机制的负载均衡服务不仅可以保证服务本身的 。可靠性,保证在某些服务器或执行复本发生故障时,仍能有效为客户请求提供服 务,还能为更复杂的分布式应用提供有效的复本控制机制:而容错机制在处理器 或者网络连接等出现各种故障时,仍然能保证整体系统的有效运行,容错服务通 常需要包含负载均衡功能。本论文主要研究负载均衡本身的容错机制,因为客户 请求通常是通过负载均衡器分配到服务器或应用执行对象的,一旦负载均衡服务 发生故障,就可能导致客户请求不能得到进一步响应,整个系统无法正常工作。 所以负载均衡服务本身需要具备一定的容错功能。 基于网络的负载均衡机制主要通过i p 路由器和d n s 服务器实现,如果后台 w e b 服务器出现故障,而负载均衡服务并不知道服务器发生了故障,客户请求 可能仍然被送到这台服务器上,将导致客户请求不被响应,由于d n s 缓存的原 因,一部分客户还可能一段时间内享受不到w e b 服务。 基于o s 的负载均衡也有自己的进程监测机制,但它的所有负载均衡策略都 是基于进程级的,缺少相应的迁移进程反馈方法,它的负载均衡机制容错考虑也 都是基于进程管理考虑的。 与以前的负载平衡相比,分布式环境中的负载均衡需要解决分布式、异构性、 透明性、粒度、开放性等问题。现有的基于中间件的负载均衡也仍然存在问题, 比如负载平衡器采用集中机制,仅支持无状态的复本,不支持容错机制等等,而 许多问题都可以通过在负载均衡服务中引入容错机制得以改进。 2 6 小结 基于网络、基于o s 和基于中间件的负载均衡有着各自的优势,但随着 i n t e r r t e t 服务迅猛增长,对具有可靠性和可扩展性的分布式应用提出了越来越高 的要求。单纯基于网络和基于o s 负载均衡显出了诸如在灵活性( f l e x i b i l i t y ) 和 适应性( a d a p t a b i l i t y ) 等方面的局限性。缺乏灵活性因为基于网络和o s 的负载 第5 页共4 3 页 基于c o r b a 的适应性负载均衡服务研究及其容错机制设计 第二章负载均衡技术分类 均衡机制,不支持运行状态中根据由应用特点而决定的均衡因素来确定均衡策 略。缺乏适应性因为缺乏相应的应用服务器或执行复本负载反馈机制,也缺乏相 应的控制机制,比如应用服务器或执行复本是否和何时接受额外的客户请求。多 数基于网络和基于o s 的负载均衡机制都不能提供直接的、可移植的、基于应用 层请求特征的( 比如请求内容和持续时间) 负载均衡决策,而基于中间件的负载 均衡机制则可以实现。此外,对于分布式面向对象环境的负载管理有进程、对象 和请求三种粒度上的,相比较而言,进程级负载控制较粗粒度,因为个进程中 可能有许多个对象,进程级粒度就可能大大降低负载管理的效率。在分布式面向 对象环境中,对象自然而然成为负载分配的实体。但同时,基于中间件的负载均 衡策略仍需要进一步的改进,加入容错机制就是其中一个需要完善的重要方面。 第6 页共4 3 页 苎三塑些垒箜重查丝垒墨望鱼墨墨婴塞垦基窒壁垫型堡茎 蔓三曼苎主旦! 型垫旦坐堕! 塑塑 第三章基于c o r b a 的负载均衡 3 1 基于o r b 的负载均衡 c o r b a 中对象与中间件通过可移植对象适配器p o a 连接。对象适配器提 供了创建和撤销对象的功能,并且为对象分配请求。而对象代理请求o r b 提供 了创建对象适配器和请求处理的功能。客户请求由o r b 传递给相应的p o a ,再 由p o a 调用伺服程序完成客户请求。负载均衡机制可以直接嵌入o r b ,比如在 v 对象定位器( 1 0 c a t o r ) 中集成负载均衡机制或使用i d l ( i n t e r f a c ed e f i n i t i o n l a n g u a g e ) 级方法。 采用基于o r b 负载均衡的优势在于:基于o r b 机制的中间件负载均衡机 制有对象位置、编程语言、操作系统平台、通讯协议和物理硬件透明性等特点。 o r b 更可以决定哪些用户请求分配到哪些服务器的对象复本上执行;对象执行 和可能出现的多线程处理需要对请求队列和对象处理进行介入,这只有通过 p o a 控制请求处理才能实现;对象引用的分配是由p o a 实现的;此外,为了更 好的对中间件资源进行控制,负载监测的任务需要与o r b 和p o a 集成在一起。 而中问件和负载管理系统紧耦合也会提高管理性能。 但是负载管理与0 r b 的紧耦合又会带来其他问题,比如给客户透明性带来 困难,客户可能不得不修改原有的应用程序。用集成到o r b 中的方法实现的负 载分配依赖于特定的o r b 实现;而使用i d l 级方法,或者是i d l 编译器,则可 能和其他的o r b 之间不兼容。 3 2 基于c o r b as e r c e 的负载均衡 基于c o r b as e r v i c e 的负载均衡,可以保证相对于客户端来说,负载均 衡功能透明集成,并且保证在其他c o r b a 兼容的o r b 架构中c o r b a 服务的 重用性。目前基于c o r b a 服务实现负载均衡有两种方式,一种是利用其他 ( c o r b a 规范中没有负载均衡服务标准定义) c 0 r b a 标准服务( 比如c 0 r b a 命名服务、c o r b a 事件服务等) 提供的机制,实现负载均衡。这实际上只是实 现了负载均衡功能,而不能算是单独的负载均衡服务:另一种是提供单独的负载 均衡服务,不必依赖其他c o r b a 服务就可以提供负载均衡功能。通过下面的分 析,我们可以得出的第二种方法实现负载均衡服务的必要性。 第7 页共4 3 页 基于c o r b a 的适应性负载均衡服务研究及其容错机制设计篁三童墨里旦些垒塑里塾塑煎 3 2 1 利用c o r b ae v e n ts e r v i c e 实现负载均衡 香港理工大学改进c o r b ae v e n ts e r v i c e ,在此基础上实现了负载均衡 和容错功能。o m g 组织制定的事件服务定义了一个在分布式系统分解和异步传 输消息的架构。整个系统包括主服务器和联合事件通道两个部分。事件服务首先 创建事件通道,发送方和接收方分别通道的两头以主动和被动方式进行消息传送 和接收。系统采用了两级联合事件服务通道架构:唯一的主事件通道和多个从事 件通道。主事件通道连接所有的发送方,负责从发送方接受消息;从事件通道与 接收方相连,负责向发送方发送消息。 数 据 源 国31 两层联合i i 件通道结构图 万客 斗自 。 客 斗自 户 。客 户 在实际应用中,客户要求接受数据的请求首先传递给主服务器,由主服务器 检查目前所有从事件通道负载,选择负载最轻的从事件通道。如果这个事件通道 的负载没有超过预先设定的阈值,主服务器就将该从事件通道的i o r 对象引用 返回给客户:如果超过阈值,主服务就会在备用服务器上创建一个新的事件通道, 客户将连接到这个新的事件通道上接收信息。通过这种方法可以实现静态负载均 衡。当然,由于分配决策是基于通道信息,而某个时候通道信息可能已经过时了 ( 比如短暂时间内出现了大量的客户请求,主服务器一直利用的是原来的通道负 载信息,可能把大量请求分配到一个通道上) ,此时需要动态负载均衡来协调。 在这个系统中,每个通道都有一个通道管理器,不仅不断采集通道当前的负载信 息,还与其他的通道管理器通讯,共享负载,通过协商达到通道间动态负载均衡。 同样基于c o r b ae v e n ts e r v i c e ,这个系统实现了容错功能,主服务器 通过“心跳”信号( h e a r t b e a ts i g n a l ) 监测事件通道是否仍在活动,并且实现了 主、从事件通道故障恢复等容错功能。 第8 页共4 3 页 基于c o r b a 的适应性负载均衡服务研究及其容错机制设计塑三童墨士兰旦塑垒盟墨墼塑塑 3 2 2 利用c o r b an a m i n gs e r v i c e 实现负载均衡 负载均衡要求一个选择机制来决定哪一个服务器或执行对象响应某个客户 请求。选择机制设计需要考虑的因素之一是将选择机制放在何处。典型地,它可 以放在客户端,或一些中央服务器上,通常在目录服务中。有一些应用服务器 使用客户端选择机制,这会带来很多问题。如果企业有大量的客户端,那么选择 标准一旦改变或者有新的服务器的加入,每个客户端都需要重新安装。这种方式 显然适应性不好,因为涉及到客户端的改变。客户端越多,问题越严重。如果 将选择算法放在中央位置,我们就会克服这些问题。选择标准的改变或者新服务 器的加入对客户端来说是透明的。 对象组织为c o r b a 系统负载均衡而定义的命名服务( c o r b an a m i n g s e r v i c e ) ,满足了用户要求集中实现负载均衡而不要将其放置在客户端的要求。 这种方式克服了将选择机制放在客户端所带来的问题,因为选择算法的改变不会 影响到客户端。 德国s i e g e n 大学利用c o r b a 命名服务在工作站网络n o w ( n e t w o r k so f w o r k s t a t i o n s ) 上实现了负载分配。这里对命名服务做了一些扩展,利用了资源 管理系统提供的系统信息,由底层节点管理器( n o d em a n a g e r ) 收集负载信息。 负载信息说明了诸如c p u 利用情况等系统信息,系统管理器( s y s t e mm a n a g e r ) 通过接口查询每个节点管理器的状态,并且确定哪台主机负载最小。 图32 基于c 0 r 队命名服务的负载均衡实现 第9 页共4 3 页 基于c o r b a 的适应性负载均衡服务研究及其容堂垫型垦生蔓三兰苎王竺旦些垒塑墨塑塑塑 命名服务根据搜集的负载信息,确定客户请求的分配策略。o m g 组织规定 了命名服务的接1 2 1 ,因此不同的o r b 架构只要遵守了o m g 规范,就能实现命 名服务之间的互操作。通过命名服务,客户能获得相关的对象引用。 通常,服务器通过b i n d 方法创建对象和名称之间的绑定,命名服务通常在 某一时刻的上下文环境中,只能将一对象绑定到一个名称上,如果一个名称已经 使用,该操作将会引发a l r e a d y b o u n d 异常。改进的命名服务允许几个对象绑定 到同一个名称,而命名服务中r e s o l v e 的调用将检查和该名称绑定的每个对象, 然后将负载最少的对象引用返回给客户。在通常情况下,客户只是在应用启动时 获得一次对象引用,这样通过命名服务实现的是静态负载均衡。而动态负载均衡 只有通过客户每次请求都调用命名服务来实现,但必须保证对命名服务的重复调 用是相互独立的。如果要对命名服务中注册在同一名称下的各个对象进行同步的 话,就需要记录对象状态来实现容错机制,可以保证当当前对象不再可用时,系 统可以自动将请求转移到其它对象上。 3 2 3 单独实现的负载均衡服务 如果是基于某种服务实现的负载均衡,当实际应用中涉及不到该服务时,负 载均衡就不能被实现,或者实现了但有多余的开销。利用c o r b a 规范本身具有 的诸多特性,就可以实现单独的负载均衡服务。o m gc o r b a 规范提供了支持 负载均衡的核心功能。特别是c o r b a 负载均衡服务可以利用请求传递机制 ( r e q u e s tf o r w a r d i n gm e c h a n i s m ) 实现负载分配。c o r b a 服务器可以利用这 种机制,透明的( t r a n s p a r e n t l y ) 、可移植的( p o r t a b l y ) 、可互操作的( i n t e r o p e r a b l y ) 实现客户请求传递。 单独的c o r b a 负载均衡服务需要解决诸多问题,比如:支持面向对象负载 均衡模型,它的负载均衡粒度是对象级上的,而不是进程或t c p i p 地址级上的; 实现客户端和服务器端应用透明性;增强系统可靠性,虽然负载均衡服务不需要 实现完全的容错功能( o m g 组织制定了一套c o r b a 容错规范) ,但负载均衡要 实现提高系统整体性能的目标,本身必须能够在复本出现故障或负载均衡器发生 故障时有适当的处理机制:支持由应用决定的负载因素( a p p l i c a t i o n d e f i n e dl o a d m e t r i c s ) 和均衡策略,比如某些应用关心的负载因素可能是c p u 负荷,而其它 的应用则可能更关心i 0 资源、通讯带宽或者内存负荷,因此需要根据不同的应 用来确定衡量负载的因素;此外,不同的应用可能要求负载均衡采用不同的策略, 比如统一分配策略,或者随机策略,或者根据动态情况随机分配等;保证c o r b a 之间的互操作性和可移植性,负载均衡服务的实现不依赖单个o r b 厂商的 第1 0 页共4 3 页 基于c o r b a 的适应性负载均衡服务研究及其容错机制设计第三生基于c o r b 幽载均霸 g i o p i i o p 扩展协议,也不依赖自己对o r b 实现规范的扩展定义。 3 3 基于c o r b a 的负载均衡和容错机制 香港理工大学基于c o r b a 事件服务实现了负载均衡功能和容错机制,因为 不是单独的负载均衡服务和容错服务,这样的架构适用于采用事件服务的分布式 应用中。 德国s i e g e n 大学利用c o r b a 命名服务实现了负载均衡功能,但是这个基 于命名服务负载均衡本身并没有容错考虑。类似基于网络的负载均衡技术,当应 ,用执行对象出现故障时,负载均衡服务可能并没有发现,仍然继续向这个对象分 配客户请求。此外,基于命名服务的负载均衡不能有效均衡动态负载,这样也就 限制了它的扩展性。 目前单独实现的负载均衡服务,比如基于分布式对象计算组织d o c g c o r b a 架构t a o 的负载均衡服务,没有考虑负载均衡服务本身容错机制。本 篇论文在t a o 适应性负载均衡服务基础上( 它是一个单独的负载均衡服务解决 方案) ,提出了单独负载均衡服务的容错设计。 3 4 小结 为提高分布式系统的扩展性和系统整体吞吐量,基于中间件负载均衡服务被 广泛采用。但多数中间件负载均衡服务仅仅针对特定的用例和环境,因此当使用 环境改变时,原有的负载均衡服务将不再适用。缺乏普遍性的负载均衡服务导致 每遇到特定应用时就需要重新开发或修改负载均衡服务。这样不仅增加了开发和 维护成本,也为负载均衡服务优化带来困难。德国s i e g e n 大学和香港理工大学 在o m gc o r b an a m i n gs e r v i c e 和c o r b ae v e n ts e r v i c e 基础上实现的 负载均衡,基于标准c o r b a 规范实现,在通用性上有所突破。但是正因为这些 负载均衡的实现基于其他c o r b a 服务,本身就限制了负载均衡功能的使用范 围,在不需要这些服务的应用中,必须利用这些服务才能实现负载均衡就显得有 些尴尬。因此我们需要具有普遍性的单独的负载均衡服务。 目前单独的负载均衡服务解决方案仍有诸多需要改进的地方,这个领域还有 很多研究课题需要进一步深入,负载均衡容错机制就是其中之一。论文以下通过 介绍t a o 适应性负载均衡服务,研究如何加入容错以增强负载均衡服务的可靠 性,并讨论如何在此基础上进一步改进,为带有状态信息的复本故障恢复提供更 多的便利。 第1 i 页燕4 3 页 基于c o r b a 的适应性负载均衡服务研究及其容错机型垦笪篁婴兰重堕堡垒茎垫塑堕! 熊坐鱼! ! 堕 第四章基于a c et a o 适应性负载均衡服 务的容错机制设计 4 1 基于c o r b a 的负载均衡基本架构 通常负载均衡系统由负载监视( l o a d m o n i t o r i n g ) 、负载分析( l o a d a n a l y z e r ) 和负载分配( l o a dd i s t r i b u t i o n ) 几个构件组成( 如图4 1 1 所示) ,这些构件可 能集中实现,也可能分布实现,或者与对象集成在一起,或者与对象分离。 图4 1 1c o r b a 负载均衡架构 负载监视 向负载分析构件报告系统计算资源( 处理器、内存、网络资源等) 利用情况 ( 取决于硬件、操作平台等运行环境) ,应用执行对象的资源利用情况( 对象请 求率,请求处理前等待的时间,请求处理时间,请求其他对象的时问,请求数据 量等) 。这些信息都是动态获得的,可以根据发起方的不同分为“推”( p u s h ) 和 “拉”( p u l l ) 两种方式。 负载分析 根据负载监视构件收集到的各种资源利用信息,判断当前负载情况,利用系 统的各种负载均衡算法,决定负载分配策略。 负载分配 依照负载分析构件分析得出的结果,决定此次会话或请求发向哪个对象执 第f 2 页共4 3 页 基于c o r b a 的适应性负载均衡服务研究及其容错机制设计 第四章适应性负载均衡的容错机制设计 行,实施负载分配。负载分配机制在系统级的负载管理( 对于应用执行对象而言) 可能有三种方式:初始分配( i n i t i a lp l a c e m e n t ) ,迁移( m i g r a t i o n ) 和复制 ( r e p l i c a t i o n ) 。初始分配指如果主机拥有充足的计算资源,可以就在该主机上 创建执行对象执行客户请求:迁移指当前的执行对象转移到另一个有充足资源的 主机上,迁移涉及状态转移问题,因此它可能是一个开销较大的负载分配机制; 复制与迁移相似,不同的是对于迁移,原对象从原主机上删除,而复制则是创建 新的执行对象复本,负载在原对象和新对象之间分配。复制对象与原对象必须时 时刻刻保持一致,拥有相同的接口和相同的返回结果。复制可能更适合于那些不 需要规定一致性( c o n s i s t e n c y ) 的对象,比如w w w - p r o x y ,对于地址的请求总 是返回地址的内容,缓存内容只会影响反应时间而不会影晌最终结果,因此没有 必要对各个w w w - p m x y 进行一致性维护。当复制也需要涉及状态迁移时,它也 是一种开销较大的负载均衡机制。图4 1 2 为一个负载均衡实例。各种不同类型 的客户端与负载均衡器通讯,获得复本组中某个执行复本的对象引用。 图4 1 2 基于c o r b a 的负载均衡实例 4 2a c et a o 负载均衡架构 a c e t a o 负载均衡服务是单独实现的集中式负载均衡服务。它的负载监视 第1 3 页共4 3 页 基于c o r b a 的适应性负载均衡服务研究及其容错机制避盐塑婴兰重查丝鱼望塑塑堕查熊垫童! ! 遨 构件与服务器应用执行对象集成在一起,负载分析构件和负载分配策略集中封装 在负载均衡器内。在系统级,负载分配机制采用了初始配置,不支持应用执行对 象的迁移和复制。复制涉及状态同步问题,实现更加复杂,开销更大,融入容错 机制会方便执行复本状态记录。 负载均衡可以从客户绑定粒度和均衡策略来进行分类。客户绑定机制可以是 g i o p l o c a t i o nf o r w a r d 消息,可以是改进的标准c o r b a 服务,或者a d h o e 私有接口,但不论是用哪种机制,客户绑定都可以根据粒度分为会话级 ( p e r - s e s s i o n ) 、请求级( p e r - r e q u e s t ) 和应需( o n - d e m a n d ) 绑定: p e r - s e s s i o n :在整个会话( 在c o r b a 上下文中,一个会话指客户连接到指 定服务器激活服务器对象操作的一段时间) 过程中,所有的客户请求都传递 到同一个复本上。 p e r - r e q u e s t :客户的每个请求都可能传递给不同的复本。 o n - d e m a n d :根据负载均衡需求,已经绑定的客户请求可以重新绑定到其他 的复本上。 均衡算法在实现负载均衡服务时是十分重要的,比如,如果每个客户请求都 引起大致相同的负载,那么就可以用简单的m u n d r o b i n 算法,如果每个请求引 起的负载是不可估的,那么就需要更多复杂的算法。所以,均衡策略又可以分成 两类,非适应性( n o n - a d a p t i v e ) 和适应性( a d a p t i v e ) : n o n a d a p t i v e :采用诸如r o u n d r o b i n 或者随机算法等简单分配算法来处理特 定的客户请求称为非适应性均衡策略。 a d a p t i v e :根据动态信息,比如后台服务器的可用闲置c p u 资源,来选定复 本执行特定的客户请求,这种均衡策略称为适应性均衡策略。 根据不同的客户绑定粒度和均衡策略,负载均衡架构分为六类: 非适应会话级( n o n a d a p t i v ep e r - s e s s i o n ) 架构 非适应请求级( n o n a d a p t i v ep e r - r e q u e s t ) 架构 非适应应需( n o n a d a p t i v eo n - d e m a n d ) 架构 适应会话级( a d a p t i v ep e r s e s s i o n ) 架构 适应请求级( a d a p t i v ep e r r e q u e s t ) 架构 适应应需( a d a p t i v eo n - d e m a n d ) 架构 第1 4 页共4 3 页 苎王! 旦些垒塑垩堕壁垒蔓塑塑星堑竺窒墨茎查堡垫型垦盐 箜婴兰_ ! 重查堡垒垦些堕堕窒型翌堕! 塑生 1 发送消息请求s e n d - r e q u e s t ( ) 2 定位传递l o g a t i o nf o r w a r d ( ) 3 发送消息请求s e n d - r e q u e s t ( ) 图42 ,1 非适应会话级负载均衡架构 1 发送消息请求s e

温馨提示

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

评论

0/150

提交评论