(计算机应用技术专业论文)web负载均衡技术研究与实现.pdf_第1页
(计算机应用技术专业论文)web负载均衡技术研究与实现.pdf_第2页
(计算机应用技术专业论文)web负载均衡技术研究与实现.pdf_第3页
(计算机应用技术专业论文)web负载均衡技术研究与实现.pdf_第4页
(计算机应用技术专业论文)web负载均衡技术研究与实现.pdf_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

摘要 摘要 互联网应用的蓬勃发展对大型网站提出了越来越高的要求,这些站点不仅要 处理大量的并发请求,而且还要实现“2 4 * 7 的业务不问断运行。要满足这样的 需求,单纯提高网站服务器的c p u 、内存、网络等硬件配置是远远不够的。各种 w e b 负载均衡技术的出现,使得构筑一个高性能价格比、高可靠性、具有可伸缩 性的以及可管理性的大型站点成为了可能。因此,负载均衡理论和方法一直是计 算机技术研究领域的一个热点。 本文的目的就在于研究负载均衡的基本理论和方法,剖析目前常用负载均衡 技术中存在的问题,并在l i n u x 操作系统上设计和实现一个精确分发、高效率的负 载均衡软件。 本文首先概要介绍了w e b 技术以及w e b 负载均衡技术的基本理论、几种常见的 负载均衡系统,以及在l i n u x 系统上研究和实现一个负载均衡系统所涉及到的理论 和技术,接着剖析一个开源的负载均衡项目t c p h a 的具体实现,尤其是该项目中 的t c p 迁移技术实现方法。在分析了一般的i p 层负载均衡系统所存在的问题之后, 以t c p h a 为原型,实现了一个“基于插入c o o k i e 和t c p 迁移技术的负载均衡系统 , 之后对此系统进行了改进,提出了一个“具有负载动态反馈和m o n i t o r 的负载均衡 系统 。本文在结束部分对整个研究工作进行了总结,并分析了所实现的负载均 衡系统中需要进一步解决的问题,最后对负载均衡技术的发展进行了展望。 关键词:w e b 负载均衡超文本传输协议c o o k i e 插入t c p 迁移负载动态反馈 a b s t r a c t i i i a b s t r a c t t h e e n t e r p r i s ew e b s i t e sh a v e b e e nc h a l l e n g i n gb yt h ei n c r e a s i n gp o p u l a r i t yo f c o l o r f u li n t e r n e ts e r v i c e s i na d d i t i o nt ow e l ls e r v i n gaf l o o do fc o n c u r r e n tr e q u e s t sf r o m c l i e n t si naf e ws e c o n d s ,t h e s es i t e sa r ea l s or e q u i r e dt or u nb u s i n e s su n i n t e r r u p t e d l yo n 2 4 7b a s i s h o w e v e r ,o n l yi m p r o v i n gt h es e r v e rh a r d w a r e ,s u c ha sc p u ,m e m o r ya n d n e t w o r k ,i sf a rf r o mm e e t i n g t h i sr e q u i r e m e n t t h ee m e r g i n go ft h ew e bl o a d b a l a n c i n g ( l b ) s y s t e m se n a b l e st h ec o n s t r u c t i o no fe n t e r p r i s es i t e sw i t hh i g h p e r f o r m a n c e p r i c er a t i o ,h i g hr e l i a b i l i t y ,h i g hs c a l a b i l i t ya n dh i g hm a n a g e a b i l i t y t h u s , al o to fi n t e r c s t sg oi n t ot h er e s e a r c ho fl bt h e o r ya n di m p l e m e n t a t i o n t h eo b j e c t i v e so ft h i st h e s i sa l es t u d y i n gt h ep r i n c i p l ea n dm e t h o do fl bt e c h n o l o g y , f i n d i n gt h ed e f e c to ft h ea v a i l a b l es o l u t i o n s ,t h e nd e s i g n i n ga n di m p l e m e n t i n ga nl b s y s t e mw i t i lm o r ep r e c i s el o a dd i s p a t c h i n ga n dh i g he f f i c i e n c yu n d e rl i n u x t h i st h e s i sf i r s to u t l i n e st h ew e b t e c h n o l o g y ,t h ep r i n c i p l e sa n ds e v e r a l i m p l e m e n t a t i o n so ft h ew e bl b ,a n dt h e nd i s c u s s e st h er e l a t e dt h e o r i e sa n d t e c h n o l o g i e s ,w h i c ha r en e c e s s a r y t os t u d ya n di m p l e m e n ta nl bs y s t e mu n d e rl i n u x l a t e r ,a no p e ns o u r c el bs o f t w a r et c p h a i sw e l ls t u d i e d ,e s p e c i a l l yh o wt c p m i g r a t i o ni si m p l e m e n t e d i no r d e rt os o l v eo n ep r o b l e mt h a te x i s t si nt h ec u r r e n t i p 1 a y e rl bs y s t e m s ,an e wo n e ,w h i c hi sb a s e do nt c p h a ( t c pm i g r a t i o n ) a n d c o o k i ei n s e r t i o n ,i sp r e s e n t e d t h e n ,w ei m p r o v ei tb ya d d i n gad y n a m i c l o a d - f e e d b a c k f e a t u r ea n dam o n i t o rg u i i nt h ee n d ,t h ew h o l er e s e a r c hw o r ki ss u m m a r i z e d ,a n dt h e f u r t h e ri m p r o v e m e n to ft h el bs y s t e mi sd i s c u s s e d k e y w o r d s :w e b l o a db a l a n c i n gh t t pc o o k i ei n s e r t i o nt c p m i g r a t i o n d y n a m i c l o a d - f e e d b a c k 西安电子科技大学 学位论文独创性( 或创新性) 声明 秉承学校严谨的学分和优良的科学道德,本人声明所呈交的论文是我个人在 导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标 注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成 果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的 材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说 明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切的法律责任。 本人签名: 日期 西安电子科技大学 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。学校有权保 留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内 容,可以允许采用影印、缩印或其它复制手段保存论文。同时本人保证,毕业后 结合学位论文研究课题再撰写的文章一律署名单位为西安电子科技大学。 本人签名: 导师签名: 日期 日期 第一章绪论 第一章绪论弟一早三百y 匕 1 1 研究背景 在过去的二十年间,i n t e m e t 从连接若干教育和科研机构的、为信息共享而建 立的网络,发展成为了拥有大量应用和服务的社会全员参与的全球性的网络,它 已经成为了人们生活中不可缺少的一部分。 据i n t e m e ts y s t e m sc o n s o r t i u m 统计,截至2 0 0 7 年7 月,i n t e m e t 上的主机数达到 4 8 9 ,7 7 4 ,2 6 9 台 。图1 1 显示了从1 9 9 4 年到2 0 0 7 的增长情况。 6 0 n 0 0 n 0 0 0 5 0 n 0 邮,0 0 0 4 0 0 ,0 0 n 0 0 0 3 0 0 ,0 0 n 0 0 0 2 0 0 0 0 0 ,0 0 0 1 0 0 , 0 0 0 0 0 0 0 i n t o m e td o m a i ns u r v e yh o s tc o u n t 薹薹董薹写薹蔓;蔓 善蓦 蔓蔓薹111 11 - _ s a u c e - 1 a t e m e ts l , z t e mc o m m t k ii - - _ 融_ m 图1 1i n t e m e t 上主机数目的增长 2 0 0 7 年1 月2 3 日,中国互联网络信息中心公布了第1 9 次中国互联网络发展状 况统计报告1 2 j 。在这份报告中显示,中国网民总人数已达1 3 7 亿人,与2 0 0 6 年7 月第1 8 次统计报告中的1 2 3 亿人相比,仅仅半年时间新增的网民达1 4 0 0 万人。 本次调查结果显示,中国的上网计算机总数已达5 9 4 0 万台,与去年同期相比, 增加了9 9 0 万台,增长率为2 0 o ,如图1 2 所示,可见中国上网计算机总数始终保 持增长态势。在这些上网的计算机中,通过宽带接入互联网的计算机数为4 1 2 0 万 台,在全部上网计算机中所占比例达6 9 4 。可见,中国互联网步入高速增长的宽 带时期。 尤其在近两年,以b l o g 、r s s 、w i l d 、t a g s 、b o o k m a r k 以及s n s ( 社会性网络) 等为核心的w e b2 0 应用的蓬勃发展,吸引了更多的人参与到了w e b 活动当中,使 得互联网行业异常繁荣。 大量的网络用户给热门网站带来了巨大的访问量,比如,g o o g l e 每天处理2 亿 以上搜索请求。服务器要处理很多网页,g o o g l e 检索网页数量达3 3 亿;根据y a h o o 2 w e b 负载均衡技术研究与实现 的数据显示,y a h o o 每天发送6 2 5 亿页面。与此同时,很多网络服务因为访问次数 爆炸式地增长而不堪重负,不能及时处理用户的请求,导致用户等待时间过长, 大大降低了服务质量。 图1 2 历次调查上网计算机总数 除了巨大的访问量,大型网站还必须提供每天2 4 d x 时、每周7 天的不间断服务, 这种业务运行的连续性对电子商务类网站尤为重要,因为即使短暂的服务中断或 者是小量的数据丢失,都会造成直接的经济损失。这些要求对网络服务的可靠性 是一个挑战。另外,现在w e b 服务中越来越多地使用c g i 、动态页面以及音视频等 c p u 密集型、i o 密集型的应用,这对服务器的性能提出了很高的要求。 由此可见,为了满足i n t e m e t 的高速发展,为了给访问站点的用户带来更好的 服务和体验,就需要建设和维护一个高性能、高可靠性的网络站点。然而,要达 到这个目的,仅仅靠提高网站服务器的c p u 、内存、网络等硬件配置并不能满足 需求。因此,各种负载均衡技术就应运而生了。 1 2 问题的提出及研究现状 要使用负载均衡系统构筑一个能够满足大规模请求、可以连续性运行的网络 应用,需要达到高性能价格比、高可靠性、高伸缩性以及可管理性等多方面的要 求,其中负载均衡技术是关键。 典型的负载均衡系统一般由三个部分组成:处于前端的负载均衡器、由几十 台甚至数百台的计算机组成的后端服务器池以及共享存储系统。这些后端服务器 并不需要是配置很高的专用机,甚至可以是一般的p c 机,这使得系统的成本大大 降低。这些负载均衡系统使用不同策略和技术,将用户的请求均匀地分发到各个 后端服务器上,各台服务器并行处理不同用户的请求,使得整个网站有很快的响 应速度。同时,这种松散耦合的结构也使得整个系统有很高的可靠性和可维护性: 一台服务器的失效几乎不会对整个系统产生影响。 第一章绪论 目前的负载均衡系统既有商用的产品,也有源代码开放的免费系统。一般商 用的负载均衡系统价格都相当昂贵,其中有些是采用硬件形式实现的,可扩展性 并不是很好。 从采用的技术来说,常见的负载均衡系统有基于应用层和基于i p 层等几类。一 些应用层负载均衡系统采用了数据转发的方法,这样虽然实现起来比较简单,但 是性能比较低。目前的i p 层负载均衡系统一般是以客户端的i p 地址为粒度进行任务 调度的。然而,在现实应用中,有大量的用户是通过n a t 或者p r o x y 上网的,在这 种情况下,负载均衡器若以i p 为依据进行调度往往会造成任务分配不均。一些负载 均衡系统没有考虑到后端服务器可用处理能力的动态特性,因而会影响整个系统 的性能。此外,这些负载均衡系统也没有提供一个方便集中监视和操作整个系统 的g u i 工具。因此,需要研究和实现一种具有高性能价格比,并且能实现均匀和 精确分发、操作方便的负载均衡系统。 负载均衡技术从问世之初到现在,经历了很大的发展,先后出现了很多实现 形式和原理各异的产品。n c s a 的可伸缩的w e b 服务器系统是最早的基于r r - d n s ( r o u n d r o b i nd o m m n n a m es y s t e m ) 的系统【3 】。虽然r r d n s 是一种简单可行、成本 较低的负载均衡方法,但是由于d n s 缓存等原因,这种方法会造成分发不均甚至 客户访问服务失效等问题。b e r k e l e y 的s m a r tc l i e n t 是一种利用在客户端运行的 a p p l e t 来实现负载均衡的技术【4 】,这种方法的透明性不好,也不具有普遍性。基于 i p 层的负载均衡系统有b e r k e l e y 的m a g i c r o u t e r 、c i s c o 的l o c a l d i r e c t o r 、i b m 的t c p r o u t e r 等。应用层负载均衡产品的典型代表有z e u s 负载调度器、p w e b 、 r e v e r s e p r o x y 以及s w e b 等。 l v s ( l i n u xv i r t u a ls e r v e r ) t 5 】是由章文嵩博士发起的一个基于l i n u x 的开源的负 载均衡系统,它分别实现了i p 层和应用层的负载均衡。t c p h a ( t c ph a n d o f f ) 1 6 1 是 l v s 的一个子项目,它基于t c p 迁移技术实现了应用层的负载均衡。 文献 7 】介绍了一种多前端并行负载均衡技术,这种技术使用集线器将多台负 载均衡器集连,用于消除单一均衡器的性能瓶颈。 文献【8 】介绍了一个无负载均衡器的l i n u x 高可用负载均衡集群系统。 文献【9 】在l v s 的基础上,实现了一个动态反馈的负载均衡系统。 文献 1 0 】提出了一种基于遗传算法得出最优任务分发方案的负载均衡系统。 1 3 论文主要工作及章节安排 本文的工作主要是研究了负载均衡系统的基本理论和几种常见负载调度技术 的原理和实现方法,阐述了一般的负载均衡系统存在的问题,在仔细分析了一个 应用层负载均衡系统的具体实现的基础上,提出了解决方法,最后在l i n u x 上实现 4 w e b 负载均衡技术研究与实现 了一个基于“插入c o o k i e ”和“t c p 迁移技术的带有负载动态反馈功能和监视客 户端的负载均衡系统。 本文各章节内容安排如下: 第一章首先阐述了负载均衡技术的研究背景,以及目前国内外该领域的研究 现状,最后介绍了本文的主要研究工作和各章节内容安排。 第二章介绍了w e b 技术、负载均衡技术的基本理论以及几种常见的负载均衡技 术。 第三章首先分析了在l i n u x 操作系统上研究负载均衡技术的优势,然后介绍了 在l i n u x 上研究和实现负载均衡系统需要用到一些基本理论和关键技术。 第四章分析了一般i p 层负载均衡技术存在的问题,提出了解决方法,并详细介 绍了整个系统的原理、体系结构和实现方法,最后介绍了实验环境的搭建、实验 方法和实验结果。 第五章在第四章实现的负载均衡系统的基础上,增加了“负载动态反馈”和 “集中监控功能,详细阐述其基本原理和实现方法。最后介绍了实验方法和实 验结果。 第六章是对本文的总结,并介绍了需要进一步研究和解决的问题。 第二章w e b 负载均衡技术 5 第二章w e b 负载均衡技术 2 1 1w e b 的基本概念 2 1w e b 技术 万维网( w o r l dw i d ew e b ) ,简称为w e b ,它是一个通过i n t e m e t 访问的互相链接 的超文本文档的系统【1 1 1 。通过w e b 浏览器,可以查看包含文本、图片、视频以及 其它多媒体内容的网页,并且可以通过超链接( h y p e r l i l l l ( ) 很方便地在不同的网页间 跳转。w e b 是在1 9 8 9 年由c e r n 的t i mb e m e r s l e e 发明的,此后w e b 技术有了很大 的发展。 w e b 系统主要由以下三个部分组成: 1 用户代理( u s e ra g e n t ) :发出h t t p 请求的客户,包括w e b 浏览器、网络蜘 蛛( s p i d e r ) 以及其他终端用户的工具,其中w e b 浏览器是用于显示w e b 页面 的软件,它也允许用户与页面中的元素进行交互。常见的浏览器有 m i c r o s o f ti n t e m e te x p l o r e r 、m o z i l l af i r e f o x 和n e t s c a p en a v i g a t o r 等。 2 原始服务器( o r i g i n a ls e r v e r ) - 存储网页资源并响应请求的服务器。常用的 w e b 服务器这个术语可以有两种含义:可以指w e b 服务器软件,即用于接 受来自w e b 浏览器的h t t p 请求,并发回所请求的数据( 女i i h t m l 文本以及 包含的各种文档) 的计算机软件;也可以指运行w e b 服务器软件的计算机。 w e b j 艮务器软件监听着w e b 服务端口( 典型的端口是t c p8 0 端口) ,等待着 h t t p 请求的到来。常见的w e b 服务器软件有m i c r o s o f ti n t e m e ti n f o r m a t i o n s e r v i c e s ( i i s ) 、a p a c h e 等。 3 中间结点( i n t e r m e d i a r i e s ) :处于用户代理和原始服务器之间的一些结点, 比如代理服务器( p r o x y ) 、网关( g a t e w a y ) 以及隧道( t u n n e l ) 等。 2 1 2w e b 访问的工作原理 要访问一个网页,既可以在w e b 浏览器的地址栏中输入u r l ,也可以点击页面 上的超链接。此后,浏览器就会跟服务器进行一系列的网络数据包的交互,最后 再将页面显示出来。 首先,浏览器向d n s 服务器发, q 4 , d n s 请求,以获得待访问的服务器域名对应 的i p 地址。有t i p 地址之后,浏览器就向该服务器发出s y n 报文,用来发起t c p 连 6w e b 负载均衡技术研究与实现 接请求。通过三次握手【1 3 l ( t h r e e w a yh a n d s h a k e ) 之后,浏览器就跟该服务器建立了 t c p 连接。 浏览器按照h t t p 协议,通过该连接向服务器发送一个h t t p 请求报文( 如果该 网站之前在客户端设置了c o o k i e ,那么c o o k i e 信息也会作为h t t p 请求报文的头部 的一部分,发送给服务器) 。对于一个典型的网页,浏览器一般首先请求h t m l 静 态文本,获得该文本之后对其进行解析,然后再依次向服务器请求其中所包含的 图片等其它文件。服务器根据h t t p 协议,向浏览器发回h t t p 响应报文。如果服 务器要在客户端设置c o o k i e ,那么h t t p 响应报文的头部就会有相应的项。 重复上述的步骤,浏览器从w e b 服务器获得了该页面包含的相关文件后,就可 以按照h t m l 、c s s 和其它的w e b 语言和规范将页面显示出来。 2 1 3w e b 访问的特点 要研究w e b 负载均衡,需要了解w e b 访问的特点,这包括w e b 访问的个体行为 特征和整体特征。 单个用户的w e b 访问可以分为会话、t c p 连接、会话组、浏览过程等四个层次, 如图2 1 所示。 图2 ,1w e b 访问的层次关系 1 会话:即单个h t t p 请求响应对( r e q u e s t r e s p o n s ep a i r ) 。 2 t c p 连接:一个完成h t t p 请求响应对的t c p 连接。 3 会话组:一个用户访问一个站点的完整的行为。会话组从用户访问该站点 的第一个网页资源开始。 4 浏览过程:个单独的w e b 用户使用一台计算机,通过w e b 浏览器访问 i n t e m e t 上的w e b 站点。在每一个浏览过程中,用户可以在任意的时间访问 多个不同的站点。 w e b 访问的整体特征,表现为对一个站点的访问是来自地理上分布的不同w e b 用户,并且每个w e b 用户的访问是相互独立的,这个整体特征正是大量独立的w e b 第二章w e b 负载均衡技术 访问的叠加效果的体现。 2 1 4h t t p 协议 超文本传输协议( h y p e r t e x tt r a n s f e rp r o t o c o l ,h t t p ) 是一个用来传输i n t r a n e t 和 w e b 上的信息的协议【1 2 1 。它原来的用途是发布和获取超文本页面,现在可以传输 任意类型的数据对象,一个h t t p 数据包所传输的对象的具体类型由其头部的 c o n t e n t t y p e 字段标示出来。h t t p 协议基于客户机月艮务器( c l i e n t s e r v e r ,c s ) 模型, 采用了请求问答模式:浏览器按照h 1 v r p 协议发出请求,当服务器接到请求后,按 照协议规范给予相应的响应信息。 虽然现在h t t p 协议广泛地应用在i n t e m e t 上,但是h t t p 协议并不仅仅局限于 使用t c p i p 和它的相关支撑协议。事实上,h t t p 协议可以在i n t e m e t 或者其他网络 的任何协议之上实现,只要这个协议能够提供可靠的传输服务即可。 h t t p 是一个无状态( s t a t e l e s s ) 的协议,指的是服务器不需要保持用户在各个请 求之间的状态信息。然而,现实应用中却需要维护用户的状态,比如当一个服务 器想对一个用户定制地显示信息,于是就出现了一些技术来达到这个目的,如 c o o k i e 、服务器端会话、隐藏变量以及u r l 中的参数等等。 h t t p 协议经过了几个版本的发展,现在普遍使用的是h t t p 1 1 。在h t t p 0 9 和1 0 中,每一个请求响应对之后,连接就关闭了。h t t p 1 1 引入了持久连接 f p e r s i s t e n tc o n n e c t i o n ) ,使得一条连接可以被重复地使用,以完成若干个请求。持 久连接减少了访问延迟,这是因为客户端不需要频繁地和服务器重新建立t c p 连 接。 h t t p 1 1 的请求信息包含以下内容: 请求方法请求u r lh 丌p 版本号 一些h e a d e r ,比如“a c c e p t - l a n g u a g e :e n 一个空行 可选的消息体 “请求方法 指的是对指定资源要采取的动作,h t t p 定义了g e t 、p o s t 、 h e a d 、p u t 、d e l e t e 、t r a c e 、o p t i o n s 、c o n n e c t 等八种方法。 g e t 是w e b 访问中使用最多的方法,它用来获取指定的资源,比如h t m l 文本、 图形文件等。g e t 方法,以及h e a d 、o p t i o n s 和t r a c e 方法,都只是用来获取 信息,不会改变服务器的状态,因而被称为安全方法( s a f em e t h o d ) 。另一个常用的 方法是p o s t ,它用来提交数据给指定的资源进行处理,提交的数据包含在h t t p 请求报文的消息体内。 h t t p 响应包含以下内容: 8w e b 负载均衡技术研究与实现 h t t p 版本号状态码原因叙述 一些h e a d e r 一个空行 可选的消息体 其中的状态码是一个表示h t t p 请求执行结果的数字串,原因叙述是该状态码 对应的英文短语。比如“2 0 0o k ”表示h r t p 请求成功完成,“4 0 4n o tf o u n d 表 示指定的资源没有找到。 下面是一个访问m 删g o o g l e c n 的例子,它显示了一次访问当中,h t t p 请求和 响应的头部所包含的基本内容。 浏览器发出的h t t p 请求报文的头部: g e 。r h i ”i w l 1 a c c e p t :i m a g e g i f , i m a g e x x b i t m a p ,幸 a c c e p t - l a n g u a g e :z h - c n a c c e p t - e n c o d i n g :g z i p ,d e f l a t e u s e r - a g e n t :m o z i l l a 4 0 h o s t :w w w g o o g l e c a c o n n e c t i o n :k e e p a l i v e 图2 2h r r p 请求报文的头部 服务器返回的报文的头部: h t t p 1 12 0 0o k c a c h e c o n t r o l :p f i v a t e c o n t e n t - t y p e :t e x t h a t m l ;c h a r s e t = u t f - 8 c o n t e n t - e n c o d i n g :g z i p s e r v e r :g w s t r a n s f e r - e n c o d i n g :c h u n k e d d a t e :f r i 2 1d e c2 0 0 70 8 :5 9 :5 9g m t 图2 3h t t p 响应报文的头部 2 2 负载均衡概论 负载均衡就是把任务在多个计算机、进程、磁盘或者其他资源中间进行分配 以获得最优的资源利用率,降低计算时间f 1 4 j 。w e b 负载均衡指的是把到达一个站 点的w e b 请求均匀地分发给多个后端w e b h 艮务器,提高网站的响应速度。 一般来说,w e b 负载均衡系统要建立在现有网络结构之上,提供一种廉价、有 效而透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理 能力、提高网络的灵活性和可用性。 在互联网上,流量较大的网站一般都使用了负载均衡技术。负载均衡系统一 第二章w e b 负载均衡技术 9 般可以通过硬件、软件或者二者的结合来实现。 一个负载均衡系统应该满足的要求和具备的功能有【l 5 j : 负载均衡系统的结构甚至它是否存在,对于客户端应该是透明的,即客户 端访问系统提供的服务时,不知道也不用关心其内部的实现; 能够截获到达站点的网络数据包; 按照一定的策略,把请求转发给某一台服务器; 通过部署多台服务器以提供冗余; 监控各台服务器的状态:如果它们失效,则把它们从服务器列表中删除。 2 2 1 本地和全局负载均衡 考虑到w e b 访问本身的地理上分布的特点,w e b 负载均衡可以分为本地负载均 衡( l o c a ll o a db a l a n c i n g ) 和全局负载均衡( g l o b a ll o a db a l a n c i n g ) 。本地负载均衡指 对本地的服务器群进行负载均衡,全局负载均衡是指对放置在不同的地理位置、 网络结构可能不同的服务器群间进行负载均衡。一个全局负载均衡系统可以通过 d n s 或者 b g p 协测1 6 l ( b o r d e rg a t e w a yp r o t o c 0 1 ) 等技术手段来实现。 由于w e b 用户分布在世界各地,通过地理分布的服务器让用户就近访问,可以 节省网络流量,提高响应速度。另一方面,如果只使用本地负载均衡,把站点的 全部设备都放在一个机房或者大楼里,这是不安全的,因为如果遭遇地震、火灾 等大型灾害的话,整个站点可能会被毁灭。通过全局负载均衡,把站点的数据和 服务器分布到全国甚至是世界的不同地方,就大大地提高了网站的抗灾能力。 本文主要研究本地负载均衡系统。这种系统往往都是部署在一个高性能网络 或者局域网中,并通过负载均衡集群这种结构实现的。 2 2 2 负载均衡集群 集群( c l u s t e r ) ,简单地说,就是一个由一组独立计算机和连接它们的网络组成 的本地计算系统,它作为一个整体向用户提供一组网络资源。这些单个的计算机 称作集群的节点( n o d e ) 。一个理想的集群是,用户从来不会意识到集群系统底层的 节点,在他们看来,集群是一个系统,而非多个计算机系统,该系统为用户提供 高可靠性的服务,当集群系统进行增加和删减等维护时,不影响整个系统的工作。 集群可以分为三类:高可用性集群、负载均衡集群以及超级计算集群【l 。负 载均衡集群的目的是提供与节点个数成正比的负载能力,将系统的整体负载合理 地分配到各个节点上,使得每个节点都不会因为超负荷工作而崩溃;并且当系统 整体负载需求大于系统整体负载能力时,可以通过增加系统节点,平滑地拓展系 1 0 w e b 负载均衡技术研究与实现 统负荷能力。由此可见,这种集群非常适合具有较大访问量的w e b l 艮务。l i n u x 系 统上的负载均衡集群软件有t u r b o l i n u xc l u s t e rs e r v e r 、l i n u xv i r t u a ls e r v e r 等。 集群带来的优点有: 高性价比:组成集群的p c 或者r i s c 计算机( r e d u c e di n s t r u c t i o ns e tc o m p u t e r ) 以及所使用的网络设备价格一般不高,因而这种松耦合结构比紧耦合的多 处理器系统具有更高的性能价格比。 可伸缩性:集群中的节点数目可以很方便地进行增长,其伸缩性远超过单 台超级计算机。 高可用性:在硬件和软件上都有冗余,通过检测软硬件的故障,将故障屏 蔽,由存活节点提供服务,可实现高可用性。 2 2 3w e b 负载均衡系统的性能评价 评价一个w e b 负载均衡系统的常用的性能指标包括每秒钟可以处理的最大连 接数( c o n n e c t i o n sp e rs e c o n d ) 、最大并发连接数( t o t a lc o n c u r r e n tc o n n e c t i o n s ) 、数据 吞吐量( t h r o u g h p u t ) 等。 每秒钟最大连接数,指的是负载均衡系统在一秒钟之内能处理的连接的最大 数。它是最重要的一个性能指标,尤其是对于处理h t t p 数据包的系统而言,这是 因为建立和关闭一个t c p 连接需要耗费相当多的网络和处理机资源,这些操作对于 负载均衡系统来说是一个沉重的负担。 最大并发连接数表明一个负载均衡系统能处理的并发t c p 连接的最大数目。这 个指标取决于负载均衡器为处理这些请求在内核中分配的内存以及网络接口设备 的内存数量等因素。 数据吞吐量指的是一个负载均衡系统在单位时间内能够处理的网络流量,通 常用m b p s ( m e g a b i t sp e rs e c o n d ) 来衡量。由于网络数据都会被底层协议分割成小的 数据包( p a c k e t ) ,所以数据吞吐量可以表示为数据包净荷大d x ( p a c k e tp a y l o a ds i z e ) 与数据包的发送速率( p a c k e tt r a n s m i s s i o nr a t e ) 的乘积。 2 3 几种负载均衡技术 2 3 1 基于d n s 解析的负载均衡 d n s 轮转( r o u n dr o b i nd n s ,r r - d n s ) 是一种较早出现的负载均衡技术,如 n c s a 的可伸缩的w e b 服务器系统。它的基本原理是巧妙地利用了d n s 的一个特 性,即允许将多个i p 地址关联到一个域名。这样,当客户机访问该网站的时候, 第二章w e b 负载均衡技术 d n s 系统就可以轮流地返回该网站的域名对应的多个i p 地址中的一个,从而使得众 多客户机访问不同的服务器,达到了负载均衡的目的。 在w i n d o w s 系统当中,可以通过p i n g 命令观察这种r r - d n s 的效果。下面以 w 、a r w s i n a c o r n 为例进行试验,具体方法是间隔一段时间,先后执行三次“p i n g w w w s i n a c o r n 命令。图2 4 是得到的一组结果。 c a d o c u m e n t sa n ds e t t i n g s a d m i n p i n gw w w s i n a c o m r e p l yf r o m2 0 2 2 0 5 3 1 4 3 :b y t e s = 3 2t i m e = 1 8 m st t l = 5 3 c :l d o c u m e n t sa n ds e t t i n g s a d m i n p i n gw w w s i n a c o r n r e p l yf r o m2 0 2 2 0 5 3 1 3 0 :b y t e s = 3 2t i m e = 1 7 m sr r l = 5 3 c :d o c u m e n t sa n ds e t t i n g s a d m i n p i n gw w w s i n a c o r n r e p l yf r o m2 0 2 2 0 5 3 1 4 2 :b y t e s = 3 2t i m e = 2 9 m st t l = 5 3 图2 4p i n g 命令的运行结果 由此可见,d n s 系统返回的i p 地址在变化。 通过n s l o o k u p 命令,我们就可以看到该域名“w w w s i n a c o r n 对应了三个i p 地 址,如图2 5 所示。 c :d o c u m e n t sa n ds e t t i n g s k a d m i n n s l o o k u pw w w s i n a c o m n o n a u t h o r i t a t i v ea n s w e r : n a m e : j u p i t e r s i n a c o r n c n a d d r e s s e s :2 0 2 2 0 5 3 1 4 3 ,2 0 2 2 0 5 3 1 3 0 ,2 0 2 2 0 5 3 1 4 2 a l i a s e s : w w w s i n a t o m ,u s s i n a t o m e l l ,n e w s s i n a c o m c n 图2 5n s l o o k u p 命令的运行结果 r r d n s 确实是一种简单可行、成本较低的负载均衡方法,但是它却存在很多 缺点。首先,由于d n s 缓存( d n sc a c h i n g ) 的存在,会造成负载不均衡。d n s 系统 是一个具有层次结构的分布式系统,从用户到i 湛d n s 服务器之间往往存在多台域 名服务器,而它们一般都会缓存已解析的域名至t j i p 地址的映射,这就会导致该域名 服务器下的所有用户都会通过该i p 地址访问该网站的同一个服务器,从而出现不同 服务器间的负载不平衡。虽然可以通过设置域名至j j i p 映射的t t l ( t i m et ol i v e ) 来缓 解这个问题,然而,如果将该值设置得过小,又会导致本地域名服务器频繁地向 l * d n s 服务器提交请求,增加了域名解析的网络流量,这样会使得r r d n s 成为 系统中一个新的性能瓶颈。其次,这种负载均衡系统的可靠性和可维护性不好。 若其中一个i p 对应的服务器失效,会导致将域名解析到该服务器的所有用户看到网 站的服务中断。同样,即使给系统增加了服务器且修改了d n s 记录以加入新服务 器对应的i p ,这种维护也不能很快地取得效果,这还是由于d n s 缓存的存在而造成 的,也就是说,只有d n s 系统中各个服务器所保存的该域名到旧i p 的映射过期后, 客户机才有可能被分配到新的服务器上。 1 2 w e b 负载均衡技术研究与实现 2 3 2 基于客户端的负载均衡 基于客户端的解决方法需要每个客户端都了解一些有关待访问站点的服务器 结构的信息,进而显式地以负载平衡的方式将请求发送到某台服务器。例如, n e t s c a p en a v i g a t o r 浏览器访l i f i j n e t s c a p e 的主页时,会随机地从一百多台服务器中选 择第n 台,将请求送往w w w n n e t s c a p e c o r n 。可见,这并不是很好的解决方法,因 为它没有任何通用性。 s m a r tc l i e n t 是b e r k e l e y 的另一种基于客户端的解决方法。该方法提供一个j a v a a p p l e t 在客户端浏览器中运行,这个a p p l e t l 句各个服务器发出请求,来收集服务器 的负载等信息,再根据这些信息决定将请求发到哪台服务器。这种使用a p p l e t 的方 法也可以实现高可用性:当服务器没有响应时,a p p l e t 可以向另一个服务器发送请 求。但是,这种方法的透明性不好,不具有普遍适用性。此外,a p p l e t l f i 各服务器 收集信息也会带来额外的网络流量。 2 3 3 基于i p 层的负载均衡 基于i p 层的负载均衡系统一般由负载均衡器( d i r e c t o r ) 、后端服务器真实服务 器( r e a ls e r v e r ,r s ) 和共享存储系统( s h a r e ds t o r a g es y s t e m ) = 层组成,其系统拓扑 图如图2 6 所示。 v f p i 一一一, 负载均衡器 :l ;畜h e a r t b e a t 耋ij , 主)( 备卜7 _ i 一” 一一一一, 、 真实服务器 共享存储系统 同同同 。- t 。一- 一,一- 。- 。j _ 图2 6 负载均衡系统拓扑图 负载均衡器是系统所对外提供服务的窗口,c l i e n t 通过其上绑定的虚拟地址 ( v i r t u a li p ,v i p ) 来访问。负载均衡器按照所采用的调度算法( s c h e d u l i n ga l g o r i t h m ) , 将请求分发到某一个后端服务器上。为了提高容错性,整个负载均衡器往往由 m a s t e r 和b a c k u p 坌 j t 成,二者之间有心跳( h e a n b e a t ) 检测。后端服务器是若干台真正 $ 器妙门 掣 第二章w e b 负载均衡技术

温馨提示

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

评论

0/150

提交评论