(计算机应用技术专业论文)lvs负载均衡技术在网络服务中应用研究.pdf_第1页
(计算机应用技术专业论文)lvs负载均衡技术在网络服务中应用研究.pdf_第2页
(计算机应用技术专业论文)lvs负载均衡技术在网络服务中应用研究.pdf_第3页
(计算机应用技术专业论文)lvs负载均衡技术在网络服务中应用研究.pdf_第4页
(计算机应用技术专业论文)lvs负载均衡技术在网络服务中应用研究.pdf_第5页
已阅读5页,还剩48页未读 继续免费阅读

(计算机应用技术专业论文)lvs负载均衡技术在网络服务中应用研究.pdf.pdf 免费下载

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

文档简介

l v s 负载均衡技术在网络服务中的应用研究 摘要 随着i n t e m e t 迅速发展和网络应用范围不断扩大,互联网上的用户数和网络 流量以几何级数增长,使用单台服务器引发的诸如单点失效、单点瓶颈、升级 成本过高、系统不具扩展性等各类问题日渐突出。 目前,解决此类问题的主要方法是通过硬件或软件技术实现网络负载均衡。 本文提出一种基于l i n u x 虚拟服务器技术实现的负载均衡系统,能够在低成本条 件下解决上述分析的服务器端问题,是一种软件技术方案,该解决方案具有提 供持续服务、避免单点失效,并具有可扩展性、管理方便等特性。 本文主要工作如下: 1 研究了l i n u x 虚拟服务器( l v s ) 的数据包转发方式、调度算法及其软 件实现基础。 2 结合实际工作遇到的服务器端的单点失效、服务质量下降等实际问题, 利用原有设备资源,选用l v s 的v s d r 模式和加权最少连接数( w l c ) 调度算 法,设计和实现了一个基于i p 层负载均衡技术的异构l i n u x 虚拟服务器系统。 3 针对w l c 算法中存在计算服务器性能即权值计算的问题,提出一种权 值计算方法一软件工具测试法,并运用于设计的系统中。 4 搭建一个测试环境,分别对虚拟服务器的功能和性能进行测试,测试结 果表明设计的系统能够很好实现负载均衡。 关键词:虚拟服务器,负载均衡,调度算法 r e s e a r c ho ft h el v sl o a db a l a n c ei nw e bs e r v i c e s a b s t r a c t w i t ht h ed e v e l o p m e n to f i n t e r a c ta tf u l ls p e e da n dt h ea p p l i c a t i o no f n e t w o r ki n a l la r e a , t h en u m b e ro fn e t w o r ki i s e r si n c r e a s e sf a s ta n dt r a 伍co fd i f f e r e n ts a v i c e g r o w sl i k eg e o m e t r i cs e r i e s s o m ep r o b l e m sa p p e a rs u c ha sad i s a b l e ds i n g l ed o t , l o w - p e r f o r m a n c en e t w o r ks e r v i c e ,h i g hc o s tu p d a t i n g ,n oe x p a n s i b i l i t yc t e ,w i t h u s i n gt h es i n g l es e r v e r n o w , p e o p l eo f t e ns o l v et h o s ep r o b l e m sb yt h ew a yo fh a r d w a r eo rs o f t i t o r e a l i z en e t w o r kl o a db a l a n c e t h el o a db a l a n c ew i t ht h et e c h n o l o g yo fl i n u xv i r t u a l s e r v e r ( l v s ) c a no f f e r7 + 2 4s e r v i c e s ,h a v ee x p a n s i b i l i t y , h a v em a n a g e m e n te a s y , a v o i das i n g l ed o te t e t h i st h e s i sw o r km a i n l yj o bi sf i r s ts t u d y i n gt h em o d e l o fd a t ap a c k a g e t r a n s m i tb yl v s ,i o a db a l a n c es c h e d u l e ,a n dt h et h e o r yo fl v sr e a l i z a t i o n s e c o n d s e l e c t i n gt h ev s d rm o d e la n dw l cs c h e d u l et od e s i g nad i f f e r e n ts t r u c t u r el o a d b a l a n c ys y s t e m i ti sb u i l to ne ) 【i s t e md e v i c e sa n ds e r v e r sf o rs o n i n gt h o s ep r o b l e m s o ft h es i n g l es e r v e r t h i r df m d i n go u taw a yt oc o u n tw e i g h to fas e r v e r , w h i c hc o u l d s h o wc a p a b i l i t yo ft h es e r v e r f o u r , a n dt h el a s tb u i l d i n gat e s ts y s t e mt ot e s tt h e f u n c t i o na n dp e r f o r m a n c eo f t h el o a db a l a n c es y s t e m k e y w o r d s :v i r t u a ls e r v e r , l o a db a l a n c e ,s c h e d u l i n ga l g o r i t h m 图表目录 图1 1 服务器成本与价格比较1 图2 1l i n u x 虚拟服务器框架8 图2 - 2l v s 负载均衡体系结构1 1 图2 3v s n a t 工作模式1 5 图2 - 4v s t u n 工作模式。1 6 图2 5v s d r 工作模式1 7 图3 1p c m a r k 0 4 启动界面2 7 图3 - 2p c m a r k 0 4 整机测试参数2 7 图3 3 测试结果2 9 图4 1 系统体系结构3 2 图4 2 v s - d r 负载均衡网络拓扑3 9 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。 据我所知。除了文中特别加以标注和致谢的地方外,论文中不包含其他入已经发表或撰写 过的研究成果。也不包含为获得 金目b 王些盔堂 或其他教育机构的学位或证书而使 用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明 并表示谢意 学位论文作者签名: 初办聿乙 i 签字日期:现砷年6 月,仁日 学位论文版权使用授权书 本学位论文作者完全了解盒胆王些太堂有关保留、使用学位论文的规定,有权保留 并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借阅。本人授权金 a b 王些盔堂可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、 缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名:如孑互包 签字日期:劢q 年6 月净日 学位论文作者毕业后去向: 工作单位: 通讯地址: 电话: 邮编: 丝肛岁r 1 年参月峰日 、土 名 期 签 日 师 字 导 签 致谢 本论文在选题的确定上,及写作过程和得以完稿,都得到我的导师沈明玉 副教授的精心指导和审阅。导师严谨的治学态度、无私的奉献精神和渊博的学 识给我深深的启迪。无论是在专业课程学习期间,还是在做论文期间,沈老师 都给了我极大的帮助和支持,使我不仅学到了扎实、宽广的专业知识,也学到 了做人的道理,更给我以后的科研和教学工作指引了方向。在此,我衷心的感 谢导师,并表达我对他的深深敬意。 此外在三年学习过程中。得到沈老师的热心帮助及教授我课程的老师们的 谆谆教诲,在此表示我的衷心感谢。 同时感谢我的同学袁琴、刘翔和7 1 4 实验室所有的同学们,在我论文写作 过程中,给予我的无私帮助和支持,谢谢你们! 最后,特别要感谢我的父母、爱人、孩子和我所有的亲人和朋友,是你们 的支持和培养使我有今天的成绩,也是你们的勉励和支持我才能顺利完成此论 文。 真诚感谢在百忙中抽时间评阅论文和参加答辩的各位专家、教授。 作者;刘玉艳 2 0 0 7 年4 月2 6 日 第一章绪论 1 1 研究背景 随着i n t e r n e t 的飞速发展和对人们生活影响的深入,越来越多的人选择在互 联网上购物、娱乐、休闲、获取信息或与人沟通:越来越多的企事业本单位、 公司通过互联网来完成它们的业务,建立与客户的联络。这种变化促使互联网 的用户数和网络流量以几何级数增长,对网络服务的可伸缩性提出了更高的要 求。如热门站点y a h o o 目前每天发送的页面数为6 2 5 亿【l l ,d e l l 公司自1 9 9 8 年开展b 2 b 业务以来,销售额翻了一番,1 9 9 9 年2 月1 日至4 月3 0 日,该公 司平均每天网上的销售额为1 8 0 0 万美元,占公司同期销售总额的3 0 ,到2 0 0 0 年将占5 0 ,c i s c o 公司不仅提供网络产品,同时利用网络提供各方面的服务。 c i s c o 公司每天网上的收入3 0 0 0 万美元,7 8 的订单、8 0 的客户服务通过网 络实现【2 】。如此巨大的访问量和高强度的负荷对网络服务器的性能要求越来越 高,越来越多的应用要求能够提供不问断的服务,服务的任何中断都将造成不 可估量的损失,因此需要一套可靠的方案来解决网络服务器的可用性问题。 上述现象表明,服务器的性能正成为制约网络服务能力的瓶颈。目前解决 该问题的基本方案有两种:单服务器策略和多服务器策略。 ( 1 ) 单服务器策略:升级现有硬件设备或重新购置更高档服务器。这种策 略的不足之处是显而易见的:一、随负载不断增长,需不断升级网络服务器, 造成原有资源浪费;二、受单一服务器性能限制,仍不能满足业务需要。一般 情况下。一台高档服务器也只能够支持3 0 0 0 5 0 0 0 个并发访问;三、服务器是 单一故障点,一旦服务器硬件或应用软件失效,会导致整个服务的中断;四、 巨额花费,越高端的服务器,其成本与性能比则成指数上升【3 】,如图1 1 所示: 图1 一l 服务器成本与价格比较 ( 2 ) 多服务器策略:即基于服务器集群解决策略,该策略使用多台服务器 组成集群来统一提供网络服务。负载由集群内的所有服务器分担,因此对单一 服务器的性能没有过高要求,当网络负载超过集群的服务能力时,只需扩展集 群中的服务器数量即可。 多服务器策略不是简单的服务器升级,而是从体系结构入手,通过提高网 络服务的可扩展性、高性价比、高可用性等方面来解决服务器端瓶颈问题,所 以有广泛的应用和推广意义。 本课题从性能、成本、管理和技术等综合因素出发,在l i n u x 平台下,利 用l i n u x 虚拟服务器( l i n u x v l r t u a ls e r v e r ) 技术建立一个具有高性价比、可扩 展性和高可管理性等特性的集群系统,有效解决网络服务负载均衡的问题。 1 2 国内外研究现状 1 2 1 负载均衡技术 负载均衡( l o a db a l a n c i n g ) 旨在将大量客户端请求平均散布到提供同一服 务的多台服务器上,从而提高整个分布式系统对客户请求的响应性,同时也可 增强系统在服务端出现故障时的容错能力,成为提高分布式系统服务端可伸缩 性的重要技术之一1 4 j 。 负载均衡建立在现有网络结构之上,它提供一种廉价有效透明的方法扩展 网络设备和服务器的带宽、增加吞吐量,加强网络数据处理能力、提高网络的 灵活性和可用性。负载均衡技术的核心思想是将多台服务器作为对称方式,每 台服务器都具备等价的地位,都可以单独对外提供服务而无须其他服务器的辅 助。然后通过某种负载分担技术,将外部发送来的请求均匀分配到对称结构中 的某一台服务器上,而接收到请求的服务器都独立回应客户机的请求。 负载均衡有如下的含义:首先,大量的并发访问或数据流量分担到多台结 点设备上分别处理,减少用户等待响应的时间;其次。单个重负载的运算分担 到多台结点设备上做并行处理,每个结点设备处理结束后,将结果汇总,返回 给用户,使系统处理能力得到大幅度提高。 目前有许多不同的负载均衡技术用以满足不同的应用需求,下面从负载均 衡所采用的设备对象、应用的网络层次( o s i 参考模型) 来进行分类说明。 ( 1 ) 基于d n s 的负载均衡 最早的负载均衡技术是通过d n s 服务中的随机名字解析来实现的i 列,在 d n s 服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字 的客户机将在解析这个名字时得到其中的一个地址。因此,对于同一个名字, 不同的客户机会得到不同的地址,它们也就访问不同地址上的w e b 服务器, 从而达到负载均衡的目的。 ( 2 ) 反向代理负载均衡 使用代理服务器可以将请求转发给内部的w e b 服务器1 6 1 ,使用这种代理模 式显然可以提升静态网页的访问速度。让代理服务器将请求均匀转发给多台内 部w e b 服务器的其中一台上,从而达到负载均衡的目的。这种代理方式与普 2 通的代理方式有所不同,普通代理方式是客户使用代理访问多个外部w e b 服 务器,而这种代理方式是多个客户使用它访问内部w e b 服务器,因此也被称 为反向代理模式。 ( 3 ) 基于n a t 的负载均衡技术 网络地址转换是在内部地址和外部地址之间进行转换,以便具备内部地址 的计算机能访问外部网络,而当外部网络中的计算机访问地址转换网关拥有的 某一外部地址时,地址转换网关能将其转发到一个映射的内部地址上。因此如 果地址转换网关能将每个连接均匀转换为不同的内部服务器地址,此后外部网 络中的计算机就各自与自己转换得到的地址上服务器进行通信,从而达到负载 分担的目的。 上述这些技术虽然可以一定程度完成服务器的流量负载均衡的工作,但是 对于建立一个高扩展性,高管理性,高可靠性的一个负载均衡系统还是不够的, 利用集群( c l u s t e r l 技术构建负载均衡系统是一种最有效的方案。 1 2 2 集群技术 计算机集群是一组物理上通过高速互联网络连接在一起的计算机集合,通 过附加的集群软件相互协作,作为一个整体对外提供服务【7 1 。集群系统按照使 用的不同要求,主要分为高可用性集群和高性能集群。高可用性集群的主要功 能就是提供可靠的,不间断的服务。集群系统具有良好的可用性。集群的某一 个节点出了故障,集群软件可以自动地将待处理的事务分配到正常的节点,继 续向用户提供持续的服务。从用户的角度来看,集群系统具有单一映像,集群 内的故障切换对用户是透明的。集群还具有良好的扩展性,可以方便地向集群 中加入或删除工作节点1 8 j 。 集群技术是一种计算机系统之间连接的方式【9 】,运用它可以将分散的计算 系统连接起来完成原来单独结点的计算系统无法完成的任务。集群系统允许用 户把普通商用硬件系统组成集群,并根据需要随时在集群中增加新的硬件,提 高系统的伸缩性和可用性,从而能够在价格相对低廉的中低端平台上享用过去 只有高端系统才具备的高可伸缩性和高可用性,既提高了系统的性能,同时也 降低了成本,实现尽可能多的计算机处理能力和数据的透明访问能力,同时实 现高性能与高可靠性的目标。 建立一个集群系统的主要目的是: 固有的应用得以保障。集群系统以一种很自然的方式开始存在,例如,在 我们的社会中,人们常常以群体的形式出现并彼此共享信息,公司、社团、班 级等等都是这样的概念。在从个人计算向集群分布式计算迁移的时候,往往可 以保留原有在个人计算系统上的应用,直接将原有的应用重新在新的集群系统 中运行,并获得性能的提升。这也是集群出现的一大原因。 3 性能成本。集群系统的并行性降低了处理的瓶颈,提供了全面改进的性 能,也就是说,集群系统提供了更好的性能价格比。 资源共享。集群系统能有效地支持不同位置的用户对信息和资源( 硬件和 软件) 的共享。 灵活性和可扩展性。集群系统可以增量扩展,并能方便地修改或扩展系统 以适应变化的环境而无需中断其运行。 实用性和容错性。依靠存储单元和处理单元的多重性,集群系统具有在系 统出现故障的情况下继续运行的潜力。 可伸缩性。集群系统能容易地扩大以包括更多的资源( 硬件和软件) 。集群 系统提高了网络系统的稳定性和网络中心的数据处理能力及服务能力,自8 0 年 代初以来,各种形式的集群技术纷纷涌现。由于集群能够提供高可用性和可伸 缩性,所以,它迅速成为企业和i s p 计算的支柱。 ( 1 ) 国外现状 微软公司在w i n d o w s 2 0 0 0 中增加了集群功能,该高可用性集群叫做 w o l f p a c k , 也叫做m c s ( m i c r o s o f tc l u s t e rs e r v e r ) 。它主要是在企业级对基于 w m d o w s n t 服务器的应用程序提供可用性和扩展性。w o l t p a c k 现在支持两个服 务器,一个用来对用户提供服务,另一个作为备份服务器使用。m i c r o s o f t 下一 步的目标是将w o l f p a c k 支持的结点数扩展到1 6 个l l 川。 t u r b o l i n u x 公司推出了能够显著地提高基于t c p 协议的多种网络服务质量 的高可用性集群t u r b o c l u s t e r 。r e d h a t 也提供了基于l i n u xv h t i m ls e r v e r 思想构 建的高可用性性集群系统p i r a n h a 。由e r i c s s o n 软件研究中心开发的高可用性 集群系统e d d i e 的主要目的时提供一个商业级的,能提供较好的服务质量的 w e b 服务的解决方案。 高性能集群系统m o s i x 为l i n u x 核心增加了集群计算的功能。在m o s 集群环境中,用户无需对应用程序进行修改,或将应用程序与库连接起来,或 将应用程序分配到不同的结点上运行。m o s i x 会自动将这些工作透明地交给 别的结点来执行。 日本f 5 公司开发出了高可用性集群b i g i p l l j ,它是使用于本地网络站点 或数据中心的高可用的、智能化的负载均衡产品,它提供了对网络流量的自动 和只能的管理。与前几种集群系统不同的是,b i g i p 向用户提供的是个即插即 用设备,而其他的提供的都是软件方法。 ( 2 ) 国内现状: 集群服务己经成为提高网络带宽,提供更大访问流量的有效机制并被广泛 推广使用。现在国内有许多新兴的软硬件产品的解决方案,联想公司在1 9 9 9 年 推出用于分布式高性能计算的n s l 0 0 0 高性能集群服务器,该系统是一个四结 点的系统,主要基于联想万全4 5 0 0 r 服务器,以总体成本相对较低的设备组合, 4 足以代替传统r i s c 小型机和中型机的工作,而价格仅为市场上同等性能小型 机的1 ,2 至1 ,4 。 中软网络技术股份有限公司也推出了基于中软l i n u x 3 0 操作系统l v s 虚拟 服务器集群系统,进行了_ 定的优化,有效地提高了系统性能。该系统具有结 点服务器兼容性好,集群服务器可靠性高的优点。中科红旗软件技术有限公司 的r e d f l a gc l u s t e rs e r v e r 3 0 集群软件采用l i n u x 虚拟服务器技术,提供了基于 w 比的集群管理工具,具有很强的易用性。在集群内,除使用n f s 为网络文 件系统外,还可使用红旗c l u s t e r 所带的c o d a 网络文件系统。集群内还可采用 s a n 、n a s 等分布式存储方案。朗新公司也推出了类似于t u r b o c l u s m r 的高可 用性集群系统l o n g s h i n ec l u s t e rs e r v e r 。 1 2 3l i n u x 虚拟服务器 l i n u x 虚拟服务器【1 2 】构建于多个服务器之上,多台真实服务器对用户来说 是透明的,而只能看到一台作为负载均衡器的服务器。l i n u x 虚拟服务器支持 作为负载均衡服务器直接连接到同一个l a n 的集群结点,它还能够以隧道传 送m 包的方式连接到远程服务器。后一种方法包括压缩球包中的均衡请求, 这些m 信息包从负载均衡服务器直接发送到远程集群结点真实服务器上,由 他们处理用户的请求,这样从客户方面来看好像所有服务都是通过负载均衡器 来完成的。l i n u x 虚拟服务器能够提供良好的可扩展性、可靠性和处理性能。 系统可以透明的增加或者删除一个服务器结点,可以对实际服务器进行检测, 如果发现有结点失败就重新配置系统。 l i n u x 虚拟服务器自由软件项目是由章文嵩博士带领,创建于1 9 9 8 年5 月, 致力于l v s 虚拟服务器开发工作,这项基于l v s 的集群技术i p v s ( b a s e d i pv i r t u a ls e r v e r ) ,是一种在l i n u x 操作系统上基于口层的负载均衡调度技 术,它在操作系统核心层上,将来自口层的t c p u d p 请求均衡地转移到不同 的服务器,从而将一组服务器构成一个虚拟服务器。该项目的目标是:在l i n u x 操作系统下实现一个高性能、高可用性的服务器,它具有很好的可伸缩性 ( s c a l a b i l i t y ) 、可靠性( r e l i a b i l i t y ) 和可管理性( m a n a g e a b i l i t y ) 。目前,l v s 项目仍然处于进一步的开发和完善中,并且提供了一个实现可伸缩网络服务的 l ,v s 框架。 1 3 l v s 集群在国内外应用实例 l v s 项目从成立到现在为止,受到不少关注,l v s 集群系统已被应用于很 多重负载的站点【1 3 】,该系统已在美、英、德、澳等国的几十个站点上正式使用。 以下应用实例可以说明l v s 的高性能、稳定性和技术的成熟性。 英国国家j a n e tc a c h es e r v i c e ( w w w c a c h e j a n c t ) 是为英国1 5 0 所以 5 上的大学提供w e bc a c h e 服务。他们用2 8 个结点的l v s 集群代替了原有现5 0 多台相互独立的c a c h e 服务器,用他们的话说现在速度就跟夏天一样,因为夏 天是放假期间没有很多人使用网络。 l i n u x 的门户站点( w w w 1 i n u x c o r n ) 用l v s 将很多台v a l i n u xs m p 服 务器组成高性能的w e b 服务,已使用将近一年。 s o u r c e f o r g e ( s o u r c e f o r g e n e t ) 是在全球范围内为开发源码项目提供 w e b 、f t p 、m a i l i n gl i s t 和c v s 等服务,他们也使用l v s 将负载调度到十几 台机器上。 世界上最大的p c 制造商之一采用了两个l v s 集群系统,一个在美洲, 一个在欧洲,用于网上直销系统。 以r e a l p l a y e r 提供音频视频服务而闻名的r e a l 公司( w w w r e a l c o r n ) 使 用由2 0 台服务器组成的l v s 集群,为其全球用户提供音频视频服务。在2 0 0 0 年3 月时,整个集群系统已收到平均每秒2 0 ,0 0 0 个连接的请求流。 n e t w a i k ( w w w n e t w a l k c o r n ) 用多台服务器构造e v s 系统,提供1 0 2 4 个虚拟服务,其中本项目的一个美国镜像站点( w w w u s 1 i n u x v i r t u a l s e r v e r o r g ) 。 r e d h a t ( w w w r e d h a t c o r n ) 从其6 1 发行版起已包含l v s 代码,他们开 发了一个l v s 集群管理工具叫p i r a n h a ,用于控制l v s 集群,并提供了一个图 形化的配置界面。 v a l i n u x ( w w w v a l i n u x c o r n ) 向客户提供基于l v s 的服务器集群系统, 并且提供相关的服务和支持。 t u r b o l i n u x 的”世界一流l i n u x 集群产品”t u r b o c l u s t c r 实际上是基于 l v s 的想法和代码的,只是他们在新闻发布和产品演示时忘了致谢。 红旗l i n u x 和中软都提供基于l v s 的集群解决方案,并在2 0 0 0 年9 月召开的l i n u x w o r l dc h i n a2 0 0 0 上展示 1 4 本文主要研究内容 本文主要研究基于l i n u xv i r t u a ls e r v e r ( 简称l v s ) 负载均衡系统在网络服 务中的应用。通过分析当今网络发展和现有网络服务器瓶颈原因,结合实际工 作中急需要解决的实际问题,如服务器的单点失效、因性能原因影响服务质量 等问题,在研究分析现有l v s 体系结构、i p 负载均衡的三种模式和l v s 调度 算法特点、适用条件等内容的基础上,设计和实现一个基于l v s 技术的异构虚 拟服务器集群系统,用于实现网络服务的负载均衡,该设计方案实现了低成本 条件下解决服务器端的问题。 l v s 它具有以下优点:一方面,l v s 的i p v s 软件是自由软件,其源代码 开放,采用模块化,设计结构精妙,各个功能模块之间的逻辑关系清晰。为开 发基于l i n u x 的负载均衡系统构建了一个可扩展的系统平台,可对该系统进行 6 改进与开发:另一方面自由软件所构建的系统本身具有低廉的成本,适用于各 个网络服务应用环境当中。基于以上原因,本文设计的负载均衡系统是建立在 此系统框架结构上的。 在研究分析l v s 提供的几种调度算法后,发现目前被较多采用的调度算法 最少连接调度算,存在精确估算各节点服务器处理能力即权值的问题,提 出了一种权值计算方法一测试法。综合考虑服务器组成硬件的整机性能指标 和服务器提供网络服务时的性能指标,使用测试工具测得各指标数值并综合计 算得出各服务器的性能比例,为管理员配置和调整各节点服务器权值提供有力 依据。有效解决加权最少调度算法中权值估算的问题。 1 s 本文章节安排 本文共有五章,具体章节安排内容: 第l 章主要介绍课题背景以及论文研究的主要内容。讨论了当前服务器负 载现状和存在的问题,针对问题,提出构建可扩展性、可靠性和方便管理的负 载均衡系统来解决问题。 第2 章主要介绍了本文设计系统的基本平台一一l v s 虚拟服务器。通过介 绍系统的工作方式和体系结构,为后面的系统分析与设计作理论准备。 第3 章主要分析l v s 负载均衡系统的负载调度算法。分析各种调度算法的 特点、实现原理及适用条件等内容。研究分析调度算法存在的问题和负载均衡 系统选用调度算法的依据,进而提出算法改进的必要性和实施方案。 第4 章是本文的主要内容,主要设计一个基于l v s 负载均衡技术的异构集 群系统,并详细介绍了该系统的具体实现方案。 第5 章对本文设计的载均衡系统进行实验测试和性能分析。 7 第二章基于l i n u x 虚拟服务器的载均衡 2 1 虚拟服务器与集群技术 虚拟服务器是构建在真实服务器集群之上,用户看不到提供服务的真实服 务器,只能看见前端作为负载均衡器的服务器,各真实服务服务器之间通过高 速局域网或地理上分散的广域网连接。真实服务器的前端是一台负载均衡器, 它负责接受用户请求并将请求调度到真实服务器上由服务器处理请求。客户访 问集群系统提供的网络服务时就象访问一台高性能、高可用的服务器一样。 本论文中的负载调度技术是在l i n u x 系统上实现,故称之为l i n u x 虚拟服 务器( l i m t xv i r t u a ls e r v e r ) ,本文的研究将围绕i i n u x 虚拟服务器( 简称l v s ) 具体展开。 2 2 l s 项目框架 l v s 项目的基本思路是提供一定的可扩展性、2 4 * 7 的可用性以及一定的管 理能力和成本效益【1 4 】。l v s 项目提供一个实现可伸缩网络服务的l i n u xv i r t u a l s e r v e r 框架,如图2 1 所示。在l v s 框架中,提供了含有三种口负载均衡技术 的口虚拟服务器软件i p v s 、基于内容请求分发的内核l a y e r - 7 交换机k t c p v s 和集群管理软件。可以利用l v s 框架实现高可伸缩的、高可用的w e b 、c a c h e 、 m a i l 和m e d i a 等网络服务【1 5 1 6 1 :在此基础上,可以开发支持庞大用户数的、高 可伸缩的、高可用的电子商务应用。 图2 - 1l i n u x 虚拟服务器框架 使用l v s 架设的服务器集群系统从体系结构上看是透明的,客户端用户只 感觉到是一个虚拟服务器。真实服务器之间可以通过高速的l a n 或分布在各 8 地的w a n 相连。最前端是负载均衡器,它负责将各种服务请求分发给后面的 真实服务器,让整个集群表现得像一个服务于同一i p 地址的虚拟服务器。 2 3 邛虚拟服务器软件i p v s 2 3 1i p v s 实现原理 在调度器的实现技术中,p 负载均衡技术是效率最高的。在已有的i p 负载 均衡技术中有通过网络地址转换( n e t w o r ka d d r e s st r a n s l a t i o n ) 将一组服务器 构成一个高性能的、高可用的虚拟服务器,称之为v s n a t 技术( x r m u a ls e r v e r v i a n e t w o r k a d d r e s s t r a n s l a t i o n ) ,大多数商品化的负载均衡调度器产品都是 使用此方法,如c i s c o 的l o c a l d i r e c t o r 、f 5 的b i g i p 和a i t e o n 的a c e d i r e c t o r 。 在分析v s n a t 的缺点和网络服务的非对称性的基础上,提出通过疋隧道实现 虚拟服务器的方法v s t u n ( v i r t u a l s e r v e r v i a i p t u n n e l i n g ) ,和通过直接路由 实现虚拟服务器的方法v s d r ( v i r t u a ls e r v e rv i ad i r e c tr o u t i n g ) ,它们可以极 大地提高系统的伸缩性。所以,i p v s 软件实现了这三种m 负载均衡技术,它 们的工作原理简述如下( 详细内容将在2 5 节介绍) : v i r t u a ls e r v e r v i a n e t w o r k a d d r e s s t m n s i a t i o n ( v s n 蛆) 通过网络地址转换,调度器重写请求报文的目标地址,根据预设的调度算 法,将请求分派给后端的真实服务器;真实服务器的响应报文通过调度器时, 报文的源地址被重写,再返回给客户,完成整个负载调度过程。 v i r t u a ls e r v e rv i ai pt m m e l i n g ( v s t u n ) 采用n a t 技术时,由于请求和响应报文都必须经过调度器地址重写,当客 户请求越来越多时,调度器的处理能力将成为瓶颈。为了解决这个问题,调度 器把请求报文通过妒隧道转发至真实服务器,而真实服务器将响应直接返回给 客户,所以调度器只处理请求报文。由于一般网络服务应答比请求报文大许多, 采用v s t u n 技术后,集群系统的最大吞吐量可以提高l o 倍。 v i r t u a ls e r v e rv i ad i r e c tr o u t i n g ( v s d r ) v s d r 通过改写请求报文的m a c 地址,将请求发送到真实服务器,而真 实服务器将响应直接返回给客户。同v s t u n 技术一样,v s d r 技术可极大地 提高集群系统的伸缩性。这种方法没有m 隧道的开销,对集群中的真实服务器 也没有必须支持口隧道协议的要求,但是要求调度器与真实服务器都有一块网 卡连在同一物理网段上。 2 3 2i p v s 调度器的负载调度算法 平衡算法设计的好坏直接决定了集群在负载均衡上的表现,设计不好的算 法,会导致集群的负载失衡。一般的平衡算法主要任务是决定如何选择下一个 集群节点,然后将新的服务请求转发给它。有些简单平衡方法可以独立使用, 9 有些必须和其它简单或高级方法组合使用。而一个好的负载均衡算法也并不是 万能的,它一般只在某些特殊的应用环境下才能发挥最大效用。因此在考察负 载均衡算法的同时,也要注意算法本身的适用面,并在采取集群部署的时候根 据集群自身的特点进行综合考虑,把不同的算法和技术结合起来使用。 针对不同的网络服务需求和服务器配置,l v s 调度器实现了如下八种负载 调度算法l i ,j l i ) 轮叫( r o u n dr o b i n ) 调度算法,是通过”轮叫”调度算法将外部请求按顺 序轮流分配到集群中的真实服务器上,它均等地对待每一台服务器,而 不管服务器上实际的连接数和系统负载。 2 ) 加权轮叫( w e i g h t e dr o u n dr o b i n ) 调度算法,是通过”加权轮叫”调度算 法根据真实服务器的不同处理能力来调度访问请求。这样可以保证处理 能力强的服务器处理更多的访问流量。调度器可以自动问询真实服务器 的负载情况,并动态地调整其权值。 3 ) 最少链接( l e a s tc o n n e c t i o n s ) 调度算法,是通过”最少连接”调度算法 动态地将网络请求调度到己建立的链接数最少的服务器上。如果集群系 统的真实服务器具有相近的系统性能,采用”最小连接”调度算法可以较 好地均衡负载。 4 ) 加权最少链接( w e i g h t e dl e a s tc o n n e c t i o n s ) 调度算法,是在集群系统 中的服务器性能差异较大的情况下,调度器采用”加权最少链接”调度算 法优化负载均衡性能,具有较高权值的服务器将承受较大比例的活动连 接负载。调度器可以自动问询真实服务器的负载情况,并动态地调整其 权值。 5 ) 基于局部性的最少链接( l o c a u t y - b a s e dl e a s tc o n n e c t i o m ) 调度算法, 是针对目标口地址的负载均衡,目前主要用于c a c h e 集群系统。该算 法根据请求的目标m 地址找出该目标m 地址最近使用的服务器,若该 服务器是可用的且没有超载,将请求发送到该服务器;若服务器不存在, 或者该服务器超载且有服务器处于一半的工作负载,则用”最少链接”的 原则选出一个可用的服务器,将请求发送到该服务器。 6 ) 带复制的基于局部性最少链接( l o c a l i t y b a s e dl e a s tc o 加e c t i o 璐、j i ,i t l l r e p l i c a t i o n ) 调度算法,是针对目标地址的负载均衡,目前主要用于 c a c h e 集群系统。它与l b l c 算法的不同之处是它要维护从一个目标m 地址到一组服务器的映射,而l b l c 算法维护从一个目标i p 地址到一 台服务器的映射。该算法根据请求的目标m 地址找出该目标m 地址对 应的服务器组,按”最小连接”原则从服务器组中选出一台服务器,若服 务器没有超载,将请求发送到该服务器,若服务器超载;则按”最小连 接”原则从这个集群中选出一台服务器,将该服务器加入到服务器组中, l o 将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改, 将最忙的服务器从服务器组中删除,以降低复制的程度。 7 ) 目标地址散列( d e s t i n a t i o nh a s h i n g ) 调度算法,是根据请求的目标口 地址,作为散列键( h a s hk e y ) 从静态分配的散列表找出对应的服务器, 若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。 8 ) 源地址散列( s o u r c eh a s h i n g ) 调度算法,是根据请求的源m 地址,作 为散列键( h a s hk e y ) 从静态分配的散列表找出对应的服务器,若该服 务器是可用的且未超载,将请求发送到该服务器,否则返回空。 2 4l v s 集群体系结构 l s 是基于i p 层的,它在l i n u x 内核中实现了基于内容请求分发的负载 平衡调度解决方法的功能。通过l v s ,能够快捷方便的将一组服务器组建成一 个实现可伸缩的、高可用网络服务的,并带有第四层负载均衡功能的集群系统。 并且,借助第三方的工具包,还可以实现对l v s 集群系统进行可用性支持的功 能扩展。l v s 集群系统的体系结构如图2 2 所示: 图2 - 2l v s 负载均衡体系结构 从图2 2 可看出,l v s 体系结构由三部分组成: ( 1 ) 负载均衡器( 1 0 a db a l a n c e r ) 它是整个集群对外面的前端机,也是集群的唯一入口,负责将客户的请求 发送到一组服务器上执行,而客户认为服务是来自一个p 地址上的。由于该主 机并不真正处理客户的请求,只是将请求分发给下面的服务器群来处理,所以 也称之为虚拟服务器。负载均衡器可以是用口负载均衡技术的负载均衡器,也 可以是基于内容请求分发的负载均衡器,还可以是两者的结合。本文中只研究 i p 负载均衡技术,在i p 负载均衡技术中,需要服务器池拥有相同的内容提供 相同的服务。当客户请求到达时,负载均衡器只根据负载情况从服务器池中选 出一个服务器,该请求转发到选出的服务器,并记录这个调度;当这个请求的 其他报文到达,也会被转发到前面选出的服务器。 从图2 - 2 中容易发现,如果系统中仅有一台负载均衡器,容易造成负载均 衡器成为集群的单点失效,使其成为集群中最脆弱的环节。因此,有必要提供 容错机制。能够在负载均衡器失效的时候进行自动检测并平滑替换,也就是常 说的h a 技术【l s l 。在图2 2 的结构中,有一个以备份均衡身份运行的结点实时 地监控负载均衡器的运行状态,并根据检测到的状态做出响应;报警、接管、 恢复。 ( 2 ) 服务器池( s e r v e rp 0 0 1 ) 由一组真正的执行客户请求的服务器组成,该池中的每台服务器称之为真 实服务器。服务器上可以执行w w w 、e m a i l 、f t p 、d n s 以及流媒体等 网络服务。服务器池的结点数目是可以伸缩的。当整个系统收到的负载超过目 前所有服务器所能处理的能力时,可以在服务器池中增加真实服务器来满足不 断增长的请求负载。对大多数网络服务来说,结点之间不存在很强的相关性, 所以整个系统的性能可以随着服务器池的结点数的增加而线性增长。 服务器结点也有可能出现暂时失效的情况,特别是在结点提供多种服务的 时候,系统的随机故障或外部环境的突变都可能造成该节点的某个服务暂时不 可用。因此,由负载均衡扩展出的容错机制要能够识别这种错误,及时进行处 理。同样,当错误排除后,集群能够自动识别恢复事件,把维修后的结点重新 纳入集群继续运行。 ( 3 ) 后端存储( b a c k e n ds t o r a g e ) 为服务器池提供一个共享存储区,使得服务器池拥有相同的内容,提供相 同的服务,为整个集群内部运行提供稳定、一致的文件存取服务。后端存储为 整个集群系统提供了很好的可扩展性。但是该部分并非系统所必需的部分,如 果服务器池中的各台真实服务器所提供的服务能够保持文件同步与共享,提供 相同的内容与相同的服务,就可以将该部分省去。 2 4 1 负载均衡器分配请求 负载均衡器是集群的唯一入口,本系统采用1 p 负载均衡技术。从客户端的 角度看,集群通过这层的服务体现为一个基于l p 地址的单一系统映像( s s l ) u ,】,整 个集群共用这个虚拟地址,通过它客户端可以把整个集群看作一个独立的具有 合法i p 地址的主机系统,客户端的所有访问都发往这个虚拟i p 地址。负载均衡 器的主要工作如下: 接收所有到达集群的用户请求,并查看这个用户请求的服务是否本集群 所提供的,决定处理,转发或丢弃该数据包; 对一个新的用户请求在系统的哈希表中建立一个连接条目。并查询哈希 表,决定是重新调度还是按照哈希表中条目所记录的方式分发数据包; 根据系统的负载均衡调度算法,决定该用户请求由哪台真实服务器处 理,并转发给该真实服务器; 通过配置管理工具管理集群,增加,删除,修改真实服务器和负载均衡 器结点,将服务绑定负载均衡调度算法,配置负载均衡调度算法的参数。 另外,若系统是v s n a t 模式( 将在下一节做详细介绍) ,还将处

温馨提示

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

评论

0/150

提交评论