




已阅读5页,还剩60页未读, 继续免费阅读
(计算机应用技术专业论文)web服务器集群系统的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南京航空航天大学硕士学位论文 摘要 在i n t e r n e t 和i n t r a n e t 上,随着客户机数量和密集性任务的增加,单个 w e b 服务器受到处理能力的限制,很可能会成为网络访问的新瓶颈。w e b 服务器 集群系统具备高可用性和负载均衡性,并且易于扩展,成为解决这一问题的最佳 方法。本文对w e b 服务器集群的设计与实现方法作了一些研究和探讨的工作。 本文首先对现有w e b 服务器集群系统的技术进行了分析,介绍了几个典型的 集群系统,重点讨论了集群负载均衡和高可用性的工作原理和实现技术。针对局 域网内w e b 服务器集群系统的特点,本文提出了一种用纯软件方法实现w e b 集群 系统的方案。文中用排队论的方法分析集群系统的性能,之后详细描述了这个集 群系统的工作原理和系统实现方案:利用套接字方法实现集群内部的通信机制, 通过对服务器负载性能数据的实时采集和对轻载服务器的周期性判决做到动态 的负载均衡,通过对服务器的运行状态的周期性检测实现系统的高可用性,使用 双进程技术保证系统运行的稳定性。在文章的最后给出了这个w e b 集群的测试方 案和测试结果。 关键词:w e b 服务器集群,负载均衡,高可用性,套接字,排队论 w e b 服务器集群系统的设计与实现 a b s t r a c t a l o n gw i t ht h ei n c r e a s eo fu s e r sa n db r o w s i n gt a s k si n i n t e r n e ta n d i n t r a n e t ,t h es i n g l ew e bc l u s t e ri sl i k e l yt ob et h e n e wb o t t l e n e c ko f n e t w o r kv i s i t i n gf o ri t sl i m i t e dc a p a b i l i t y t h ew e bs e r v e rc l u s t e rh a s t h ef e a t u r e so fh i g ha v a i l a b i l i t y ,a n dl o a db a l a n c i n g ,a n ds c a l a b i l i t y s oi tb e c o m e st h eb e s ts o l u t i o nf o rt h ep r e c e d i n gp r o b l e m t h i sp a p e rd o e s s o m er e s e a r c ha b o u tt h ed e s i g na n dr e a li z a t i o no fw e bs e r v e rc l u s t e r s f i r s tt h ep a p e ra n a l y s e st h et e c h n i q u eo ft h ee x i s t i n gw e bs e r v e r c 1 u s t e r s y s t e m , i n t r o d u c e ss o m e t y p i c a l w e bc l u s t e r s y s t e m s ,a n d d i s c u s s e s t h ew o r k s t h e o r y a n dr e a l i z a t i o n s t e c h n i q u e o f h i g h a v a i l a b i l i t y a n dl o a db a l a n c i n ge m p h a t i c a l l y t h i sp a p e rp r o p o s e sa s o f t w a r em e t h o do fe s t a b l i s h i n gaw e bs e r v e rc l u s t e rs y s t e mi nl o c a la r e a n e t w o r k t h ep a p e ra n a l y s e st h ep e r f o r m a n c eo fw e bs e r v e rc l u s t e rs y s t e m w i t ht h e q u e u et h e o r y 。a n d t h e nd e s c r i b e s t h ew o r k s t h e o r y a n d r e a l i z a t i o n ss o l u t i o no ft h es y s t e mi nd e t a i lt h a ti sr e a l i z i n gt h e c o m m u n i c a t i o nm e c h a n i s mo ft h es y s t e mw i t hs o c k e t ,r e a l i z i n gd y n a m i c1 0 a d b a l a n c i n gw i t hr e a l t i m ec o l l e c t i n gp e r f o r m a n c ed a t ao fw e bs e r v e r sa n d p e r i o d i c a lj u d g i n g o f l i g h tl o a d i n g w e b c l u s t e r ,r e e l i z i n gh i g h a v a i l a b i l i t yw i t hc h e c k i n gr u n n i n gs t a t eo fw e bs e r v e r sp e r i o d i c a l l y , e n s u r i n g t h e s t e a d yr u n n i n g o ft h es y s t e mw i t ht h ed o u b l e p r o g r e s s t e c h n i q u e t h ep r o j e c ta n dr e s u l to ft e s t i sp u tf o r w a r da tt h ee n do f t h ep a p e r k e y w o r d s :w e bs e r v e rc l u s t e r ,l o a db a l a n c i n g ,h i g ha v a i l a h i l i t y ,s o c k e t q u e u et h e o r y 承诺书 本人郑重声明:所呈交的学位论文,是本人在导师指导下,独立 进行研究工作所取得的成果。尽我所知,除文中已经注明引用的内容 外,本学位论文的研究成果不包含任何他人享有著作权的内容。对本 论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明 确方式标明。 本人授权南京航空航天大学可以有权保留送交论文的复印件,允 许论文被查阅和借阅,可以将学位论文的全部或部分内容编入有关数 据库进行检索,可以采用影印、缩印或其他复制手段保存论文。 作者签名: 日期: 美菱植 j 护p j 一z ,z 扩 南京航空航天人学硕十学位论文 符号 注释表 a :单位时间申请访问的客户平均数( 平均到达率) 。 p :五( 舡) 。 k :服务窗口数 n :已登录系统的人数( 即正在浏览访问和排队的总人数) 。 :正在浏览和排队的客户人数的期望值。 上:排队等待浏览客户数的期望值记为。 n l :系统容量。 n 2 :客户总人数。 p o :w e b 服务系统空闲的稳态概率。 只:系统中n 个客户正在浏览访问或排队的稳态概率。 s :每个客户在服务窗口访问的时间。 t :相邻两个访问客户登陆系统的时间( 申请时间) 间隔。 渺:每个客户在d m i s 系统中停留时间的期望值。 肜:每个客户排队时间的期望值。 2 1 :c p u 处理能力。 2 1 :i 号服务器c p u 处理能力参数。 丑1 。:基准服务器c p u 处理能力参数。 丑2 :内存参数。 9 2 :i 号服务器内存参数。 2 2 。:基准服务器内存参数。 旯3 :硬盘参数。 五3 :i 号服务器硬盘参数。 3 “基准服务器硬盘参数。 c :c p u 的使用率。 c ,:i 号服务器c p u 的使用率。 c “基准服务器c p u 的使用率。 m :内存的使用率。 m :i 号服务器内存的使用率。 w e b 服务器集群系统的设计与实现 m “基准服务器内存的使用率。 d :硬盘传输量。 d ,:i 号服务器硬盘传输量。 d “基准服务器硬盘传输量。 :网络流量。 :i 号服务器网络流量。 “基准服务器网络流量。 q :c p u 比较的权值。 b :内存比较的权值。 y :硬盘比较的权值。 0 :网络比较的权值。 南京航空航天大学硕士学位论文 首字母缩写 a g c :a u t o m a t i cg e n e r a t i o nc o n t r o l ,自动发电控制。 c d l b :c e n t r a ld y n a m i el o a db a l a n c i n g ,集中式动态负载均衡。 c i 。b :c o m p o n e n tl o a db a l a n c i n g ,组件负载均衡。 d d l b :d i s t r i b u t e dd y n a m i cl o a db a l a n c i n g ,分布式动态负载均衡。 d l b :d y n a m i cl o a db a l a n c i n g ,动态负载均衡。 d l l :d y n a m i cl i n kl i b r a r y ,动态链接库。 d m i s :d i s p a t c h i n gm a n a g e m e n ti n f o r m a t i o ns y s t e m ,调度管理信息系统。 d n s :d o m a i nn a m es y s t e m ,域名系统。 e m s :e n e r g ym a n a g e m e n _ ts y s t e m ,能量管理系统。 f t p :f i l et r a n s f e rp r o t o c o l ,文件传输协议。 i g m p :i n t e r n e tg r o u pm a n a g e m e n tp r o t o c o l ,互连网组管理协议。 2 e e :j a v a2p l a t f o r m ,e n t e r p r i 8 ee d i t i o n a l v s :l i n u xv i r t u a ls e r v e r ,l i n u x 服务器集群系统。 m c s :m i c r o s o f tc 1 u s t e rs e r v e r 。 m s c s :m i c r o s o f tc l u s t e rs e r v i c e ,m i c r o s o f t 群集服务。 m s m q :m i c r o s o f tm e s s a g eq u e u i n g ,w i n d o w s 消息队列。 m t t f :m e a nt i m et of a i l u r e ,平均无故障时间。 m t t r :m e a nt i m et or e p a i r ,平均维修时间。 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 ,网络地址转换。 n e n w c :n i n gx i ae l e c t r i c a ln e t w o r kw e bc l u s t e r s ,宁夏电网w e b 服务器集 群系统。 n m p p :非齐次p o i s s o n 过程模型。 n l b :n e t w o r kl o a db a l a n c i n g ,网络负载均衡。 r r d n s :r o u n d r o b i nd o m a i nn a m es y s t e m ,轮转域名系统。 s c a d a :s u p e r v i s o r yc o n t r o la n dd a t aa c q u i s i t i o n ,监视控制与数掘采集系 统。 s l b :s t a t i cl o a db a l a n c i n g ,静态负载均衡。 s n m p :s i m p l en e t w o r km a n a g e m e n tp r o t o c o l ,简单网络管理协议。 t t l :t m et ol i v e ,数据刷新时涮。 南京航空航天大学硕士学位论文 1 1 引言 第一章绪论 在i n t e r n e t 和i n t r a n e t 上,w e b 服务器负责为来自浏览器的信息请求提供 服务。近年来由于宽带网技术的飞速发展,网络带宽的增长远高于处理器速度和 内存访问速度的增长,网络带宽的瓶颈效应日趋减弱。随着客户机数量和密集性 任务的增加,单个w e b 服务器受到处理能力的限制,很可能会成为网络访问的瓶 颈。如何建立可伸缩的网络服务满足不断增长的负载需求己成为迫在眉睫的问 题。 对于降低服务器负荷,提高系统性能这个问题。如果只考虑升级单个w e b 服 务器的方法( 例如使用具有更快c p u 和更大内存的计算机做服务器) ,并不能够 彻底的解决问题。般而言升级w e b 服务器的软硬件配置,经济上是比较昂贵 的,升级的代价比较高。而且,仅仅升级一台服务器并不能充分保障系统的可靠 性,一旦这台服务器发生故障,整个系统也就不能提供服务了。 另一种方案是采用w e b 服务器集群系统:w e b 服务器集群系统是指2 台或2 台以上w e b 服务器联合向客户提供w e b 服务的一种计算机系统。它采用负载均衡 策略将到达的请求分配给集群中的某台服务器进行处理,并且通过数据冗余和软 件监测等方法实现系统的高可用性。在这种方法中,不要求单个w e b 服务器具有 很高的性能,当w e b 服务器集群不能满足浏览的需要时,在集群中加入一个或数 个普通的w e b 服务器即可,经济可行。当集群中的某个服务器发生故障时,其他 服务器可以提供服务,集群可以提供不间断的可靠服务。 因此,采用w e b 服务器集群系统是解决问题的最佳方案。 1 2 研究背景 w e b 服务器集群系统在一组计算机上运行相同的软件并虚拟成一台主机系统 为客户端与应用提供服务。从每个终端用户的角度来看,整个集群就像一个w e b 服务器。为了做到这点,集群系统必须具有以下特性: 可扩展性一一集群的性能不限于单一的w e b 服务器,新的服务器可以动态 地加入到集群,从而增强集群的性能。 高可用性一一在集群中每台服务器都具备等价的地位,都可以单独对外提 供服务,而无须其他服务器的辅助。如果一个w e b 服务器出现故障了,系 统会对客户端屏蔽掉故障的服务器,用户将自动访问运行f 常的服务器。 w e b 服务器集群系统的设计与实现 负载均衡一一负载均衡能把浏览任务均衡地分布到集群中的每个w e b 服 务器,使得每个w e b 服务器上的负荷大致相等。从而以较低成本消除系统 瓶颈,增加了吞吐量,加强系统数据处理能力,提高系统的灵活性和可用 性。 为了实现上述的特性,首先w e b 服务器集群必须使用多服务器的分布式结 构。w e b 服务器集群中,每个结点运行若干个服务器程序的独立拷贝。其中的某 些服务,在每个节点上都有程序的一个拷贝运行,网络负载均衡则将工作负载在 这些主机间进行分配。而另一些其他服务程序,则只在一台主机上运行程序。针 对这些服务,网络负载均衡指引网络通讯量流到这个主机上加以处理。如果该主 机发生故障,系统指定另一个主机接替它的工作。 其次,集群系统必须具备一个统一的集群地址。这个地址可以是一个虚拟的 i p 地址:用户通过虚拟i p 地址( v i r t u a li pa d d r e s s ) 访问服务时,访问请求 的报文会到达负载均衡器,由它进行负载均衡调度,从一组真实服务器选出一个, 将报文的目标地址改写成选定服务器的地址,报文的目标端口改写成选定服务器 的相应端口,最后将报文发送给选定的服务器。这个地址也可以是一个统一的域 名:当用户按照这个域名访问时,r r d n s ( r o u n d l o b i nd o m a i nn a m es y s t e m ) 服务器会把域名轮流解析到这组服务器的不同i p 地址,从而将访问负载分到各 台服务器上。这个地址也可以是负载均衡器的真实i p 地址:用户的浏览请求首 先到达负载均衡器,负载均衡器根据整个集群系统的负荷状况对请求做相应的处 理。 最后,集群内部必须保持良好的通信状况。为了能协同工作、实现负载均衡 和故障恢复,集群系统的每个w e b 服务器节点与负载均衡必须进行周期性的通 信;每隔几秒或几十秒,w e b 服务器需要将自身的工作状况和负载等信息传递给 负载均衡器。 近年来,针对w e b 服务器集群系统的设计和实现,国内外的许多公司和学术 机构给出了不同的解决方案。例如:微软公司的m i c r o s o f tc l u s t e rs e r v e r ( m c s ) ;i b m 公司的w e b s p h e r e ;自由软件项目:l if l u x 服务器集群系统一一l i n u x v i r t u a ls e r v e r ( l v s ) 等等。这些软硬件解决方案以不同的方式实现了w e b 集 群系统的各种功能和特性。但是,这些方案也有各自的局限性。如m c s 只能在 w i n d o w s 操作系统平台下使用,支持的节点比较少,l v s 一般使用于l i n u x 操作 系统平台。而且商业化的w e b 服务器集群产品配备的软件硬件价格都比较高, 一般的用户难于承受。 对于普通的w e b 应用,上述的方案可以满足一般的需求。但是,实际应用中 的w e b 服务类型很多,对这些不同的服务而占,通用的方案不一定能取得良好的 南京航空航天大学硕士学位论文 效果。比如,这几种方案中大量i p 数据包地址的改写工作,增加了负载均衡器 的负荷,负载均衡器往往成为新的系统瓶颈,降低了整个系统的性能。而且工业 控制系统中常见的w e b 服务特点是:w e b 服务器和客户机同处于一个局域网中, 客户机总数不多,但一个客户的访问对服务器造成的负荷比较大,而且每个客户 访问造成地负荷大致相等,对于w e b 服务的稳定性要求很高。如果采取前述方案 构建集群,应用效果较差。 针对工业控制系统中的w e b 服务的特点,本文提出了一种在局域网内用纯软 件方法实现w e b 集群系统的方案。这种方案可以在w i n d o w s ,u n i x ,l i n u x 操作 系统下构建集群系统,不需要附加使用磁盘阵列等昂贵的设备。这种构建集群的 方案实现了系统的高可用性和动态负载均衡,运行效果稳定,能够较好地满足工 业系统中w e b 服务的需要。本文对这种系统的工作原理,实现方法做了详细地介 绍。 1 3 课题来源 本文以宁夏电力公司调度中心能量管理系统为课题来源。能量管理系统 ( e m s ) 用于保障电网的安全稳定运行,主要由监视控制与数据采集系统( s c a d a ) 、 自动发电控制( a g c ) 及高级应用软件等功能模块组成。能量管理系统中的调度 管理信息系统( d i i s ) w e b 服务器向全局所有生产部门提供电网运行信息。随着 客户机数量和密集性任务的增加,采取单一的服务器不能满足d m i s 用户的需求。 在d m i s 系统中,w e b 服务具有客户浏览内容前后相关性很强,每个客户给服务 器造成的负荷大致相等的特点。因而,现有的w e b 服务器集群方案并不能很好的 满足d m i s 系统w e b 服务的要求。针对d m i s 系统w e b 服务的这些特点,本文作者 提出了一种w e b 服务器集群系统的设计与实现方法,并在w i n d o w s2 0 0 0 操作系 统中,以v i s u a lc + + 语言为编程工具初步实现了一个w e b 服务器集群系统一一 n e n w c ( 宁夏电网w e b 服务器集群系统) 。 1 4 论文结构 本文详细地讨论了w e b 服务器集群系统的设计与实现。全文由七章组成: 第一章绪论 分析了i n t e r n e t 和i n t r a n e t 环境下w e b 服务器瓶颈问题,提出了问题的解 决方案:w e b 服务器集群系统。之后讨论了w e b 集群系统的特性和实现方案。 第二章现有集群系统技术分析 w e b 服务器集群系统的设计与实现 介绍了现有的多种集群系统,之后探讨了实现集群系统关键技术负载均 衡和高可用性的方法。 第三章n e n w c 系统关键技术与实现方案 研究了n e n w c 系统性能的数学模型,n e n w c 系统内部通信机制,以及n e n w c 系统的各个功能模块。 第四章n e n w c 系统高可用性实现 介绍了n e n w c 系统实现高可用性的原理。重点研究了集群服务运行稳定性的 保障措施,w e b 服务器数据记录的数据结构,以及获取服务器状态的方法。 第五章n e n w c 系统负载均衡实现 介绍了n e n w c 实现系统负载均衡的原理。详细探讨了w e b 服务器性能参数的 选取,性能信息的获取方法,以及负载均衡器判别的依据。 第六章n e n w c 系统测试与结果 给出了n e n w c 系统的测试方案和测试结果。 第七章总结与展望 对全文进行了总结,并对课题的进一步研究和后期目标提出了一些看法。 南京航空航天大学硕士学位论文 第二章现有集群系统技术分析 2 1 典型集群系统的简介 近年来,随着w e b 服务器集群的应用日益广泛,国内外公司纷纷推出商业化 的集群产品,同时,一些学术机构也推出了集群实现方案。这一节讨论具有典型 代表意义的几种集群系统。 2 1 1 mic r o s o f t 集群系统 m i c r o s o f t 公司最初在它的操作系统产品w i n d o w s2 0 0 0 中新增加了集群( 群 集) 功能。该高可用性集群( 群集) 叫做m i c r o s o f tc l u s t e rs e r v e r ( m c s ) 。它 为基于w i n d o w sn t 服务器的应用程序提供了可用性和可升级性。在w i n d o w s2 0 0 3 s e r v e r 中,集群技术得到了进一步的发展。 m i c r o s o f t 服务器提供三种支持集群的技术:网络负载均衡( n l b ) 、组件负 载均衡( c l b ) 和m ic r o s o f t 群集服务( m s c s ) 。 网络负载均衡的主要功能是均衡同一个n l b 群集中的多个w e b 站点或应用程 序上的负载,最多可以将3 2 个运行w i n d o w ss e r v e r2 0 0 3 系列产品的计算机连 接在一起共享一个虚拟i p 地址。网络负载均衡具备可伸缩性,高可用性。组件 负载均衡可以在多个运行站点业务逻辑的服务器之间分配负载。它在最多包含八 个等同服务器的服务器群集中实现了c o m + 组 牛的动态均衡。组件负载均衡通过 作用于多层群集网络的中间层与网络负载均衡和群集服务配合工作。群集服务充 当后端群集,可为数据库、消息传递以及文件和打印服务等应用程序提供高可用 性。 m i c r o s o f t 群集服务由三个主要组件构成:群集服务、资源监视器和资源 d l l 。此外,还可以利用群集管理器创建提供管理功能的扩展d l l 。 群集服务控制群集活动并执行如下任务:协调事件通知、加速群集组件之间 的通信、处理故障转移操作和管理配置。资源监视器是群集服务和群集资源之间 的接口,d l l 处理所有与资源的通信。资源是任何可进行管理的物理组件或逻辑 组件,每个资源都使用资源d l l ,它主要是资源监视器和资源之间的被动转换层。 m i c r o s o f t 的集群服务具备易于安装,资源配置简便,支持6 4 位服务,支 持虚拟集群,支持i g m p 协议等特性。它的缺点是只能在w i n d o w s 操作系统平台 w e b 服务器集群系统的设计与实现 下使用,支持的节点数量较少。m c s 通常应用于中小型企业的服务器集群中。 2 1 2 w e b s p h e r e w e b s p h e r e 是i b m 公司推出的套功能强大的w e b 应用服务器。它为企业级 w e b 应用程序的创建提供了一个可靠的、一致的框架。它支持的平台和标准非常 多:在操作系统方面,涵盖了从p c 机到大型机的各类操作系统;支持j 2 e e 、c o r b a 、 a c t i v e x 接口;支持多种关系对象层次数据库;w e b s p h e r e 提供了负载均衡、 失效恢复、集群等功能,任何对应用程序或其配置的修改,包括j a v a 组件的更 新,将会在多个服务器上自动备份复制。w e b s p h e r e 中有多层次的可调整的缓存 技术,w e b s p h e r e 的操作环境较好,包括了a d m i n i s t r a t i v ec o n s o l e ( 操作管理) 、 l o ga n a l y z e r ( 日志分析) 、r e s o u r c ea n a l y z e r ( 性能数据的测量和报告) 、 p e r f o r m a n c em o n i t o r i n ga p i ( w e b s p h e r e 组件所提供的a p i 接口,可以实时地 获取性能数据) 、t u n e rw i z a r d ( 性能调整工具) 等一整套工具,用于应用服务 器的配置、监控和管理。w e b s p h e r e 具有很强的系统集成能力,i b m 提供了其产 品线上的一系列产品来支持w e b s p h e r e 。 w e b s p h e r e 提供了集群解决方案。该方案能够提供带宽管理、缓存、文件管 理与复制,以及卓越的负载均衡功能。这些特性能够使多个服务器象一个服务器 样的工作,从而可大大增加访问频繁的网站的容量。而系统性能的增强有望进 一步提高向终端用户发送信息的速度。该方案的安全性由i b m 电子网络防火墙 提供保证。两者之间强有力的联合可使单个或分布的网站在降低带宽资源占用、 提高安全性的同时,保证终端用户响应的质量以及站点规模的持续增长。 2 1 3l i n u xv ir t u a ls e r v e r l i n u xv i r t u a ls e r v e r ( l v s ) 是章文嵩博士等人开发的l i n u x 服务器集群 自由软件项目。该项目提出了基于i p 层和基于内容请求分发的负载均衡调度解 决方法,并在l if l u x 内核中实现了这些方法,将一组服务器构成一个具有可伸缩 性的、提供高可用网络服务的虚拟服务器。 l v s 集群采用了i p 负载均衡技术。l v s 中实现负载均衡的技术有三种:基于 n a t 的负载均衡( v s n a t ) ,使用i p 隧道的负载均衡( v s t u n ) ,使用直接路由 的负载均衡( v s d r ) 。l v s 中的调度器实现了八种负载调度算法:轮转调度,加 权轮转调度,最少链接调度,加权最少链接调度,基于局部性的最少链接调度, 带复制的基于局部性最少链接调度,目标地址散列调度,源地址散列调度。l v s 中实现了基于内容请求分发的内核l a y e r 一7 交换机k t c p v s 。l v s 使用相关的集群 管理软件对资源进行监测,能及时将故障屏蔽,实现系统的高可用性。l v s 配备 了主、从调度器,当主调度器故障时,从调度器可以接替工作,进一步地保证了 南京航空航天大学硕士学位论文 系统的高可用性。 l v s 的应用很广泛,它支持可伸缩的w e b ,可伸缩媒体服务,可伸缩c a c h e 服务,可伸缩邮件服务。l v s 服务器集群系统具有良好的伸缩性,可支持几百万 个并发连接。实践证明,l v s 服务器具有优良的可靠性。 由于l v s 集群软件是可以免费得到源代码的自由软件,它得到了较大范围的 应用。很多重负载的站点利用l v s 组成高性能的w e b 服务集群。而r e d h a t , t u r b o l i n u x ,红旗l i n u x ,中软等公司推出了基于l v s 的集群产品。同时,国内 外的许多学术机构也在对l v s 进行进一步的研究开发。 2 1 4 小结 这一小节介绍了三种典型的集群系统。它们实现集群的基本原理是相似的: 在服务器和负载均衡器之间利用串口或者网络传递心跳信号,以此获取集群所有 服务器的运行状态信息:通过软硬件冗余实现故障屏蔽进而实现系统的高可用 性。根据s n m p 协议或者利用a g e n t 测量服务器的负荷,负载均衡器根据一定的 连接调度算法对i p 数据包地址和端口进行重写,实现了负载均衡。经过长时间 的发展之后,这些集群系统实现方案比较完善和成熟,它们可以满足解决一般的 w e b 应用的需要。然而在实际的w e b 应用中,仍有一些问题尚待解决。其一:上 述方案中占用系统软硬件资源较多,且只能运用于特定的操作系统平台。其二: 当系统需要传递大量数据包时,负载均衡器会成为系统的瓶颈,影响系统的性能。 其三:这些方案实现系统高可用性时,只对服务器的某些状态( 如网络,主机是 否故障) 进行监视,对用户自定义的一些关键进程或者不予监视或者监视的方法 过于复杂,影响了高可用性实现的效果。本文对这些问题做了一些探讨和研究, 并尝试给出自己的解决方案。 2 2 负载均衡技术简介 w e b 集群系统利用负载均衡技术将外部发送来的请求均匀分配到对称结构中 的某一台服务器上,由接收到请求的服务器独立地回应客户的请求。均衡负载能 够平均分配客户请求到集群中的各个服务器节点,以减轻单台服务器负担,从而 提高整个系统的效率。负载均衡既可以由有负载均衡功能的硬件实现,也可以通 过一些专用软件与协议来实现。 w e b 集群系统中,负载均衡的效果如何决定于两个关键因素:负载均衡技术 和负载调度算法。这节中介绍了几种常用的负载均衡技术和负载调度算法。 w e b 服务器集群系统的设计与实现 2 2 1 几种常用的负载均衡技术 下面介绍5 种常用的负载均衡技术。 2 2 1 1 基于d n s 技术的负载均衡 最早的负载均衡技术是通过d n s 服务器中的随机域名解析来实现的:在d n s 服务器中,为多个不同的i p 地址配置相同的域名,而查询这个域名的客户机将 得到其中的一个i p 地址。对于同一个域名,不同的客户机会得到不同的i p 地址, 他们也就访问了不同i p 地址上的w e b 服务器,从而达到负载均衡的目的。 d n s 负载均衡的优点是简单、易行,当前使用该技术的网站很多。但是存在 不少问题。首先,域名服务器无法知道服务器结点是否有效,如果服务器结点失 效,域名系统依然会将域名解析到该节点上,造成用户访问失效。其次,为了使 地址的分配均匀,应该将d n s 的数据刷新时间t t l ( t i m et ol i v e ) 设置的尽可 能短,但是t t l 设置得过短,将导致d n s 流量大增,造成额外的网络问题。而且 d n s 轮询不能区分服务器性能的差异,也不能将服务器的当前运行状态和负荷状 况考虑进来,所以服务器之间并不能作到完全的均衡负载。 2 2 1 2 反向代理负载均衡 反向代理( r e v e r s ep r o x y ) 方式是指来自i n t e r n e t 上的客户使用代理服务 器访问处于内部网络上的服务器。反向代理负载均衡将来自外部的连接请求均匀 地转发给内部网络上的各个服务器进行处理,从而均衡了整个系统的负荷。 使用反向代理可以将负载均衡和代理服务器的高速缓存技术结合在一起,提 升静态网页的访问速度。由于外部客户不能直接访问内部的服务器,保证了系统 的安全性。并且可以将负载非常均衡地分给内部服务器,不会出现负载集中到某 个服务器的偶然现象。 使用反向代理负载均衡也有一些问题:第一,反向代理是处于o s i 参考模型 第七层应用的,所以就必须为每一种应用服务专门开发一个反向代理服务器;第 二,每一次代理,代理服务器需要打开对外和对内两个连接,在并发连接请求数 量较大的时候,代理服务器的负载相应地比较大,在最坏的情况下代理服务器会 成为服务的瓶颈。 2 2 1 3 基于n 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 ) 是指在位于局域网内的内部地址和外部 地址之问进行转换,以便具备内部地址的计算机能访问外部网络,外部网络中的 计算机也可以访问内部地址。通过n a t 技术实现负载均衡主要是当n a t 服务器收 到客户端请求后根据一些不同的策略修改请求报文中的目的地址,重定向给“隐 南京航空航天大学硕士学位论文 藏”在n a t 服务器后面的具有不同i p 地址的服务器,服务器返回的响应也经由 n a t 服务器将源i p 地址恢复原样后传给客户端。n a t 技术既可通过软件方式来实 现,也可通过硬件方式( 即交换) 来实现。 n a t 负载均衡是一种比较完善的负载均衡技术,得到了较为普遍的应用。但 是需要注意:由于n a t 负载均衡中请求和响应的数据报文都需要通过负载均衡调 度器,当实际服务器的数量超过2 0 时,负载均衡调度器将成为整个w e b 集群系 统的新瓶颈。在设计w e b 集群系统时应当小心处理避免这种情况的出现。 2 2 1 4 基于i p 隧道的负载均衡 在采用i p 隧道负载均衡技术的w e b 集群系统中,所有客户的访问请求报文 都是发给负载均衡调度器的。当负载均衡调度器接到请求报文后,根据各个服务 器的负载情况,动态地选择台服务器,将请求报文封装在另一个i p 报文中, 再将封装后的i p 报文转发给选出的服务器。服务器收到报文后,先将报文解封 获得原来的报文,处理这个请求,然后将响应报文直接返回给客户。一般情况下, 客户请求报文的数据量比较小,而服务器响应返回给客户的数据报文量比较大。 这样,服务器将响应客户的报文不经过负载均衡服务器直接返回给客户,大幅度 地降低了负载均衡调度器的工作量。因此,负载均衡调度器就可以处理巨量的请 求,而不会成为系统的瓶颈。 2 2 1 5 基于直接路由的负载均衡 在采用直接路由方法负载均衡技术的集群系统中,所有客户的访问请求报文 也是发给负载均衡调度器的。当负载均衡调度器接到请求报文后,根据集群中各 个服务器的负载情况,动态地选择一台负载较轻的服务器。并将数据包中网卡物 理地址( m a c ) 改为选中的w e b 服务器的m a c 地址,然后重新发出数据包。目标 w e b 服务器收到后,将应答包直接发回客户端( 不经过负载均衡调度器) 。由于 在直接路由方式中,服务器不经过负载均衡调度器直接把响应返回给客户,可以 大幅度地降低负载均衡调度器的工作量,整个集群系统的节点数量和网络吞吐量 因而得以极大地提高。直接路由是高效,网络延时小的负载均衡技术,但是,为 达到m a c 地址的欺骗,要求负载均衡调度器和所有应用服务器必须在同个物理 网段。 2 2 2 几种常用的负载均衡调度算法 以下介绍常用的6 种负载均衡调度算法。 2 2 2 1 轮转法 9 w e b 服务器集群系统的设计与实现 使用轮转法时,每一次来自客户的请求轮流分配给内部中的服务器,从1 至 n 然后重新开始。此种均衡算法适合于服务器组中的所有服务器都有相同的软硬 件配置并且平均服务请求相对均衡的情况。该算法倘单方便、易于实现,适用于 集群中所有节点的处理能力和性能均相同的情况。但是这种方法没有将不同服务 器提供服务能力的不同、服务器的负载情况等因素考虑进去,有时负载均衡的效 果不理想。 2 2 2 2 加权轮转法 加权轮转法是在轮转法的基础上,根据服务器的处理能力大小,给它一个相 应的权值。加权轮转法按权值的高低和轮转方式分配请求到各服务器。权值高的 服务器比权值低的服务器处理更多的连接,相同权值的服务器处理相同数目的连 接数。调度器可以自动询问服务器的负载情沉,并动态地调整服务器的权值。这 种算法的效果比轮转法要好。 2 2 2 3 最少连接法 最少连接法对w e b 集群系统中的每一台服务器都要记录它当前正在处理的 连接数量,当有新的服务连接请求时,负载均衡调度器将把当前请求分配给连接 数最少的服务器,使均衡更加符合实际情况,负载更加均衡。此种均衡算法适合 长时处理的请求服务,如f t p 。如果集群中的服务器性能相近时,结果比较理想。 但是,当各个服务器的处理能力相差较大时,该算法的效果不太好。 2 2 2 4 加权的最少连接法 在集群系统中的服务器性能差异较大的情沉下,采用”加权的最少连接法” 分配算法可以优化负载均衡性能。系统根据服务器的处理能力大小,给它一个相 应的权值。加权最小连接调度在调度新连接时尽可能使服务器的已建立连接数和 其权值成比例。系统可以自动询问服务器的负载情沉,并动态地调整服务器的权 值,达到更好的负载均衡效果。 2 2 2 5 地址散列调度法 地址散列调度法可以分为源地址散列调度法和目标地址散列调度法。源地址 散列调度用请求的源i p 地址作为散列键,从散列袭中找出对应的服务器,将请 求发送到该服务器。源地址散列调度可以应用于u d p 连接。而目标地址散列调度 算法把请求的目标i p 地址作为散列键( h a s hk e y ) ,从散列表中找出对应的服务 器,将请求发送到该服务器。目标地址散列调度法适用于w e bc a c h e 集群。 2 2 2 6 最快响应法 南京航空航天大学硕士学位论文 使用最快响应法时,负载均衡调度器设备对w e b 集群的每个服务器发出一个 探测请求( 例如i c m p 包) ,并将下一个到达的连接请求分配给响应时间最短的节 点。这种方法是高级均衡基于拓扑结构重定向用到的主要方法。 在这一小节中介绍了w e b 集群系统中常用的负载均衡技术和负载均衡调度 算法。在实践中,采取何种负载均衡技术和负载均衡调度算法要根据w e b 集群系 统的具体情况而定。在n e n w c 系统中,负载均衡器、w e b 服务器、客户均处于同 一局域网中,服务器与负载均衡器之间的数据传输延迟很小,并且每个w e b 服务 器的性能不一定相同。根据这些特点,轮转法或最快响应法均衡的效果不好。而 我们认为w e b 的t c p 连接数并不能够全面地反应服务器的负载程度,需要全面地 考虑c p u 的利用率,内存的使用率等参数。因此n e n w c 系统采用了动态的负载均 衡方法:每个w e b 服务器实时地将本机的各项负荷参数传递给负载均衡器,负载 均衡器根据这些实时负荷参数和每台w e b 服务器的处理能力分配任务。 2 3 高可用性技术简介 2 3 1 定义 计算机系统的可用性( a v a i l a b i l i t y ) 是通过系统的可靠性( r e l i a b i l i t y ) 和 可维护性( m a i n t a i n a b i l i t y ) 来度量的。工程上通常用平均无故障时间( m t t f ) 来 度量系统的可靠性,用平均维修时间( m t t r ) 来度量系统的可维护性。于是可用 性被定义为:m t t f ( m t t f + m t t r ) * 1 0 0 。通常认为当计算机系统的年故障时间小 于5 2 6 分钟,系统可用达到9 9 9 9 时,计算机系统具备了高可用性。 在具备了高可用性的w e b 服务器集群系统中,通过软硬件冗余的方法,使得 多台服务器可以完成相同的任务。同时,系统中有一个控制部件实时检测系统中 的每一个服务器节点。如果一个w e b 服务器出现故障了,系统会对客户端屏蔽掉 故障的服务器,用户将自动访问运行正常的服务器。而所有这些监测切换的工作 对用户都是透明的,对用户的业务是连续的并且具有持续可用的特性,即具有7 2 4 的可用性。系统在一年之内可达9 9 9 9 可用性。 2 3 2 三种工作模式及其工作原理 高可用w e b 集群可以分为三种工作模式: 双机热备份模式:w e b 集群系统中有两台服务器,这两台服务器上都配置了 服务需要的软硬件,可以独立提供服务。应用服务系统的关键数据存放在共享存 储系统中,工作机和备份机数据的一致性通过共享存储系统方式解决。正常情况 下,一台服务器是工作机,另一台服务器为备份机。工作机在为信息系统提供服 务时,备份机在监视工作机的工作:当工作机出现故障,不能对前端客户提供服 w e b 服务器集群系统的设计与实现 务时,备份机接管工作机的应用,继续为客户端提供正常服务,从而保证w e b l 疆 务的不间断。待工作机恢复正常运行后,按使用者的设定以自动或手动方式将服 务切换到工作机上运行。 双机互备援模式:w e b 集群系统中有两台服务器,应用服务系统的关键数据 存放在共享存储系统中。正常情况下,二台服务器均为前端客户提供各自的应用 服务,并互相监视对方的运行情况;当一台服务器出现故障情况,不能对客户端 提供正常服务时,另一台服务器将接管对方的应用,继续为客户端提供正常
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广告管理案例评析(一)
- 2025年工业互联网平台TEE在智能工厂设备维护中的应用分析报告
- 搅拌站业务人员管理制度
- picc管维护管理制度
- 山西村集体用工管理制度
- 三级子公司工资管理制度
- 学院图书馆采编管理制度
- 2025年福建省中考道德与法治真题(解析版)
- 星级管理动态管理制度
- 为规范公司印章管理制度
- 事业单位招聘考试《工程建设管理专业知识》真题汇总及答案【含解析】
- 文献整理表格
- 初一几何综合练习题
- DBJ∕T 13-261-2017 福建省二次供水不锈钢水池(箱)应用技术规程
- GB∕T 16422.3-2022 塑料 实验室光源暴露试验方法 第3部分:荧光紫外灯
- 中国历史地理复习资料
- 05示例:玉米脱粒机的设计(含全套CAD图纸)
- 冷库项目施工组织设计方案
- 年中总结会策划方案
- (最新)污水处理池施工方案
- 肺脓肿护理查房ppt课件
评论
0/150
提交评论