(计算机软件与理论专业论文)高可用性及其在虚拟操作环境系统中的应用.pdf_第1页
(计算机软件与理论专业论文)高可用性及其在虚拟操作环境系统中的应用.pdf_第2页
(计算机软件与理论专业论文)高可用性及其在虚拟操作环境系统中的应用.pdf_第3页
(计算机软件与理论专业论文)高可用性及其在虚拟操作环境系统中的应用.pdf_第4页
(计算机软件与理论专业论文)高可用性及其在虚拟操作环境系统中的应用.pdf_第5页
已阅读5页,还剩64页未读 继续免费阅读

(计算机软件与理论专业论文)高可用性及其在虚拟操作环境系统中的应用.pdf.pdf 免费下载

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

文档简介

两北- 业人学俩i 论文 摘要 传统的基于客户机朋艮务器的体系结构在企业中已经得到了广泛的应用,但 缺乏高可用性和可管理性,在应用升级和管理方面都需要用户付出巨大的代价。 随着网络的发展,多层分布式集群体系逐渐成为应用趋势,不仅具有更高性能 价格比,而且还提供了良好的可扩展性。在过去,高可用性一般就是需要系统 能够提供不间断的服务,系统能够及时的处理硬件故障就可以了。但是,山f 全球经济的不断发展,企业对系统的高可用提出了更高的要求。要求系统不但 能提供不问断的服务,还要求系统提高在资源管理方面的有效性,不断加强系 统在管理上的灵活性。如今的高可用性系统的主要目标是:不间断的服务,动 态的资源管理,方便的管理工具。 本文作者参加了一个高可用系统虚拟操作环境系统的开发工作,该系统 二l 三要用到集群技术,为用户提供了图形化的资源管理工具,实现系统的高可用 性。在开发过程中,作者对集群技术和集群管理软件的开发作了深入的研究, 在此基础上,完成了本论文。 虚拟操作环境系统的开发基于可分区服务器灵活的资源配置机制。结合集 群管理软件控制服务器,管理共享硬件资源的分区。通过虚拟操作环境系统, 服务器之问可以共享硬件资源,串根据需要重新分配或添加新的硬件,使系统 资源得到了商效的利用并使系统忌有高可扩展性:当硬件发生故障时,盘拟操 作环境系统可提供灵活、及时的系统恢复,提高了系统的可用性。 木文首先对集群技术进行了深入的研究,然后根据多层分布式集群体系的 挂i 想,在此基础上设计并实现了虚拟操作环境系统,对虚拟操作环境系统的体 系结构,功能模块,理论基础,设计和实现进行了阐述,主要研究了系统的设 计和实现。最后,对系统中存在的问题和后续工作进行了简单的总结。 虚拟操作环境系统现已投入市场,获得了用户的好评,并取得了良好的经 济效益。 关键字: 高可用性:负载均衡;分区;虚拟操作环境;高性能;集群 两北1 。业人学坝i 。论义 a b s t r a c t w i t ht h ec o m m u n i c a t i o na n dc o m p u t e rt e c h n o l o g y d e v e l o p i n gr a p i d l y ,t h e e n t e r p r i s e m o r ea n dm o r e d e p e n d o nt h e c o m p u t e rs y s t e m a n dt h en e t w o r k t e c h n o l o g y t h ec l a s s i cs y s t e ms t r u c t u r eb a s e do n c sh a sb e e na c h i e v e dw i d e l yu s e , b u ti tl a c k sh i g ha v a i l a b i l i t ya n dm a n a g e m e n t i fu s et h i ss y s t e m ,t h eu s e rw i l lp a y h u g e c o s to f a p p l i c a t i o n su p g r a d e a n d m a n a g e m e n t w i t h t h en e t w o r k s d e v e l o p m e n t ,m u l t id i s t r i b u t e dc l u s t e rc o m p u t i n g i sp r e v a i l i n g i tn o to n l yh a sm o r e t h er a t i oo ff u n c t i o na n dp r i c e ,b u ta l s oh a sg o o de x t e n s i o n i nt h ep a s t ,t h eh i g h a v a i l a b i l i t yn e e d st h es y s t e mp r o v i d et h ec o n t i n u a b l es e r v i c ea n dd i s p o s et h es y s t e m h a r d w a r ef a u l t i nt i m e a st h ew o r l d e c o n o m yd e v e l o p i n ga n dt h ec o m p e t i t i o n p i c k i n gu p ,h i g ha v a i l a b i l i t y h a st h en e w m e a n i n g i t m e a n sn o t o n l y t h e c o n t i n u a b l e s e r v i c e ,b u t a l s ot h e h i 曲r e s o u r c em a n a g e se f f i c i e n c y a n dt h e c o n v e n i e n c e ,f a c i l i t ys y s t e mm a n a g e m e n t t h eh i g ha v a i l a b i l i t ys y s t e ma i m sa t c o n t i n u a b l e s e r v i c e ;d y n a m i c r e s o u r c e s m a n a g e m e n ta n d c o n v e n i e n c e s y s t e m m a n a g e t o o l s t h ea u t h o ro ft h i sa r t i c l ea t t e n dt h ed e s i g n i n ga n d i m p l e m e n t i n gt h eh as y s t e m v i r t u a lo p e r a t i o ne n v i r o n m e n ,w h i c hb a s e do nt h ec l u s t e r ,p o l i c yb a s e d ,p r o v i d i n g g r a p h i ct o o l st oa c h i e v et h eh a i nt h ep r o c e s so fd e v e l o p m e n t ,t h ea u t h o rd e e p l y s t u d i e dt h es y s t e m ,a n dt h e nf i n i s h e dt h e p a p e l f i r s t l y , t h ep a p e re x p l a i n sh i 曲a v a i l a b l i l i t y , m e nd e s c r i b e dt h ea r c h i t e c t u r ea n d t h ef u n d a t i o nm o d u l e so f s y s t e m ,a n a l y s e st e c h n o l o g yc o n d i t i o n st or e a l i z ev i s u a l o p e r a t i n gs y s t e ms y s t e m ,a n dm a i n l ys t u d i e sd e s i g na n dr e a l i z a t i o no ft h es y s t e m i nt h er e a l i z a t i o no ft h es y s t e m ,t h ea u t h o rd e s c r i b l e dt h ed a t a b a s em o d u l e ,p o l i c y m o d u l ea n dt h e c o m p o s i t i o nc h a n g e m o d u l ei nd e t a i l a tl a s t ,a n a l y s e st h e d e f i c i e n c y o f t h es y s t e ma n dt h ew o r ki nt h ef u t u r e k e y w o r d s h i g ha v a i l a b i l i t y ;l o a db a l a n c e ;p a r t i t i o n ;v i s u a lo p e r a t i n g ;h p ;c l u s t e r l 珥北丁业人学啦! l 。论义 第一章绪论 1 1 研究目的及意义 在以往,企业用户在构建信息应用系统时只能在两种计算体系中进行选择, 一是基于主机的计算体系,大休上采用的就是我们上面描述的分区方式:另一 就是基于客户机服务器的群集型计算体系。基于主机的计算体系具有良好的系 统可伸缩性、可靠性和高性能,但它昂贵的价格迫使用户在系统建设之初就在 硬件系统上投入巨大资源,而用户花费巨额资金购买的主机系统也许包含了不 少并不需要的功能,造成资源浪费。基于客户机月艮务器的群集型计算体系允许 用户根据实际需要逐步增加硬件系统,但这种体系的系统毕竟不是真正意义上 的集群,缺乏必要的可用性和可管理性,在应用升级和管理方面都需要用户付 出巨大的代价,每增加一个服务器客户端的连接就要同时增加两端的管理负 担。 在这个信息无所不在的社会罩,计算系统和通信系统所面临的最关键问题 是如何建立并维持系统的稳定性和运行的持续性。“高可用性”这个概念主要 是用来描述主机性能的。侈0 如,一些公司的数据库内包含了公司的关键数据, 这些公司在使用数据库恢复软件的同时也使用事务处理系统来保护企业的数 据。但是,现今企业的关键性数掘变得越来越难以保护了,这是因为大量的数 据变得更加多样、更加随机且更为复杂。高可用性并不仅仅意味着避免故障, 对于一些氽业关键应用来说,足够的响应时间变得和系统萨常工作时间同样重 要了。 因此,未来对计算速度、系统可靠性和成本实效性的要求必将促使发展另 外的计算机模型柬替代上述的计算模型。随着计算机网络的出现,一个新的具 有更高性f i , 价格比的体系逐渐成为应用主流一分布式集群计算体系。当用户需 要完成任何任务时,分布式集群计算提g t t 尽可能多的计算机处理能力和数据 的透明访问能力,同时实现高性能与高可靠性的1 7 :t 标。 集群计算模式是最经济的计算模式。集群系统允许用户把普通商用硬件系 统组成机群,爿:根据需要随时在机群中增加新的硬件,提高系统的伸缩性和可 ) t 7 性,从而能够在价格相对低廉的中低端平台上享用过去只有高端系统才具备 的高i i l - 4 i t l 缩性和高可用性,既提高了系统的性能,同时也降低了成本,实现了_ 更 多的计算机= 更快速度的目标。 l p q 北i 业人学坝1 论史 人们对集群计算的兴趣r 益增加。集群计箕的主题是多种多样的,许多研 究人员正在研究有关分伟式硬件体系结构和分布式系统软件设计的各方面问题 以丌发利用潜在的集群并行性和集群可用性。 随着企业需求的不断变化,为了在市场中保持竞争力,企业对信息技术( i t ) 策略的依赖进一步加强了。当今的企业依赖信息技术( t t ) 来取得竞争优势。无 论是以何种形式:如提高效率与生产率:完善产品质量与服务,缩短产品面前 时问,统统这些,i t 已经成为企业密不可分的一部分,它已经成为高投资返还 与使企业受益的关键。那么,计算机系统和通讯系统的性能直接影响着企业征 市场上的表现。同时,客户对系统的可用性,全性能要求不断提高,以及客户 应用系统尤其是关键领域的关键性应用对可用性要求的不断增加,如何建立并 且应用真j 下高可用性的系统方案,已成为广大用户的一个迫切需求。 综上所述,我们可以看到,高可用性已经成为计算机系统和通讯系统设计 所追求的目标之一,同时也是评价个系统的质量的一个重要标准。高可用性 的问题已经成为当前网络管理系统的研究的的热点。目前,已经有很多技术的 采用来实现系统的高可用性,象集群技术,基于策略的等等。将已有的技术运 用到系统的设计中,是系统达到高可用性的研究和实践是非常必要的。 1 2 研究工作概述 本论文是按照作者承担的研究和丌发工作来安排的,论文的重点在对高 可用性的虚拟操作环境系统进行的理论研究和设计实现两方面。 1 2 、1 论文的主要工作 1 ) 对高可用系统进行了深入,全面的探讨。 2 )对支持高可用系统的负载均衡集群进行了探讨。 3 ) 对高可用系统的一个实例:虚拟操作环境系统进行了设计和实现。 1 2 2 论文的结构和章节安排 本文共分六章。 第一章绪沦 简要介绍了本文的研究背景和研究意义,以及论文内容的安排。 第一| 章高可用性的概述 两北1 。业人学彤! i 论文 研究了系统的高可用性的解决方案。 第三章虚拟操作环境系统的硬件基础及其高可用性的实现 对虚拟操作环境系统的硬件基础,系统特点,系统高可用性的实 现进行了概述。 第四章虚拟揉作环境系统的系统概述及其高可用性的实现 对支持虚拟操作环境系统的应用背景,功能特点,系统功能等进 行了详细分析。 第五章虚拟操作环境系统的设计和实现 给出了虚拟操作环境系统的总体设计,并对作者担当的总体架构, 策略管理模块和事件处理模块中的具体方法和关键技术进行了描 述。 第六章结束语 总结了论文的研究成果,并展望了后续的研究工作。 弧北1 业大学坝i 论殳 第二章高可用性系统概述 2 1 高可用系统的定义 高可用性系统的主要功能就是提供不问断的服务。有许多应用程序都必须 一年三百六十五天不停地运转,如所有的w e b 服务器、工业控制器、a t m 、远程 通讯转接器、医学与军事监测仪以及股票处理机等。对这些应用程序而言,暂 时的停机都会导致数据的丢失和灾难性的后果。 高可用性系统至少应该提供 能够提供不问断的服务。这里的不问断的含义就指的是系统的连续 运行时间,对用户来说,这个时间越长越好,如果能够达到全年的 3 6 5 天2 4 小时不问断服务是最好的。 系统不会出现硬件故障而宕机。当系统中的某一硬件出现故障时, 系统迅速的解决掉故障,保证系统能e 常的运行下去。 系统不会因为软件的升级等原因而长时间宕机。如今,我们购买的 软件,都有免费升级,具有发行p a t c h 的功能,用户需要定期的对 软件进行更新,但是不希望该过程导致系统长时间的宕机。 系统要提供灵活的资源控制和管理功能。由于任何一个系统的资源 都是有限的,用户希望在现有的资源基础上,实现资源的有效利用, 以适应系统不断扩大的业务需求。 系统要提供给用户可方便管理的工具。如今,随着图形化界面和 w i n d o w 系统的出现,大部分软件的管理都是非常简单清晰的, 用户不希望系统的管理工具是复杂,难于掌握的。 综上所述,我们可以看出,现在我们所描述的高可用性系统通常指的是那 些能够避免软件和硬件的故障带来的损失。可持续服务时间长的,具有灵 活的资源管理功能和方便简单的管理工具的系统。 两北1 业人学坝l 。论文 2 2 可用性的定义 汁算机系统的可用性( a v a i1 a b ili l y ) 是通过系统的可靠性( r e li a b i li t y ) 和可维护性( m a in t a i n a b i l i t y ) 来度量的。工程上通常用平均无故障时阳j ( m t t f ) 来度量系统的可靠性,用平均维修时间( m t t r ) 来度量系统的可维护性。于是 可用性被定义为: m t t f ( m t t f + m t t r ) * 1 0 0 业界根据可用性把计算机系统分为如下儿类: 可用比例年停* j l h c f o j可用性分类 ( p e r c e n tv a i l a b i l i t y )( d o w n t i m e y e a r ) ,a v a l i a b i l i t y ) 常规系统 9 9 53 7 天 ( c o n v e n t i o n ,a 1 ) 9 9 9 8 8 小时 可用系统( a v a i l a b l e ) 高可用系统( h i g h l y 9 99 9 5 2 6 分钟 a v a i l a b l e ) 9 9 9 9 95 3 分钟 f a u l tr e s i l i e n t 9 9 9 9 9 93 2 秒f a u l tt o l e r a n t 表1 系统可用性的分类 对于关键业务,停机通常是灾难性的。因为停机带来的损失是巨大的。下面 的统计数字列举了不同类型企业应用系统停机所带来的损失。 每分钟损失( 美 应用系统 元) 呼叫中一g , ( c a l lc e n t e r ) 2 7 0 0 0 企业资源汁划( e r p ) 系统 1 3 0 0 0 供应链管理( s c m ) 系统 1 1 0 0 0 电子商务( e c o m m e r c e ) 系统 1 0 0 0 0 客户服务( c u s t o m e r s e r v i c ec e n t e r ) 系统 2 7 0 0 0 表2 停机给企业带来的损失 随着企业越来越依赖于信息技术,由于系统停机而带来的损失也越拉越大。 2 3 高可用集群 高可用集群就是采用集群技术来实现计算机系统的高可用性。高可用集群 通常有两种工作方式: 龋北l :救入学坝 :论鱼= 容错系统:通卷楚主从黢务器方式。从瑕务器检测主服务器的状态,当薹 服务工作正常时,从服务器并不提供服务。但是旦主服务器失效,从服 务器戟玎始代蛰主服务器向客户提供服务。从服务器是遥过对主服务器l i 停的发消息来知道主服务器是否坯有“心跳”( h e a r t b e a t ) 。如聚一定的时 阿内得不到回应,则从服务器可以扁动接替主服务器的工作。 负载均筏系统:集群中所有的节点都处于涌动状态,它们分摊系统的= 】u :作 受载。般w e b 疆务器集群、数据库集群和应潮服务器集群都藕于这种类 型。 一组服务器通过高速的褥域网或者蟪理分布的广域两穗互连接,在它 们的前端有一个负载调度器( l o a db a l a n c e r ) 。负载调度器能无缝地将网 络谤求璇度爨冀实羧务器羔,献蕊镬褥激务器集群的缭稳对客户是透明游, 客户访涧集群系统提供的网络服务就像访问一台窟性能、高可用的服务器 一样;客户程痃苓受鼹务器集黎豹影鸥不震箨程何修改。系统酶 率缩瞧遥 过在服务机群中透明地加入和删除个节点来达到,通过检测节点或服务 遴程敖蹲和正确地重置系统达到离可用燃。 6 肼北丁业人学侦| 论史 h i g ha v a i l a b i l i t yo fl i n u xv i r t u a ls e r v e r 图 负载均衡系统和容错系统的结合 负载调度器( 1 0 a db a l a n c e r ) ,它是整个集群对外面的f i f 端机,负 责将客户的请求发送到一组服务器上执行,而客户认为服务是来f j 个i p 地址( 我们可称之为虚拟i p 地址) 上的。 服务器池( s e r v e rp o o i ) ,是一组真正执行客户请求的服务器,执 行的服务有w e b 、m a i l 、f 1 、p 和d n s 等。 阳北t 业人学坝l 论文 ,享存储( s h a r e ds t o r a g e ) ,它为服务器池提供一个共享的存储 区,这样很容易使得服务器池拥有相同的内容,提供相同的服务。 调度器是服务器集群系统的唯一入口点( s i n g ee n t r yp o i n t ) ,它 可以采用i p 负载均衡技术、基于内容请求分发技术或者两者相结合。在 i p 负载均衡技术中,需要服务器池捌育相同的内容提供相同的服务。当客 户请求到达时,调度器只根据服务器负载情况和设定的调度算法从服务器 池中选m 一个服务器,将该请求转发到选出的服务器,并记录这个调度: 当这个请求的其他报文到达,也会被转发到前面选出的服务器。在基于内 容请求分发技术中,服务器可以提供不同的服务,当客户请求到达时,调 度器可根掘请求的内容选择服务器执行请求。 服务器池的结点数目是可变的。当整个系统收到的负载超过目前所有 结点的处理能力时,可以在服务器池中增加服务器来满足不断增长的请求 负载。对大多数网络服务来、既,请求白】不存在很强的相关性,请求可以在 不同的结点上并行执行,所以整个系统的性能基本上可以随着服务器池的 结点数目增如而线性增长。 共享存储通常是数据库、网络文件系统或者分布式文件系统( 现在我 实习的o d y s y s 公司丌发了利,新的集群文件系统u n i f s ) 。服务器结点需 要动念更新的数掘一般存储在数据库系统中,同时数据库会保证并发访问 时数据的致性。静态的数据可以存储在网络文件系统( 如n f s c i f s ) 中, 但网络文件系统的伸缩能力有限,一般来说,n f s c i f s 服务器只能支持 3 、6 个繁忙的服务器结点。对于规模较大的集群系统,可以考虑用分前j 式 文件系统,如& f s 、g f s 、c o d a 和i n t e r m e z z o 等。分布式文件系统可为各 服务器提供共享的存储区,它们访问分布式文件系统就像访问本地文件系 统一样,同时分布式文件系统可提供良好的伸缩性和可用性。此外,当1 i 同服务器上的应用程序同时读写访问分稚式文件系统上同一资源时,应片l 程序的访问冲突需要消解爿能使得资源处于一致状态。这需要个分饰式 锁管理器( d i s t r i b u t e dl o c km a n a g e r ) ,它可能是分布式文件系统内部 提供的,也可能是外部的。丌发者在写应用程序时,可以使用分布式锁管 理器来保迁应用程序在不瞄结点上并发访问的一致性。 两北1 一业人学坝l 论义 2 4 高可用集群解决的主要问题 高可用性解决的问题,也正是虚拟操作环境要解决的基本问题。系统宕机 之后的恢复,系统的负载平衡以及灵活的资源管理都是我们要追求的。 2 41 系统恢复( s y s t e mr e c o v e r y ) 这也是容错系统所提供的功能。提供不间断的系统服务是高可用性系统 的关键所在,但是我们又不保证也无法预测系统中的软硬件资源不出现故障, 这样一束,在系统的软硬件发上故障时,如何迅速的进行系统恢复以保证系统 的一常运行就是高可用性系统要解决的首要问题。 一般的,我们采取部件的冗余设置来解决这个问题,也就是说,为硬件 设置备份,再出现故障时,备份的硬件可以进行替代。容错系统就是采用这科, 方法来解决这个问题的。对主服务器设置一台备用的服务器,当主服务器发生 故障的时候,从服务器接替主服务器的工作继续提供服务。设置的从服务器越 多,系统的可用性越高。 2 4 2 负载均衡( l o a db s ia n c e ) 在很多系统中,经常由于系统内的负荷分配不均衡而导致了某些节点的负 担过重,从而导致了系统的性能下降。例如,某系统向用户提供了很多项服务, 其中一项服务在某一时问内的业务量非常大,而其他的业务量很小,这时,如 果系统没有进采取一些措施,会导致处理该业务的资源耗尽,而使用户的请求 不能到响应的情况,甚至会引起系统的宕机。 比较热门的站点会吸引前所未有的访问流量,例如根据y a h o o 的新闻发和, y a h o o 已经每天发送6 2 5 亿页面。一些网络服务也收到巨额的流量,如a m e r ic a n o n lin e 的w e bc a c h e 系统每天处理5 0 2 亿个用户访问w e b 的请求,每个请求 的平均响应长度为5 5 k b y t e s 。与此同时,很多网络服务因为访问次数爆炸式 地增长而不堪重负,不能及时处理用户的请求,导致用户进行长时间的等待, 人大降低了服务质量。如何建立可伸缩的网络服务来满足不断增长的负载需求 已成为迫在眉睫的问题。 系统的各个核心部分随着业务量的提高、访问量和数据流量的快速增长= ,j 处i 型能力和计算强度也相应增大,这使得单一设备根本无法承担。在此情况下, 虫果扔掉现有设备去做大量的硬件升级,这样将造成现有资源的浪费,而且如 棚北1 业人等:坝i 。论殳 果再面临下一次业务量的提升,这又将导致再一次硬件升级的高额成本投入, 甚至性能再卓越的设备也不能满足当前业务量的需求。于是,负载均衡机制应 运而,l 。 负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展 网络设备和服务器的带宽、增加吞吐量、 j n 强网络数据处理能力、提高网络的 灵活性和可用性。 负载均衡有两方面的含义:首先,大量的并发访问或数据流量分担到多台 节点设备上分别处理,减少用户等待响应的时问;其次,单个重负载的运算分 担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返 吲给用户,系统处理能力得到大幅度提高。 为了使网络系统达到高可用性的要求,负载均衡时必不可少的解决问题之 2 4 3 动态的资源管理( r m s ) 高可用系统的一个重要特征是进行资源的灵活管理,以实现系统中的有限 资源的有效利用。由于系统在运行过程中,资源的使用情况是在不断变化的, 也是不可预测的,如果要提高资源的使用效率,系统必须实现资源的动态化管 理。系统要不断的对系统的资源分配状况和资源利用情况进行检测,并随时根 掘检测的结果重新调整系统的资源分配,以保证系统的当前运行部分都拥有足 够的资源,也保证了大部分资源时处于被使用状态,从而避免了空闲的部分占 用着资源,繁忙部分申请不到资源的状念的出现。 2 ,5 负载均衡的调度算法 研究负载均衡调度的算法,对虚拟操作环境中负载均衡器所起的作用进行 优化,实现系统的高效率有很大的作用。采用不同的负载均衡的算法,差别很 大。具体采用那种负载均衡的算法,要根据系统的配置决定。为了是虚拟操作 环境有很高的效率,有必要对各种主要的负载均衡的算法进行比较。 2 5 ,1 轮叫调度 轮叫调度( r o u n dr o b i ns c h e d u l in g ) 算法就是以轮叫的方式依次将请求 啕度不同的服务器,即每次调度执行i = ( i + 1 ) m o dn ,并选出第i 台服务 册北丁业人学坝f + 论史 器。算法的优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种 无状态凋度。 在系统实现时,引入了一个额外条件,当服务器的权值为零时,表示该服 务器不可用而不被调度。这样做的目的是将服务器切出服务( 如屏蔽服务器敞 障和系统维护) ,同时与其他加权算法保持一致。所以,算法要作相应的改动, 它的算法流程如下: 轮叫调度算法假设所有服务器处理性能均相同,不管服务器的当前连接数 和响应速度。该算法相对简单,不适用于服务器组中处理性能不一的情况,而 且当请求服务时阃变化比较大时,轮叫调度算法容易导致服务器间的负载不平 衡。 2 5 2 加权轮叫调度 加权轮叫调度( w e i g h t e dr o u n dr o b i ns c h e d u l i n g ) 算法可以解决服务器 吣肚能不一的情况,它用相应的权值表示服务器的处理性能,服务器的缺省权 值为1 。假设服务器a 的权值为l ,b 的权值为2 ,则表示服务器b 的处理性能 是a 的两倍。加权轮叫调度算法是按权值的高低和轮叫方式分配请求到各服务 器。权值高的服务器先收到的连接,权值高的服务器比权值低的服务器处理更 多的连接,相同权值的服务器处理相同数目的连接数。加权轮叫调度算法流程 如下: 例如,有三个服务器a 、b 和c 分别有权值4 、3 和2 ,则在一个调度周期 内调度序列为a a b a b c a b c 。加权轮叫调度算法还是比较简单和高效。当请求的 服务时间变化很大,单独的加权轮叫调度算法依然会导致服务器问的负载不平 衡。 从上面的算法流程中,我们可以看出当服务器的权值为零时,陔服务器不 被被调度:当所有服务器的权值为零则没有任何服务器可用。算法返回n u l l , 所有的新连接都会被丢掉。加权轮叫调度也无需记录当前所有连接的状态,所 以它也是一种无状态凋度。 2 5 3 最小连接调度 最小连接澜度( l e a s t c o n n e c t i o ns c h e d u li n g ) 算法是把新的连接请求分 配到当 狮连接数最小的服务器。最小连接调度是一种动态调度算法,它通过服 两北丁业人学坝i 论史 务器! 刍前所活跃的连接数柬估计服务器的负载情况。调度器需要记录各个服务 器已建立连接的数目,当一个请求被调度到某台服务器,其连接数加l ;当连 接中止或超时,其连接数减一。 在系统实现时,我们也引入当服务器的权值为零时,表示该服务器不可用 而不被调度。 当各个服务器有相同的处理性能时,最小连接调度算法能把负载变化大的 请求分布平滑到各个服务器上,所有处理时问比较长的请求不可能被发送到同 台服务器上。但是,当各个服务器的处理能力不同时,该算法并不理想,因 为t c p 连接处理请求后会进入t i m ew a i t 状态,t c p 的t m ew a i t 一般为2 分 钟,此时连接还占用服务器的资源,所以会出现这样情形,性能高的服务器已 处理所收到的连接,连接处于t i m e w a i t 状念,而性能低的服务器已经忙于处 理所收到的连接,还不断地收到新的连接请求。 2 54 加权最小连接调度 加权最小连接调度( w e i g h t e dl e a s t c o n n e c t i o ns c h e d u l i n g ) 算法是最 小连接调度的超集,各个服务器用相应的权值表示其处理性能。服务器的缺省 权值为l ,系统管理员可以动念地殴置服务器的权值。加权最4 、连接调度在调 度新连接时尽可能使服务器的已建立连接数和其权值成比例。 2 5 5 基于局部性的最少链接调度 培于局部性的最少链接调度( l o c a l i t y b a s e d l e a s tc o n n e c t i o r s s c h e d u n g 。以下简称为l b l c ) 算法是针对请求报文的目标i p 地址的负载均 衡调度,目前主要用于c a c h e 集群系统,因为在c a c h e 集群中客户请求报文的 目标i p 地址是变化的。这里假设任何后端服务器都可以处理任一请求,算法的 设计目标是在服务器的负载基本平衡情况下,将相同目标t p 地址的请求调度到 同一台服务器,来提高各台服务器的访问局部性和主存c a c h e 命中率,从丽整 个集群系统的处理能力。 l b l c 凋度算法先根据请求的目标i p 地址找出该目标i p 地址最近使用的服 务器,若该服务器是可用的且没有超载,将请求发送到该服务器:若服务器不 存在,或者该服务器超载且有服务器处于其一半的工作负载,则用“最少链接” 的原则选出个可用的服务器,将请求发送到该服务器。 2 5 6 带复制的基于局部性最少链接调度 带复制的基于局部性最少链接调度( l o c a i t y b a s e dl e a s tc o n n e c t i o i l s w jt hr e p li c a t i 0 1 gs c h e d u li n g ,以下简称为l b l c r ) 算法也是针对目标i p 地 址的负载均衡,目前主要用于c a c h e 集群系统。它与l b l c 算法的不同之处是它 要维护从一个目标i p 地址到一组服务器的映射,而l b l c 算法维护从一个目标 i p 地址到一台服务器的映射。 l b l c r 算法先根据请求的目标i p 地址找出该目标i p 地址对应的服务器组; 按“最小连接”原则从该服务器组中选出一台服务器,若服务器没有超载,将 请求发送到该服务器:若服务器超载t 则按“最小连接”原则从整个集群中选 出台服务器,将该服务器加入到服务器组中,将请求发送到该服务器。同时, 当咳服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除,以 降低复制的程度。 2 5 7 目标地址散列调度 目标地址散列调度( d e s t i n a t i o n 1 a s h i n gs c h e d u l i n g ) 算法也是针对目 标i p 地址的负载均衡,但它是一种静态映射算法,通过一个散列( h a s h ) 函数 将一个目标i p 地址映射到一台服务器。 目标地址散列调度算法先根掘请求的目标i p 地址,作为散列键( h a s hk e y ) 从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请 求发送到该服务器,否则返回空。 2 5 8 源地址散列调度 源地址散列调度( s o u r c eh a s h i n gs c h e d u l i n g ) 算法正好与目标地址散列 调度算法相反,它根据请求的源i p 地址,作为散列键( h a s hk e y ) 从静态分配 的敞列表找出对应的服务器,若浚服务器是可用的且未超载,将请求发送到咳 服务器,否则返回空。它采用的散列函数与目标地址散列调度算法的相同。它 的算法流程与目标地址散列调度算法的基本相似,除了将请求的目标i p 地址换 成请求的源i p 地t a l :。 化实际应用中,源地址散列调度和目标地址散列凋度可以结合使用在防火 墙集群叶l ,它们可以保证整个系统的唯一f j _ 入口。 眄北t 业人学坝i 论文 2 5 9 动态反馈负载均衡算法 动态反馈负载均衡算法考虑服务器的实时负载和响应情况,不断调整服务 器i h j 处理请求的比例,来避免有些服务器超载时依然收到大量请求,从而提高 整个系统的吞吐率。图l 显示了该算法的工作环境,在负载调度器上运行 m o n i t o rd a e m o n 进程,m o n i t o rd a e m o n 来监视和收集各个服务器的负载信息。 m o n i t o td a e m o n 可根据多个负载信息算出一个综合负载值。m o n i t o rd a e m o n 将 各个服务器的综合负载值和当前权值算出一组新的权值。 l i n u x d i r e c t o i - 幽 动态反馈负载均衡算法的i :作环境 在调度器的内核中使用加权轮叫调度( 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 ) 算法来调度新的请求连接:在负载调度器的用户空间中运行m o n i t 。rd a e 。o n 。 m o n i 。o r d a e m o n 定时地监视和收集各个服务器的负载信息,根据多个负载信息 算出一个综合负载值。m o n i t 。rd a e m o n 将各个服务器的综合负载值和当前权值 算出一组新的权值。当综合负载值表示服务器比较忙时,新算出的权值会比其 北t 业人学坝i 。论奠 当瀚权值要小,这样新分配到该服务器的请求数就会少一些。当综合负载值表 求j | 陵务器处j 。低利用率时,新算出的权值会比其当前权值要大,来增加新分配 到浚服务器的请求数。若新权值和当f j 权值的差值大于设定的阀值,m o n i t o t d a e m o n 将该服务器的权值设置到内核的负载调度中。过了一定的时问间隔( 如 2 秒钟) ,m o n i t o rd a e m o n 再查询各个服务器的情况,并相应调整服务器的权 值:这样周期性地进行。可以说,这是一个负反馈机制,使得服务器保持较好 的利用率。 在加权轮叫调度算法中,当服务器的权值为零,已建立的连接会继续得到 该服务器的服务,而新的连接不会分配到该服务器。系统管理员可以将一台服 务器的权值设置为零,使得该服务器安静下来,当已有的连接都结束后,他可 以将该服务器切出,对其进行维护。维护工作对系统都是不可少的,比如硬件 升缴和软件更新等,零权值使得服务器安静的功能很主要。所以,在动态反馈 负载均衔机制中我们要保证该功能,当服务器的权值为零时,我们不对服务器 的权值进行调整。 2 5 9 1 如何计算综合负载 在计算综合负载时,我们主要使用两大类负载信息:输入指标和服务器( 指 的是各个真实服务器) 指标。输入指标是在调度器上收集到的,而服务器指标是 在服务器上的各种负载信息。我们用综合负载来反映服务器当前的比较确切负 载情况,对于不同的应用,会有不同的负载情况,这里我们引入各个负载信息 的系数,来表示各个负载信息在综合负载中轻重。系统管理员根据不同应用的 需求,调整各个负载信息的系数。另外,系统管理员设置收集负载信息的时间 间隔。 输入指标主要是在单位时间内服务器收到新连接数与平均连接数的比例, 它是在调度器上收集到的,所以这个指标是对服务器负载情况的个估计值。 在蜗度器上有各个服务器收到连接数的计数器,对于服务器s 1 ,可以得到分5 6 1 l 香:时删t 1 和t 2 时的计数器值c i l 和c i 2 ,计算出在时间间隔t 2 一t 1 内服务器 s i 收到新连接数n i = c i 2 一c i l 。这样,得到一组服务器在时间间隔t 2 一t i 内 服务器s i 收到新连接数 n i ) ,服务器s i 的输入指标i n p u t i 为其新连接数与n 台服务器收到平均连接数的比值,其公式为 p q 此l i :i k 人学坝i j 论文 御潞= o 从,月 7 1 t j 服务器指标主要记录服务器各种负载信息,如服务器当前c p u 负载l o a d t 、 服务器当前磁盘使用情况d i 、当前内存利用情况m i 和当前进程数目p i 。有两 种方法可以获得这些信息;一是在所有的服务器上运行着s n m p ( s i m p l en e t w o r k m a n a g e m e n tp r o t o c 0 1 ) 服务进程,而在调度器上的m o n i t o rd a e m o n 通过s n m p 向各个服务器查询获得这些信息;二是在各个真实的服务器上实现和运行收集 信息的a g e n t ,由a g e n t 定时地向m o n i t o rd a e m o n 报告负载信息。我们丌发的 虚拟操作环境系统采用了第二种方式。若服务器在设定的时间间隔内没有响应, m o n i t o rd a e m o n 认为服务器是不可达的,将服务器在调度器中的权值设置为零 不会有新的连接再被分配到该服务器:若在下一次服务器有响应,再对服务器 的权值进行调整。再对这些数据进行处理,使其落在 0 ,。) 的区间内,l 表示 负载正好,大于l 表示服务器超载,小于l 表示服务器处于低负载状态。 另个重要的服务器指标是服务器所提供服务的响应时问,它能比较好地 反映服务器上请求等待队列的长度和请求的处理时间。调度器上的m o n i t o t d a e m o n 作为客户访问服务器所提供的服务,测得其响应时间。例如,测试从w e b 服务器取一个h t m l 页面的响应延时,m o n i t o rd a e m o n 只要发送一个“g e t ” 请求到每个缀务器,然后记录响应时阊。若服务器在设定的时间阍隔内没有l 响 应,m o n i t o td a e m o n 认为服务器是不可达的,将服务器在调度器中的权值设置 为零。同样,我们对响应时间进行如上调整。得到r e s p o n s e i 。 这罩我们引入一组可以动念调整的系数r i 来表示各个负载参数的重要程 度,其中r i = l 。综合负载可以通过以下公式计算出t a g g r g g a t e l o a d i 茸r l 术i n p u t + r 2 4 l o a d i + r 3 掌d i s k i + r 毒m e m 。r y l + r s 丰p r 0 c e s + r 6 年r e s p o n s e t 例如,在w e b 服务器集群中,我们采用以下系数 0 1 ,0 3 ,0 1 ,0 1 ,0 】, 0 3 ,认为服务器的c p u 负载和请求响应时问较其他参数重要一些。若当前的 系数r i 不能很好地反映应用的负载,系统管理员可以对系数不断地修j 下,直到 找到贴近当鲍应用的一组系数。 另外,关于查询i 卜j 问间隔的设簧,虽然很短的间隔可以更确切地反映各个 服务器的负载,但是很频繁地查询( 如1 秒钟几次) 会给调度器和服务器带束 定的负载,如频繁执行的m o n i t o rd a e m o n 在调度器会有一定的开销,同样频 繁地俞询服务器指初i 会服务器带来定的丌销。所以,这早要有个折衷 两北1 :业人学坝i 论立 ( t r a d e o i f ) 一般建议将时叫问隔设霄在5 到2 0 秒之间。 2 5 9 2 权值的计算 当服务器投入集群系统中使用时,系统管理员对服务器都设定个初始权 值d e f a u l tw e i g h t i ,在内核的调度中也先使用这个权值。然后,随着服务器 负载的变化,对权值进行调整。为了避免权值变成一个很大的值,我们对权值 的范围作一个限制 d e f a u i t - w e i g h t i ,s c a l e 女d e f a u l t w e l g i n 、i ,s c a l e 是呵 以调整的,它的缺省值为1 0 。 m o n i t o td a e m o n 周期性地运行,若d e f a u l tw e i g h t i 不为零,则查询浚服 务器的各负载参数,并计算出综合负载值a g g r e g a t el o a d i 。我们引入以下权 值计算公式,根据服务器的综合负载值调整其权值。 - 卜舻徊弼丽丽呵訾删黝疆一l o a d

温馨提示

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

评论

0/150

提交评论