




已阅读5页,还剩51页未读, 继续免费阅读
(计算机软件与理论专业论文)web集群服务器负载均衡与容错技术的研究与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 本文研究主要集中在如何减少在w 曲集群服务器系统中请求响应的时间,如 何提高系统容错性能。 首先,本文提出一种c l 0 a db a l 柚c i n g 算法。该算法的机制是根据客户端的请 求对服务器的影响程度进行分类,并设定相应的权值,同时结合服务器的负载状 态,将该次请求分配到负载最轻的服务器。实验结果表明本文提出的算法能够有 效地均衡w 曲集群服务器的负载,尤其在异构集群服务器和动态网页上方面,能 够取得很大的性能改进,且优于一些传统的负载均衡算法。 其次,本文设计并实现一种具有良好容错性能的故障检测架构。该架构由自检 模块、心跳模块、监控模块、故障处理模块和协同模块组成。在本系统中故障检 测的主要目的是检测集群服务器系统是否正常工作。通常服务器中任何信息的丢 失和破坏、服务器的异常停机都会对网络的服务能力产生重大影响,因此要求服 务器有连续运行的能力。而本文设计的容错检测架构能够有效地增强系统的高可 用性。 关键词:集群负载均衡故障处理心跳检测 a b s t r a c t o 毗t h e s i sf b c u s o nh o wt or e d u c cr e s p ( m 辩d e l a yo ft h er e q u 船t s 彻di m p r 0 v c t h ef 扎h t o l 锄c c 曲i l i 哆 f i r s t l y ,ac - l d a db a l 卸c i n ga l g o 删mi sp m p o s e di nt h i st h e s i s n em c c h 缸i s mo f t l l i sa l g o r i t h mi st h a tac o r r e s p o n d i n gr e q u e s ti sa l l o c a t e dt ot h es e r v e rw i t ht h e1 0 w e s t 1 0 a da c c d r d i n gt 0t h ed e g f c eo fe f f e c t so nt h es e n ,c r 柚dac 0 衄b i n a t i o no f1 0 a ds t a t co f n r c r e x p c r i m 如t a lr c s u l t ss u g g e s tt h a tt l l i sa l g o f i t h mc 姐b a l 卸c et h e1 0 a do fw 曲 d 鸺t e r 咖娼e 丘e c t i v e l y s p e c i a l l y ab e t l c r 聪s u l t s 啪b em a d ci nt h o s e 勰p e c bo f h e t e m g c n e “yd u s t e fs e n ,e 璐姐dd y n 皿i cw e bp a g c ,a n do l l ra 1 9 0 r i t h mo u t p c 响m s s 咖e 仃a d i t i o n a ll o a db a i 柚c i n g 鼯 s e c o n d l y 如a f c h i 咖ew i t hag o o df a u h - t o l e 瑚c ed c t c c t i i sd e s i 印c d 瓶d d e v e l 叩c dj no u rn 圮s i s 1 1 l i s 缸c h i t e 咖f h l l si n t o m d e t e c t i o n ,h c a n d c t c l c i i o n , m 砌t o r d c t e d i o n ,c x c e p t i - p r o c c s s i n g 趾d o p c r a t i o nm o d u l e ht h j ss y s t e m ,t h e t a r g c to ff a u n d c 岫:【i i st om o i l i t o rt h cs t a t eo f 也ed u s t 盯r v c r g 锄e r a l l y ,觚y1 0 鼹 粕dd e s t m y0 ft h ci n f o 咖a t i 衄s t o f e di ns c n r 盯,卸dc x c c p 哟n a l l yh a l th v ch e a v y e 任e c t s 伽t h cs e r v i o ca b i l i t yo f 辩r v e r 皿e f o r et h ec o n t i n u so p e f a t i o fs c r v e 塔i s r c q u 砌a n dt h e 伽l t t o l e r a n c cd e t e c t i 衄a 删t c c t u 璋d e v e l o p c dc a n 伽h n c ct h eh i g h a v a i l a b i l i t yo ft h es y s t 锄e 疵州v e l y k e yw o r d :c i u s t e rl db a l a n d g f a u nd e t e c 6 蛐h e a r td e k c t i 蚰 创新性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或 其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做 的任何贡献均已在论文中做了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名:歪匆翌丞窒 关于论文使用授权的说明 日期:,z 召 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究生 在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕业 离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。学 校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部 或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。( 保密的论文在 解密后遵守此规定) 本学位论文属于保密,在一年解密后适用本授权书。 本人签名: 导师签名: 日期: 丝! ! :! :望 日期:垫z :2 :垒 第一章绪论 1 第一章绪论 1 1 研究目的与意义 随着w 曲服务i l j 的飞速发展,给网络带宽和w 曲服务带来极大的挑战。许多 热门站点如呦0 0 ,每天都会接受到数以亿计的巨额访问量。站点的w 曲服务因 为访问量的爆炸式增加而使服务不堪重负,以致不能及时处理用户的请求,让用 户处于长时间的等待,从而导致了服务质量的大大降低。因此,w 曲服务的性能 问题日益显得重要。按性能指标参数【帅】,w 曲服务通常可以分为以下几种: 可扩展的w 曲服务 热门的站点吸引前所未有的访问量,很多网络因为访问次数爆炸式地增长而不 堪重负,不能及时处理用户的请求,导致用户进行长时间的等待,大大降低了服 务质量。如何建立可扩展的w 曲服务来满足不断增长的负载需求已成为迫在眉睫 的问题。 高可用的w 曲服务 大部分网站提供每星期7 天、每天2 4 小时的服务,对电子商务等网站尤为突 出,任何服务中断和关键性的数据丢失都会造成直接的商业损失。所以,这对网 络服务的可用性提出了越来越高的要求。 高性能的w 曲服务 现在w 曲服务中越来越多地使用动态网页等,这对服务器的性能有较高要求, 而未来的网络服务会提供更丰富的内容、更好的交互性、更高的安全性等。这必 然要求服务器具有更强的c p u 和哟处理能力。 综上所述,w 西服务的高性能、高可用问题已经成为w 曲服务领域研究的热 点。w 曲集群【2 】服务器系统是解决当前w 曲服务性能问题的有效途径之一,它将 用户的请求按照负载均衡算法分发到集群中的某台服务器上去,并行处理用户的 请求,从而提高系统运行效率,提高整个系统的性能。 w 曲集群服务器虽然有多台w 曲服务器组成,但对其外部而言,整个集群就 如同一台高性能的w 曲服务器。异构集群服务器比同构集群服务器更有实际意义, 但实现起来困难要大得多。为实现一个高效的异构w 曲集群服务器系统,必须解 决许多问题,如:请求分配、负载均衡、容错技术等。 对于异构w c b 集群服务器,各台w e b 服务器性能不同,各种负载均衡算法将 导致系统中各台w c b 服务器对外表现的不同,同时,也实际上决定了w 曲集群服 务器性能的高低。当w e b 集群服务器中各台w 曲服务器的负载处于均衡状态时, 2 w e b 集群服务器负载均衡与容错技术的研究与应用 请求分配的效率最高。因此,可以通过负载均衡算法来控制负载分布,使w 曲集 群服务器的负载分配尽量达到均衡,来提高请求分配的效率。 计算机系统的可用性通常在两种情况下会受到影响:一种是系统宕机、错误操 作和管理引起的故障失败,另一种是在系统维护和升级时,因安装新的硬件或软 件而引起的系统正常关机。有效的避免上述情况对系统的影响,保证系统能为客 户提供全天候不间断的可靠服务,正是高可用系统要解决的主要问题。 1 2 国内外研究现状 1 2 1 负载均衡当前研究现状 负载在不同的环境下概念是不同的,一个环境下的负载均衡算法可能并不适合 另一个环境。对于异构集群服务器,各台服务器性能不同,各种负载分布模式将 导致系统中各台服务器对外表现的不同。 国外许多厂商推出了专用于集群服务器负载的负载均衡器,这些厂商包 括:h y d mw 曲l o a d m 壮a g e r 、c i s c 0 、h l c l 、以及r a d w a m 等l ”。 最初的可扩展服务器,s c a l a b l cw 曲a u s t c rs e r v e r 就是最早基于轮转域名系统 r r d n s 实现负载均衡的原型系统1 4 3 】。 c i s 的l j d c a ld i 砌加使用了最小连接算法和快速响应算法,把请求分配到实 测最快的服务器;英特尔网擎系列中的7 1 9 0 多址负载均衡器可用于远程负载均衡 服务,采用快速响应算法:m m 的n e 咐o r kd i s p a t c h c r 选择当前连接数量最少的服 务器作为请求分配的目标。 在国内,研究w 曲集群服务器负载均衡的有清华大学、浙江大学、国防科学 技术大学等,且清华大学实现了可扩展并行w 曲服务器集群系统i w 曲 a 鹏t 4 q 。 目前,人们己经提出了许多用于实现w 曲集群服务器系统的负载均衡算法。 这些算法主要包括:轮转算法、加权轮转算法、最少连接算法等。但这些算法大 多属于静态算法,算法没有优化策略,因此效率比较低,稳定性也较差。现有的 算法不适合构造异构w 曲集群服务器。 1 2 2 容错技术当前研究现状 所谓系统的高可用性1 3 】( m 曲a v a i l a b l e ) ,是指在某一台主机上请求任务因主机 设备故障而无法继续响应时,在其它正常的主机上能够继续响应该项作业。 第一章绪论 3 当在系统上运行的程序产生不正确的结果时,就表明已经发生了故障。故障是 高可用集群系统尽量防止的。如果没有及时发现,故障就可能使系统产生错误。 没有纠正的错误会从一个部件扩散的另一个部件,而产生新的错误,最终系统失 效。 采用什么形式的软硬件体系结构来构建具有容错功能的高可用计算机系统, 怎样快速有效从错误中恢复一个系统的正常运行等,引起研究者们巨大的兴趣。 目前,随着客户对系统容错技术的强劲需求,各大r r 公司都推出了自己的商 用高可用性集群系统。如m i 啪s o f i 的m s c s l 4 7 l ,r a s 公司的v c s 【鹳】等,国 内的如中科院计算所也做了研究。 1 3 论文研究内容 本文在对已有成果的深入分析研究基础上,理清了w 曲集群服务器关键技术 的发展脉络,对负载均衡算法及容错技术作了详细的分析,提出了一种新的基于 内容的负载均衡算法,并给出性能比较;然后,提出一种具有高可用性及可扩展 的容错架构。具体本论文作了如下方面的研究: ( 1 ) w 曲集群服务器系统:分析了w 曲集群服务器系统结构中的w 曲、j b c 瞪、 j g r o u p s 等技术;。 ( 2 ) 负载均衡算法:分析集群服务器系统中基于内容的请求分配策略及传统的负 载均衡算法,提出一种基于内容的负载均衡算法,即是d i j 0 a db a l a n c i n g 算法; ( 3 ) 容错技术:分析当前集群服务器的检测机制,提出一种具有高可用性及可扩 展的容错架构,并实现其架构; ( 4 ) 集群技术在b s l 8 5 系统中的应用; 1 4 本文组织机构 论文组织结构如下: 第一章绪论。简要介绍了论文研究方向的当前发展情况,和本人所做的工作, 最后概要地讲述了各章节的内容。 第二章w 曲集群服务器系统。主要介绍w 曲集群服务器系统的概念,应用服 务器j b o s s 及集群服务器通信机制j g r o u p s 的基本知识,最后,分析集群服务器的 关键技术。 第三章w e b 集群服务器请求分配及负载均衡算法的设计。主要分析w 曲集群 服务器的请求分配策略和负载均衡调度算法,并且找出存在的不足,最后,提出 4 w e b 集群服务器负载均衡与容错技术的研究与应用 一种新的基于内容的负载均衡算法,即是:d i j d a db a l 趾c i i l g 算法。同时,做出性 能比较。 第四章w 曲集群服务器故障处理的研究与设计。分析故障检测机制,提出一 种故障处理的设计架构,并进行设计与实现。 第五章集群技术在b s l 8 5 业务系统中的应用。讲述集群技术在b s l 8 5 业务系 统中的应用,并进行了性能比较。 第六章结论。对本论文的工作做了一个总结,并给出了进一步的研究内容和 方向。 第二章w e b 集群服务器系统 5 第二章w e b 集群服务器系统 集群技术是热门话题,一直处于不断的探讨研究阶段州。该领域的研究主要集 中在以下三个方面:集群系统体系结构( a r c h i t e c t i 啪) 的研究、集群系统中请求路由 机制的实现技术研究及集群系统所采用的调度策略及调度算法的研究。本章首先 介绍集群技术及w 曲集群服务器相关概念和知识;其次,对w 曲应用服务器j b o 鼹 的设计架构做一个较简要的叙述;最后,分析集群服务器关键技术,引出下文。 2 1 集群系统 2 1 1 集群概念 集群技术是一种计算机系统之间连接的方式,运用它可以将分散的计算系统连 接起来完成原来单独节点的计算系统无法完成的任务,最早的集群系统就是出于 满足并行处理的目的。但是随着计算机性能的发展和网络不安全因素的出现,系 统的稳定性和可靠性是人们主要面临解决的问题。人们开始使用集群方式将两台 以上的设备连接起来,当整个集群系统中发生单点或者局部多点故障时,集群中 其他的计算机将自动来接替出故障设备。除此以外,利用集群系统的高并行性能 进行复杂的科学、工程计算,也是非常有经济价值的做法。 按服务器节点的耦合程度可以分为紧耦合集群和松耦合集群。按功能可以分为 常见的以下三类: 高性能集群( m g hp e 响瑚柚c cc o m p u t i n g ) 这类集群将多台计算机联系在一起, 用来处理复杂的计算问题。 高可用集群( h i g ha l i b l a b l e ) 用来提供不问断的2 4 小时服务。 负载均衡集群( i j d a db a l 壮d n g ) 该类集群追求的不是高性能的计算,而是快 速的事务和响应能力,同时对系统的高可用性和高扩展性有较高的要求。 2 l2 集群的基本术语 为了更深入理解集群技术的本质,我们将在下面分析集群技术中所涉及的关键 技术湖。 ( 1 ) 高扩展性( s 住l a b m t y ) :在多数系统中,预测最终用户的数量和行为是非 常困难的,扩展性是指系统能够适应不断增长用户数的能力。 6 w e b 集群服务器负载均衡与容错技术的研究与应用 ( 2 ) 高可用性( h i g h a v a i l a b i u t y ) :单一服务器的解决方案并不是一个健壮方式, 因为容易出现单点失效。像银行,账单处理这样一些关键的应用程序是不能容忍 哪怕几分钟的死机。它们需要这些服务在任何时间都可以访问,并且可预期的合 理的时间周期内有响应。而集群方案,就是通过集群技术,使得在其中一台服务 器失效后服务,仍能够让其它服务器继续提供服务,从而获得高可用性。 ( 3 ) 负载均衡( k 髓db a i a n c i n g ) :是集群技术的关键部分,能够将客户端发送的 请求分发到不同后台服务器来响应,以均衡不同服务器的负载。 ( 4 ) 容错性( f a u l t l o l e m n ) :在集群中,当一个服务器实例失效后,服务仍然 是有效的,这是因为该请求将交给其它服务器来处理。 ( 5 ) 失效转移( f a i l o v e r ) :是集群中用来获取容错能力的另一项关键的技术。当 一个服务器结点失效后,通过选择集群中的另一个服务器结点,处理将会继续而 不会终止。其它服务器还能够正常去响应,来完成前台发送过来的请求,该事务 仍能够正常完成。 一。 ( 6 ) 幂等方法( i d e m p o n t e n tm e t h o d s ) :是指重复用相同的参数调用都能得到相 同的结果。这些方法不会影响系统状态,可以重复调用而不用担心改变系统。 2 2 w e b 集群服务器系统 在h t e m c t 上,基于j 2 e e l 4 】的w 曲应用及w 曲服务的流行,将同时处理上千 个( 或者更多) 用户的需求推向前台,单一服务器往往无法及时处理完成所有收 到的大量请求,从而造成应答的滞后、请求的丢失等情况,也存在单点失效等严 重问题。 一个w 曲集群服务器系统由多台应用服务器组成,但对外部而言,整个集群 系统就如同一台高性能的应用服务器,系统只有一个对外的坤地址,所有的肌甲 请求都发送到这个口地址上。系统中有专门的机制能够将这些请求根据一定的策 略分发到集群中的应用服务器上,让它们各自分担一部分工作,也就是说,w 曲 集群服务器系统是通过并行处理来达到整个系统的高性能。 综上所述,w 曲集群服务器系统能够很好的解决应答滞后,请求丢失等问题。 一般的w 曲集群服务器的系统拓扑结构如下图2 1 : 第二章w e b 集群服务器系统 7 图2 1w 曲集群服务器系统拓扑结构 w 曲集群服务器系统主要包括如下部分: 负载均衡器:负责收集集群中各服务器的状态信息。将新的可以提供服务的服 务器加入可服务的行列中,将失效的服务器从服务的行列中去除。同时负载均衡 器负责按照一定的策略将请求任务分发到服务器之上。 服务器组:w 曲集群服务器系统中有多个异构的应用服务器,能够独立地响应 客户端w 曲服务请求。 w 曲集群服务器系统的组成结构和工作原理决定了它能够比较容易的达到较 好的扩展性。此外,w 曲集群服务器系统还具有价格便宜、能够保持原有资源等 特点。 2 3j b o s s 服务器架构概述 j b o s s 【5 】具有开源,高扩展性等特点。我们所构建的w 曲集群服务器系统是基 于j b 0 豁的应用服务器之上的。 j b ( s s 是免费的,开放源代码j 2 e e 的实现,它提供了基本的e l b 容器以及勘b 服务,例如:数据库访问j d b c 岬、交易( n a ,n s ) 门、消息机制( j t s ) 【踟、命名机制 ( j n d i ) 和管理支持( j m 劢。j b o 豁的构架和其他j 2 e e 应用服务器的构架有着巨大的 不同。j b o 龉的模块架构是建立在j m x 底层上的,下图展现了j b o 鹞主要组件和 j m x 的联系。具体图2 2 所示: 8 w e b 集群服务器负载均衡与容错技术的研究与应用 图2 2 j b o 系统架构图 j b 0 豁日b 容器是j b c 瞪服务器的核心实现。我们发现j b o s s 容器的架构并不是 一个严格意义上的层,决大多数的独立件是双向管理,容器依赖于更多的低层次 组件。实际上,容器和它的插件、实例池( i n s t a n c cp 1 ) 、实例缓存( i n s t a n c ec a c h c ) 、 拦截器、实体持久管理、有状态会话持久管理,都是基于插入式框架来为特定的 目b 提供相应的e j b 服务。 在j b o s s 架构设计中的一个重要的特性,就是使用j m x 作为一个软件总线垂 直的贯穿其所有的服务,通过将新的服务组件遵循j m x 规范挂接上”总线”,使得 系统扩展现有的服务变得容易。可插入式框架被广泛的运用于服务的实现。开发 者可以选择他们需要的服务并编写他们所需要的相应实现,通过定义在部署描述 文件中,服务器通过读取配置文件,可以获得此服务。 2 4 j g r o u p s 体系架构 j g r o u p s 【9 1 是可靠的多播通信工具包,一种流行的开放源代码的分布式通信基 础,是j b c 瞪作为集群c l u s t e r 和c h i n g 的关键技术。服务器节点成员能够跨过 w a nl a n 加入或离开组。 j g r o u p s 可以提供集群节点之间的通信服务。是建立在网络通信协议基础之上 的分布式通信中间件。该中间件能够提供传输消息、成员管理、失败检测等服务。 另外,j g r o u p s 的协议栈具有动态裁剪的特点,可以根据用户的不同需求,对该协 议栈进行动态的裁剪;另外,也可以根据网络的状况,来选择不同的传输协议。 j g r o u p s 的架构如图2 3 所示:在顶部是管道c h 锄e l ,它有点象简单的s o c k c l 组通信节点。它有一个本地地址,主要用于发送每条消息,以便接受者能够返回。 第二章w e b 集群服务器系统 9 也有一个与组相关联的组地址。应用程序发送消息经由管道到所有或单个成员( 多 播或单播) ,接受消息及当成员加入或离开组时,所接收到提示。管道是可以改变 的,而不是一成不变的,目的就是为了能够迎合各种应用需求。抽象的目的就是 能够让应用程序提供更复杂的功能。 图2 3j g u p s 架构图 j g r o 叩s 的主要部分: 成员管理服务( g m s ) :因为集群是动态的,有些服务器会加入( i o 砷到群,有 些服务器会脱离( 1 e a v c ) ,有些服务器会因为故障而偶然脱离( c f 弱h ) ,有时候还存在 两个群之间的合并( m e 曙e ) 、分离o a n i t i o n ) 等事件,因此,集群必须具有处理这些 事件的能力。 状态传输服务( s 1 :m1 r a n s f e r ) :状态传输的目的就在于集群服务器成员 的信息同步,也就是,服务器a 跟服务器b 所看到的集群的结构是一致的。 传输协议:j g r o u p s 既可以支持t ( 口【1 0 1 ,又支持u d p 协议传输,u d p 可以发 送和接收多播,多个单播消息。若选择u d p 作为底层传输协议,需要配置u d p 子属性,来满足应用的需求。比如配置发送消息的缓冲区的大小,端口号,多播 地址,接收消息的缓冲区大小,为了保证发送消息,不因接收区没有空间导致消 息丢失的现象发生,接收消息的缓冲区要大于发送消息的缓冲区的大小;也可以 设置单播消息的一些属性。 1 0 e b 集群服务器负载均衡与容错技术的研究与应用 检测协议:为了让负载均衡器知道如何去路由客户端的请求,在集群系统中必 须时刻维持成员列表,该协议就是被用来去检测服务器节点是否可用,当集群服 务器启动时,所有的节点都要进行初始化。 管道被连接协议栈,当建立管道时被应用程序定义成组件。栈组成基本的层连 接列表,这被通过两个f 0 队列连接。层从邻层收到事件,处理它们可能在该层 的上面或下面,通过它们,个特定事件就是消息。当应用程序发送消息,协议 栈封装它和让它通过栈。每层可能需要修改,重组,丢弃事件。底层发送消息到 它们的目的。消息和事件之间的不同就是事件决没有离开栈。封装好的消息被底 层拆包,放在网络上传输。当消息到达目的时,消息被重新封装传递到栈顶。 2 5 集群服务器关键技术分析 请求分配策略与负载均衡算法 请求分配策略及负载均衡算法是w 曲集群服务器系统中的关键技术,也是w - c b 集群服务器系统中研究的热点,请求分配的策略及负载均衡算法的好坏,关系到 w 曲集群服务器系统的性能。如何减少响应时间,如何评估每个服务器的负载状 况,综合考虑各方面情况,选出负载最少的服务器,将请求分配到该应用服务器 之上进行处理。 故障检测并恢复 采用集群技术,将运行高可用性软件的两台或多台服务器互相连接并紧密集 成,即构成了高可用性系统。这些服务器可以是异构的,每台都可独立完成特定 的任务。 当某台服务器或应用程序发生意外故障时,集群中的另外一台服务器可以在继 续自己原有任务的同时,承担和接管故障服务器上运幸亍的任务。高可用性软件在 后台不断地监控系统,故障发生后在数秒内即被检测到,在另外一台服务器上启 动应用程序,故障服务器上的应用和服务被切换到后备服务器上继续运行。 采用集群技术后,能够改善系统的可扩展性,系统具有方便地向现有系统内添 加节点的能力及最大限度地降低系统崩溃的概率。 为了提供可靠的不间断的服务,实现故障的自动切换,故障检测成为提高系统 高可用性的关键。 以上几个方面,将在下面几章进行详细研究。 2 6 小结 第二章w e b 集群服务器系统 1 1 本章首先介绍了集群技术及w 曲集群服务器方面相关概念,其次,分析了应 用服务器j b s 及分布式通信中间件j g m u p s 的架构;最后,分析了集群服务器关 键技术,引出下文。 1 2 w e b 集群服务器负载均衡与容错技术的研究与应用 第三章w e b 集群服务器请求分配及负载均衡算法的设计 请求分配策略【1 1 】及负载均衡算法1 1 2 l 是w 曲集群服务器系统中的关键技术,也 是w 曲集群服务器系统中研究的热点,请求分配策略及负载均衡算法的好坏,关 系到w 曲集群服务器系统的性能。本章首先分析请求分配策略与w 曲集群服务器 之间的关系以及负载均衡器与w 曲集群服务器之间如何协调;其次,分析请求分 配策略存在的问题。最后,在基于内容l 切的请求策略的基础上,提出c - i j 0 a d b a l 卸d n g ( 基于内容的负载均衡) 算法。 3 1 请求分配策略与w e b 集群服务器 如何把服务请求分配到集群中的某台服务器上是w 曲集群服务器系统需要解 决的关键问题。通常一个w c b 集群服务器系统对外界而言只有一个网络地址,集 群通过这个地址接收到所有从网络上到达的m 田请求。所谓请求分配指的是将 w 曲服务请求分发到集群中的不同w 曲服务器预处理,请求分配工作通常是有负 载均衡器来完成转发的。负载均衡器并不对实际的请求作应答工作,这些应答工 作由集群中实际的w 曲服务器来完成。负载均衡器只将接收到的每一个请求都重 新定向到集群中的某台w 曲服务器,并通过网络将该请求传输给w 曲服务器。 系统通过请求分配,可以让集群中各台w 曲服务器均衡分担负载。当请求到 达的密度较大时,负载均衡器可以将它们快速分散到集群中各台w 曲服务器上去 接收实际的应答服务。于是在同一时刻,可使多台w 曲服务器同时工作并分别应 答不同的请求,这样就大大增加了系统的吞吐能力。系统在这种情况下实际上是 通过并行处理来提高w 曲服务的性能。所以,可以认为请求分配是使集群中各台 w 曲服务器实现并行处理的手段。 3 2 负载均衡与w e b 集群服务器 负载均衡是指计算负载在集群中分布,使得集群中的每个工作站都做等量的工 作。负载是一个抽象的概念,用于描述系统的繁忙程度。当一个系统的负载较大 时,系统对外的表现为处理速度下降。对一台w 曲服务器来说,负载较重意味着 该w 曲服务器当前正在应答的请求的个数较多或该w 曲服务器的当前网络流量较 大。 一个负载均衡器可以通过硬件来实现,也可以是便携式的,无论用什么技术来 实现,必须实现如下关键技术: 第三章w e b 集群服务器请求分配及负载均衡算法的设计 1 3 负载均衡算法 当客户端发送请求,负载均衡器将决定如何将请求分发到不同的服务器上。常 见的算法有:r o 岫dr o b i n ,r 锄d 咖和w e i g h tb 弱e d 等。 心跳检测 心跳【1 4 】( h e a nb e a t ) 是集群服务器系统实现高可用性能所普遍采用的技术。它 是服务器之间周期性发送的信息,用于判断服务器是否“存活”,如果在指定的时 间内没有收到服务器发送的心跳消息,就怀疑该服务器发生故障。 当一个服务器死掉,负责均衡器可以探测到,不再分配客户端请求。 请求分配策略 图3 1 显示的多个客户端和服务器之间的请求在负载均衡方面的应用,负载均 衡器位于请求者和响应者之间,能够按照一定的策略将请求发放到服务器上。 图3 1 请求分配策略 f 缸l o v 盯故障恢复 当集群服务器a 中的一个系统发生故障停止运行时,负载均衡器负责将该系 统的工作流切换到集群服务器b 中的另一个系统上,结果,集群服务器上一个系 统因故停运不会影响其它系统,多数的情况下,用户将完全不会感觉到故障的发 生。其故障恢复如图3 2 所示: 图3 2 故障恢复 一个w 曲集群服务器系统,当它对外提供应答服务时,会在服务器上产生负 载。由于请求分配策略的不同,各台w 西服务器上的负载呈现不同的规律。大量 研究的工作表明,当w 曲集群服务器中各台w 曲服务器的负载处于均衡状态时, 请求分配的效益最高。w 曲集群服务器系统中各台w 曲服务器上的负载分布是可 1 4 w e b 集群服务器负载均衡与容错技术的研究与应用 以通过负载调度算法来控制的。所以,可以通过负载均衡算法使w 曲集群服务器 系统的负载分布尽量达到均衡来提高请求分配的效率。 3 3 请求分配和负载均衡存在的问题 3 3 1 常见负载均衡算法分析 负载均衡算法大致上分为静态和动态算法两类。静态负载均衡算法根据已有的 有关任务的信息,通过某个算法来确定任务的分配,它不使用系统状态信息来决 定负载的分布。动态负载均衡算法是利用系统的当前的状态,进行任务的分配。 比静态算法更灵活、有效。由于它必须收集存储并分析状态信息,因此动态负载 算法会产生比静态算法更多的系统开销。下面简单分析常见的负载均衡算法: 轮转算法:该算法例是所有调度算法中最简单也是最容易实现的一种方法。在 一个任务队列里,队列的每个服务器成员都具有相同的地位,轮转法就是简单的 在这组成员中顺序轮转选择。在负载均衡环境中,均衡器将新的请求轮流发给节 点队列中的下一个服务器节点,如此连续、周而复始,每个集群的服务器节点都 在相等的地位下被轮流选择。 加权轮转算法:该算法是根据服务节点的优先级或当前的负载状况来构成负载 均衡的多优先级队列,队列中的每个等待处理的连接都具有相同处理等级,这样 在同一个队列里可以按照前面的轮转法进行均衡,而队列之间按照优先级的先后 顺序进行均衡处理。 最少连接算法:该算法【2 1 】是是根据在均衡器中目前所有活跃连接,把下一个新 的请求发给当前含有最少连接数的服务器节点。由于不同的应用对系统资源的消 耗可能差异很大,而且连接数不能反映出真实的服务器负载状态,因此在使用集 群服务器节点服务时,该算法在负载均衡上达不到理想的效果。为了减少这个不 利的影响,可以对每个节点设置最大的连接数上限。 与加权轮转法类似,为了使最少连接数能够适应异构集群,人们根据加权轮转 算法的思路提出最少连接法的一种基于内容的算法,称为加权最少连接法,该算 法权值的确定与加权轮转算法权值的确定大致相同。 针对静态均衡算法的不足,动态负载均衡算法考虑服务器的实时负载和响应情 况,不断调整服务器之间处理请求的比例,来避免有些服务器超载时依然收到大 量请求,从而提高整个系统的吞吐率。集群服务节点权值的计算主要根据各个节 点的参数( c p u 利用率、可用内存以及磁盘加l 频度) ,计算出新的权值,若新的 权值和当前权值的差值大于设定的阀值,负载均衡器就能采用新的权值对集群中 第三章w e b 集群服务器请求分配及负载均衡算法的设计 1 5 未分配的任务重新进行分布,直到下一次的负载信息同步到来之前。负载均衡器 可以配合集群节点的权值,采用加权轮转算法来处理网络服务请求的调度。 3 3 2 请求分配和负载均衡存在的问题 请求分配和负载均衡是实现高可用w 曲集群服务器系统关键技术手段,但目 前该领域的研究工作仍然存在一些问题和不足。 其主要表现在:现有的各种请求分配算法多属于静态算法,虽然考虑了负载均 衡问题,但都比较简单,没有综合考虑服务器动态参数( 如c p u 利用率,内存利 用率) 性能,没有优化策略。由于w 曲技术的发展,特别是动态网页技术( j s p 等) 的成熟,以及数据库、多媒体技术在w 曲上的应用,使得不同的请求在w 曲 服务上产生的负载差异很大,不同客户端发出的对统一脚本的请求在服务器所产 生的负载也会很大的差异,因而由现有的算法所得到均衡效率普遍较低,稳定性 也较差。并且这些算法不适合用于构造异构w 曲集群服务器系统。综上所述,我 们分析基于内容的请求分配策略,该策略是以集群环境中各服务器节点硬件( 性 能不同) 和软件( 操作系统和服务内容) 的异构性为基础而提出的。最后,我们 在此基础上构建基于内容的应用层负载均衡算法。该算法基于服务器状态( 当前 状态和服务器的能力) 和请求信息( 根据对服务器影响程度,对请求内容进行分 类) ,目的就是减少响应时间。 我们可以看到新的请求分配策略与非基于内容的,完全以负载均衡为目的请求 分配策略相比有着如下的优势和必要性: 细粒度的负载均衡 负载均衡分配策略要求充分公平,高效地利用后端服务器节点的资源。w 曲访 问请求可按内容分为静态w 曲页面,动态页面和多媒体数据等类型。不同类型的 访问请求内容,其响应时间和资源利用率有着明显的区别。现有的负载均衡分配 算法( 随机算法,轮询算法,加权算法,最少连接等算法) 并不区分请求的内容。 因此,基于访问请求内容的细粒度的负载分配策略显得尤为重要。 区分服务类型 w 曲服务的多样化使传统的服务器集群结构体系不仅不能满足对不同客户请 求提供不同服务质量的要求,也不适应客户对可扩展性服务的需要。区分不同服 务请求,分配转发策略才能高效地将请求分配到能提供相应的优先级( p 凼r i t v ) 和服务质量c 1 0 s 的后端节点。 服务器服务内容的异构 1 6 w e b 集群服务器负载均衡与容错技术的研究与应用 在集群分布式环境中,如何高效地分布和管理w 曲内容是一项关键的技术。 为了让后端的每一个服务器节点都能提供一致性的客户访问内容,通用的解决方 法是后端服务器节点上所有w 曲内容的全局复制。 通过以上分析不难看出,基于请求内容的分配转发策吲1 5 】与传统的负载均衡策 略相比而言有着明显的功能改善和对异构环境的适应性支持。它是以集群环境中 各服务器节点性能不同和软件的异构性为基础而提出的一种新的请求分配方法。 3 4 基于内容的请求分配策略的分析 基于网络传输层( t i 卫,m ) 请求分剔1 6 】的集群系统中,前端都是基于口和目 的端口号转发的,无需知道客户提交的请求内容。而基于应用层内容的分发是指 在请求分发之前必须知道所请求的目标内容( 如 哪报文头中所携带的u r l 信 息) ,并依据匹配规则配置信息将请求分发到提供相应服务内容的后端服务器节点 上。以w 曲服务为例,需要客户与前端建立一个完整的t c p 连接以获得h n p 的 头信息,前端收到h r l l p 请求之后进行分析,以合适的分配策略再将该请求转发 给后端的服务器执行。 3 4 1h t t p 请求内容结构 所谓内容,不同的请求分配策略有不同的定义。较粗的粒度是按照文件的类型 进行划分的,例如h t m lg 以及c g i 三种。相对较细的内容粒度是h 兀l p 头信 息中所携带的完整u r l 部分,也就是客户端最终希望得到的w 曲对象的定位信息。 文中所讨论的基于内容请求调度中的内容是请求指定u r l 信息。 h 兀甲的协议文本分为两部分:一部分描述从客户端发出的请求报文的格式和 内容;另一部分描述从w 曲服务器端发出的应答报文的格式和内容。这里,我们 只关心请求报文内容。 , h r r p 请求由一个具有行结构的请求头和一个请求体构成,请求头主要包括下 面几个部分。 方法:位于请求头的第一行,指明该请求的操作类型。有4 种主要的方法,它 们是g e t , p u t ,p o s t ,i m a d 。g e t 表示从w 曲服务器取文件,文件的位置 由紧跟在g e t 之后的u r l 部分指定;p u t 和p 0 s t 方法都表示向w 曲服务器传 送数据。 u r l :位于请求头的第一行,在方法之后,指明请求对象的位置等信息。u r l 为一个字符串,由路径和参数两部分组成,路径在前,参数在后。路径部分为请 第三章w e b 集群服务器请求分配及负载均衡算法的设计 1 7 求对象在w 曲s e r v c r 页面空间中的位置。如果有参数部分,则请求的对象多数情 况为一个s e r v e r 端的s c r i p t s 程序,参数部分就是这个程序的输入参数。 协议版本:指明a i e n t 端浏览器采用的h 兀p 协议的版本号。w 曲服务器可以 根据这个版本号信息决定如何对该请求做出相应的处理。 压缩方式:指明客户端浏览器支持的数据压缩方式。w 曲s e r v c r 可以根据这条 信息采用相应的压缩策略回传应答数据。 在 r r r p 请求报文的内容中,第一行的g e t ( 请求方法) 后面紧跟的内容部分就 是在请求分发中要用到的重要依据请求目标的u l 也内容。 3 5c - l o a db a l 挑d n g 算法的设计 负载均衡的目标是根据节点的性能来分配与其相匹配的任务。算法设计的好坏 直接决定了集群在负载均衡上的表现,设计不好的算法,会导致集群的负载失衡。 主要的任务是决定如何选择下一个集群服务器节点,然后将新的服务请求转发给 它。因此在考察负载均衡算法的同时,也要注意算法本身的适用面,并在采取集 群部署的时候,根据集群自身的特点进行综合考虑,把不同的算法和技术结合起 来使用。 根据o s i 协议栈l 7 】的层次,来划分w c b 路由请求策略,通过对请求策略的不 同,把负载均衡可以分为网络传输层和应用层【墙l ( 1 9 】策略。然而,基于网络,传输层 的集群服务器系统能够部分解决负载问题,因为负载均衡器不能获得h 兀甲请求 的内容,把所有的请求都认为相同。也就是不能达到真正负载的效果。而应用层 是基于客户端请求内容进行分发,能够真正达到负载目的。基于应用层的负载均 衡策略是当前研究的一个热点问题。 。 应用层负载均衡策略可以分为静态和动态。静态策略不考虑任何系统状态信 息,例如轮转算法,加权轮转算法等;动态策略根据一些系统状态做动态的分发 请求,通常有三种策略,第一,基于服务器的策略,该策略要考虑到服务器的当 前状态,如服务器当前的负载,页面延迟时间等;第二,基于客户端的策略;第 三,基于客户和服务器的策略。 3 5 1c l o a db a l a n c i n g 算法设计 由于不需要获得当前的系统状态,所以,静态的策略可能是一种解决方式,缺 点是负载效果不是很好。动态策略在性能上要比静态的好。但是,动态策略要收 集和分析状态信息,因此,耗费大。其主要原因是如何评估和计算系统状态信息。 主要考虑的因素,包括服务器的连接数,磁盘响应时间,页面延迟时间等 1 8 w e b 集群服务器负载均衡与容错技术的研究与应用 基于内容的请求分发策略,是通过设计基于内容的w 曲服务器的缓存来减少 响应时间,当发出一个新的请求时,负载均衡器接受连接,分类请求,然后,将 请求分发到合适的服务器上。它设定对同一个文件的所有的请求都分到同一个服 务器节点上,直到该服务器节点到达阀值。该请求通常被分到低负载服务器上。 应用层策略的请求消耗代价大和很难将把评估负载、收集状态、产生实时的决 策转化成一种机制。通过结合客户端请求和服务器端的状态信息,这种机制能够 到达一个较好的效果。综上所述,我们提出一种新的策略算法,该算法基于服务 器状态( 当前状态和服务器的能力) 和请求信息( 根据对服务器影响程度,对请 求进行分类) ,目的就是减少响应时间。 3 5 2c l o a db a l a n c i n g 算法理论分析 根据对服务器的影响程度,我们把请求分为:静态请求,数据库操作请求,安 全请求等,每种请求被分给特定的权值,这可以通过分析请求日志来获得请求类 型和估计服务器的性能。w 曲负载均衡器收集这些信息,并且计算权重。得出当 前服务器的负载状态。 为了简化问题,我们不再考虑实际中的一些因素,如网络传输的瓶颈,传输的 损耗等,这种线形模型通常被用来评估w 曲服务器性能。 首先考虑一个非优先级系统,为了便于研究有必要把时间划分为离散的时间片 段把时间均匀的划分为离散的时间片( 0 1 ) ( t 2 d o 【to 【+ 1 m 。 定义l :每段时间片的开始时刻来表示这段时间即盯表示( 1 【+ 1 m ; 定义2 :c 表示单位时间服务器的处理能力; 定义3 :c ( 姐) 表示在l 盯内一台w e b 服务器的处理能力; 定义4 :s ( i ,l 表示任务i 在l 【t 内需要的处理能力: 定义5 :n ( 如表示l 【t 内允许进入的任务数: 于是可以得到方程 弋坚) c ( 1 汀) :c t :s ( f ,盂t ) ( 3 一1 ) 符 当式( 3 1 ) 为真时请求任务i 被允许进入服务队列,否则就被拒绝进入服务对列。 从这里可以知道,进入服务队列的请求任务的最大的响应延迟为t 。在优先系统中, 对同一类优先任务来讲,由
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第二单元 重庆旅游计划说课稿-2025-2026学年小学信息技术(信息科技)旧版西师大版
- 关于同学聚会发言稿18篇
- 2025年浙江省人民警察司晋督培训考试综合类题库含答案详解
- 2025年深圳市大鹏新区发展和财政局招聘考试笔试试卷【及答案】
- 住宅商业公寓社区文化活动策划与运营合同范本
- 茶室租赁合同范本:茶文化休闲体验服务协议
- 出租车公司股权转让与智能交通信息服务合同
- 东南亚旅游导览出国劳务派遣服务协议
- 上市公司信息披露保密及监管协议
- 2025全球劳动合同法律知识学堂
- 充电站运营管理制度(参考模板)
- 体育与健康教学设计《手倒立前滚翻》
- NISP一级考前模拟训练题库200题(含答案)
- JJG 20-2001标准玻璃量器
- 2024外研版初中英语单词表汇总(七-九年级)中考复习必背
- 《大数据平台部署与运维》课程标准(含课程思政)
- 英语中的时间表达(示范课例)
- 脊柱外科进修汇报
- 《史记》上册注音版
- 苏州大学文学院语言学纲要课程笔记
- 危重症患者护理文书书写规范-课件
评论
0/150
提交评论