WEB服务器集群系统的设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

南京航空航天大学
硕士学位论文
WEB服务器集群系统的设计与实现
姓名:吴家祺
申请学位级别:硕士
专业:计算机应用技术
指导教师:丁秋林
20050101
南京航空航天大学硕士学位论文
摘要
在Internet和Intranet上,随着客户机数量和密集性任务的增加,单个Web服务器受到处理能力的限制,很可能会成为网络访问的新瓶颈。

Web服务器集群系统具备高可用性和负载均衡性,并且易于扩展,成为解决这一问题的最佳方法。

本文对Web服务器集群的设计与实现方法作了一些研究和探讨的工作。

本文首先对现有Web服务器集群系统的技术进行了分析,介绍了几个典型的集群系统,重点讨论了集群负载均衡和高可用性的工作原理和实现技术。

针对局域网内Web服务器集群系统的特点,本文提出了一种用纯软件方法实现Web集群系统的方案。

文中用排队论的方法分析集群系统的性能,之后详细描述了这个集群系统的工作原理和系统实现方案:利用套接字方法实现集群内部的通信机制,通过对服务器负载性能数据的实时采集和对轻载服务器的周期性判决做到动态的负载均衡,通过对服务器的运行状态的周期性检测实现系统的高可用性,使用双进程技术保证系统运行的稳定性。

在文章的最后给出了这个Web集群的测试方案和测试结果。

关键词:Web服务器集群,负载均衡,高可用性,套接字,排队论
WEB服务器集群系统的设计与实现
ABSTRACT
AlongwiththeincreaseofusersandbrowsingtasksinInternetandIntranet,thesingleWebclusterislikelytobethenewbottleneckofnetworkvisitingforitslimitedcapability.Thewebserverclusterhasthefeaturesofhighavailability,andloadbalancing,andscalability.Soitbecomesthebestsolutionfortheprecedingproblem.ThiSpaperdoessomeresearchaboutthedesignandrealizationofwebserverclusters.FirstthepaperanalysesthetechniqueoftheexistingwebserverC1ustersystem,introducessometypicalwebclustersystems,anddiSCUSSeSthework’Stheoryandrealization’Stechniqueofhighavailabilityandloadbalancingemphatically.ThispaperproposesasoftwaremethodofestablishingawebserverClustersysteminLocalAreaNetwork.Thepaperanalysestheperformanceofwebserverclustersystemwiththequeuetheory。

andthendescribesthework’Stheoryandrealization’SSOlutionofthesystemindetaiLThatisrealizingthecommunicationmechanismofthesystemwithsocket,realizingdynamic10adbalancingwithReal—timecollectingperformancedataofwebserversandperiodicaljudgingoflightloadingwebcluster,reelizinghighavailabilitywithcheckingrunningstateofwebserversperiodically,ensuringthesteadyrunningofthesystemwiththedouble—progresstechnique.TheprojectandresultoftestiSputforwardattheendofthepaper.
KEYWORDS:WebServerCluster,LOADBalancing,HighAvailahility,SOCKETQueuetheory
承诺书
本人郑重声明:所呈交的学位论文,是本人在导师指导下,独立进行研究工作所取得的成果。

尽我所知,除文中已经注明引用的内容外,本学位论文的研究成果不包含任何他人享有著作权的内容。

对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确方式标明。

本人授权南京航空航天大学可以有权保留送交论文的复印件,允许论文被查阅和借阅,可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或其他复制手段保存论文。

作者签名:日期:美’菱植j护pj一.Z,z扩
南京航空航天人学硕十学位论文
注释表
符号
A:单位时间申请访问的客户平均数(平均到达率)。

p:五/(舡)。

k:服务窗口数
n:已登录系统的人数(即正在浏览访问和排队的总人数)。

£:正在浏览和排队的客户人数的期望值。

上:排队等待浏览客户数的期望值记为。

Nl:系统容量。

N2:客户总人数。

Po:Web服务系统空闲的稳态概率。

只:系统中n个客户正在浏览访问或排队的稳态概率。

s:每个客户在服务窗口访问的时间。

T:相邻两个访问客户登陆系统的时间(申请时间)间隔。

渺:每个客户在DMIS系统中停留时间的期望值。

肜.:每个客户排队时间的期望值。

21:CPU处理能力。

21.:i号服务器CPU处理能力参数。

丑1。

:基准服务器CPU处理能力参数。

丑2:内存参数。

92.:i号服务器内存参数。

22。

:基准服务器内存参数。

旯3:硬盘参数。

五3.:i号服务器硬盘参数。

^3“基准服务器硬盘参数。

C:CPU的使用率。

C,:i号服务器CPU的使用率。

c“基准服务器CPU的使用率。

M:内存的使用率。

M:i号服务器内存的使用率。

WEB服务器集群系统的设计与实现
M“基准服务器内存的使用率。

D:硬盘传输量。

D,:i号服务器硬盘传输量。

D“基准服务器硬盘传输量。

Ⅳ:网络流量。

Ⅳ:i号服务器网络流量。

Ⅳ“基准服务器网络流量。

Q:CPU比较的权值。

B:内存比较的权值。

Y:硬盘比较的权值。

0:网络比较的权值。

首字母缩写
AGC:AutomatiCGenerationControl,自动发电控制。

CDLB:CentralDynamieLoadBalancing,集中式动态负载均衡。

CI。

B:ComponentLoadBalancing,组件负载均衡。

DDLB:DistributedDynamicLoadBalancing,分布式动态负载均衡。

DLB:DynamicLoadBalancing,动态负载均衡。

DLL:DynamicLinklibrary,动态链接库。

DMIS:DispatchingManagementInformationSystem,调度管理信息系统。

DNS:DomainNameSystem,域名系统。

EMS:EnergyManagemen_tSystem,能量管理系统。

FTP:FileTransferProtocol,文件传输协议。

IGMP:InternetGroupManagementProtocol,互连网组管理协议。

]2EE:Java2Platform,Enterpri8eEditiona
LVS:LinuxVirtualServer,Linux服务器集群系统。

MCS:MicrosoftC1usterServer。

MSCS:MicrosoftClusterService,Microsoft群集服务。

MSMQ:MicrosoftMessageQueuing,Windows消息队列。

MTTF:MeanTimeToFailure,平均无故障时间。

MTTR:MeanTimeToRepair,平均维修时间。

NAT:NetworkAddressTranslation,网络地址转换。

NENWC:NingXiaElectricalNetworkWebClusters,宁夏电网Web服务器集群系统。

NMPP:非齐次Poisson过程模型。

NLB:NetworkLoadBalancing,网络负载均衡。

RR—DNS:Round—RobinDomainNameSystem,轮转域名系统。

SCADA:SupervisoryControlAndDataAcquisition,监视控制与数掘采集系统。

SLB:StaticLOADBalancing,静态负载均衡。

SNMP:SimpleNetworkManagementProtocol,简单网络管理协议。

TTL:T[metoLIVE,数据刷新时涮。

第一章绪论
1.1引言
在Internet和Intranet上,Web服务器负责为来自浏览器的信息请求提供服务。

近年来由于宽带网技术的飞速发展,网络带宽的增长远高于处理器速度和内存访问速度的增长,网络带宽的瓶颈效应日趋减弱。

随着客户机数量和密集性任务的增加,单个Web服务器受到处理能力的限制,很可能会成为网络访问的瓶颈。

如何建立可伸缩的网络服务满足不断增长的负载需求己成为迫在眉睫的问题。

对于降低服务器负荷,提高系统性能这个问题。

如果只考虑升级单个Web服务器的方法(例如使用具有更快CPU和更大内存的计算机做服务器),并不能够彻底的解决问题。

~般而言.升级Web服务器的软硬件配置,经济上是比较昂贵的,升级的代价比较高。

而且,仅仅升级一台服务器并不能充分保障系统的可靠性,一旦这台服务器发生故障,整个系统也就不能提供服务了。

另一种方案是采用Web服务器集群系统:Web服务器集群系统是指2台或2台以上Web服务器联合向客户提供Web服务的一种计算机系统。

它采用负载均衡策略将到达的请求分配给集群中的某台服务器进行处理,并且通过数据冗余和软件监测等方法实现系统的高可用性。

在这种方法中,不要求单个Web服务器具有很高的性能,当Web服务器集群不能满足浏览的需要时,在集群中加入一个或数个普通的Web服务器即可,经济可行。

当集群中的某个服务器发生故障时,其他服务器可以提供服务,集群可以提供不间断的可靠服务。

因此,采用Web服务器集群系统是解决问题的最佳方案。

1.2研究背景
Web服务器集群系统在一组计算机上运行相同的软件并虚拟成一台主机系统为客户端与应用提供服务。

从每个终端用户的角度来看,整个集群就像一个web服务器。

为了做到这点,集群系统必须具有以下特性:
・可扩展性一一集群的性能不限于单一的Web服务器,新的服务器可以动态地加入到集群,从而增强集群的性能。

・高可用性一一在集群中每台服务器都具备等价的地位,都可以单独对外提供服务,而无须其他服务器的辅助。

如果一个Web服务器出现故障了,系统会对客户端屏蔽掉故障的服务器,用户将自动访问运行『F常的服务器。

WEB服务器集群系统的设计与实现
.负载均衡一一负载均衡能把浏览任务均衡地分布到集群中的每个Web服务器,使得每个Web服务器上的负荷大致相等。

从而以较低成本消除系统瓶颈,增加了吞吐量,加强系统数据处理能力,提高系统的灵活性和可用性。

为了实现上述的特性,首先Web服务器集群必须使用多服务器的分布式结构。

Web服务器集群中,每个结点运行若干个服务器程序的独立拷贝。

其中的某些服务,在每个节点上都有程序的一个拷贝运行,网络负载均衡则将工作负载在这些主机间进行分配。

而另一些其他服务程序,则只在一台主机上运行程序。

针对这些服务,网络负载均衡指引网络通讯量流到这个主机上加以处理。

如果该主机发生故障,系统指定另一个主机接替它的工作。

其次,集群系统必须具备一个统一的集群地址。

这个地址可以是一个虚拟的IP地址:用户通过虚拟IP地址(VirtualIPAddress)访问服务时,访问请求的报文会到达负载均衡器,由它进行负载均衡调度,从一组真实服务器选出一个,将报文的目标地址改写成选定服务器的地址,报文的目标端口改写成选定服务器的相应端口,最后将报文发送给选定的服务器。

这个地址也可以是一个统一的域名:当用户按照这个域名访问时,RR—DNS(Round—l{obinDomainNameSystem)服务器会把域名轮流解析到这组服务器的不同IP地址,从而将访问负载分到各台服务器上。

这个地址也可以是负载均衡器的真实IP地址:用户的浏览请求首先到达负载均衡器,负载均衡器根据整个集群系统的负荷状况对请求做相应的处理。

最后,集群内部必须保持良好的通信状况。

为了能协同工作、实现负载均衡和故障恢复,集群系统的每个Web服务器节点与负载均衡必须进行周期性的通信;每隔几秒或几十秒,Web服务器需要将自身的工作状况和负载等信息传递给负载均衡器。

近年来,针对Web服务器集群系统的设计和实现,国内外的许多公司和学术机构给出了不同的解决方案。

例如:微软公司的MicrosoftClusterServer(MCS);IBM公司的WebSphere;自由软件项目:LiFlUX服务器集群系统一一LinUXvirtualServer(LVS)等等。

这些软硬件解决方案以不同的方式实现了Web集群系统的各种功能和特性。

但是,这些方案也有各自的局限性。

如MCS只能在Windows操作系统平台下使用,支持的节点比较少,LVS一般使用于LINUX操作系统平台。

而且商业化的Web服务器集群产品配备的软件硬件价格都比较高,一般的用户难于承受。

对于普通的Web应用,上述的方案可以满足一般的需求。

但是,实际应用中的Web服务类型很多,对这些不同的服务而占,通用的方案不一定能取得良好的
南京航空航天大学硕士学位论文
效果。

比如,这几种方案中大量IP数据包地址的改写工作,增加了负载均衡器的负荷,负载均衡器往往成为新的系统瓶颈,降低了整个系统的性能。

而且工业控制系统中常见的Web服务特点是:Web服务器和客户机同处于一个局域网中,客户机总数不多,但一个客户的访问对服务器造成的负荷比较大,而且每个客户访问造成地负荷大致相等,对于Web服务的稳定性要求很高。

如果采取前述方案构建集群,应用效果较差。

针对工业控制系统中的Web服务的特点,本文提出了一种在局域网内用纯软件方法实现Web集群系统的方案。

这种方案可以在Windows,UNIX,LINUX操作系统下构建集群系统,不需要附加使用磁盘阵列等昂贵的设备。

这种构建集群的方案实现了系统的高可用性和动态负载均衡,运行效果稳定,能够较好地满足工业系统中Web服务的需要。

本文对这种系统的工作原理,实现方法做了详细地介绍。

1.3课题来源
本文以宁夏电力公司调度中心能量管理系统为课题来源。

能量管理系统(EMS)用于保障电网的安全稳定运行,主要由监视控制与数据采集系统(SCADA)、自动发电控制(AGC)及高级应用软件等功能模块组成。

能量管理系统中的调度管理信息系统(D~IIS)Web服务器向全局所有生产部门提供电网运行信息。

随着客户机数量和密集性任务的增加,采取单一的服务器不能满足DMIS用户的需求。

在DMIs系统中,Web服务具有客户浏览内容前后相关性很强,每个客户给服务器造成的负荷大致相等的特点。

因而,现有的Web服务器集群方案并不能很好的满足DMIS系统Web服务的要求。

针对DMIS系统Web服务的这些特点,本文作者提出了一种Web服务器集群系统的设计与实现方法,并在Windows2000操作系统中,以VISUALC++语言为编程工具初步实现了一个Web服务器集群系统一一NENWC(宁夏电网Web服务器集群系统)。

1.4论文结构
本文详细地讨论了Web服务器集群系统的设计与实现。

全文由七章组成:第一章绪论
分析了Internet和Intranet环境下Web服务器瓶颈问题,提出了问题的解决方案:Web服务器集群系统。

之后讨论了Web集群系统的特性和实现方案。

第二章现有集群系统技术分析
WEB服务器集群系统的设计与实现
介绍了现有的多种集群系统,之后探讨了实现集群系统关键技术——负载均衡和高可用性的方法。

第三章NENWC系统关键技术与实现方案
研究了NENWC系统性能的数学模型,NENWC系统内部通信机制,以及NENWC系统的各个功能模块。

第四章NENWC系统高可用性实现
介绍了NENWC系统实现高可用性的原理。

重点研究了集群服务运行稳定性的保障措施,Web服务器数据记录的数据结构,以及获取服务器状态的方法。

第五章NENWC系统负载均衡实现
介绍了NENWC实现系统负载均衡的原理。

详细探讨了Web服务器性能参数的选取,性能信息的获取方法,以及负载均衡器判别的依据。

第六章NENWC系统测试与结果
给出了NENWC系统的测试方案和测试结果。

第七章总结与展望
对全文进行了总结,并对课题的进一步研究和后期目标提出了一些看法。

南京航空航天大学硕士学位论文
第二章现有集群系统技术分析
2.1典型集群系统的简介
近年来,随着Web服务器集群的应用日益广泛,国内外公司纷纷推出商业化的集群产品,同时,一些学术机构也推出了集群实现方案。

这一节讨论具有典型代表意义的几种集群系统。

2.1.1Microsoft集群系统
Microsoft公司最初在它的操作系统产品Windows2000中新增加了集群(群集)功能。

该高可用性集群(群集)叫做MicrosoftClusterServer(MCS)。

它为基于WindowsNT服务器的应用程序提供了可用性和可升级性。

在Windows2003Server中,集群技术得到了进一步的发展。

Microsoft服务器提供三种支持集群的技术:网络负载均衡(NLB)、组件负载均衡(CLB)和Microsoft群集服务(MSCS)。

网络负载均衡的主要功能是均衡同一个NLB群集中的多个Web站点或应用程序上的负载,最多可以将32个运行WindowsServer2003系列产品的计算机连接在一起共享一个虚拟IP地址。

网络负载均衡具备可伸缩性,高可用性。

组件负载均衡可以在多个运行站点业务逻辑的服务器之间分配负载。

它在最多包含八个等同服务器的服务器群集中实现了COM+组{牛的动态均衡。

组件负载均衡通过作用于多层群集网络的中间层与网络负载均衡和群集服务配合工作。

群集服务充当后端群集,可为数据库、消息传递以及文件和打印服务等应用程序提供高可用性。

Microsoft群集服务由三个主要组件构成:群集服务、资源监视器和资源DLL。

此外,还可以利用群集管理器创建提供管理功能的扩展DLL。

群集服务控制群集活动并执行如下任务:协调事件通知、加速群集组件之间的通信、处理故障转移操作和管理配置。

资源监视器是群集服务和群集资源之间的接口,DLL处理所有与资源的通信。

资源是任何可进行管理的物理组件或逻辑组件,每个资源都使用资源DLL,它主要是资源监视器和资源之间的被动转换层。

Microsoft的集群服务具备易于安装,资源配置简便,支持64位服务,支持虚拟集群,支持IGMP协议等特性。

它的缺点是只能在Windows操作系统平台
WEB服务器集群系统的设计与实现
下使用,支持的节点数量较少。

MCS通常应用于中小型企业的服务器集群中。

2.1.2WebSphere
WebSphere是IBM公司推出的~套功能强大的Web应用服务器。

它为企业级Web应用程序的创建提供了一个可靠的、一致的框架。

它支持的平台和标准非常多:在操作系统方面,涵盖了从PC机到大型机的各类操作系统;支持J2EE、CORBA、ActiveX接口;支持多种关系/对象/层次数据库;WebSphere提供了负载均衡、失效恢复、集群等功能,任何对应用程序或其配置的修改,包括Java组件的更新,将会在多个服务器上自动备份复制。

WebSphere中有多层次的可调整的缓存技术,WebSphere的操作环境较好,包括了AdministrativeConsole(操作管理)、LogAnalyzer(日志分析)、ResourceAnalyzer(性能数据的测量和报告)、PerformanceMonitoringAPI(WebSphere组件所提供的API接口,可以实时地获取性能数据)、TunerWizard(性能调整工具)等一整套工具,用于应用服务器的配置、监控和管理。

WebSphere具有很强的系统集成能力,IBM提供了其产品线上的一系列产品来支持WebSphere。

WebSphere提供了集群解决方案。

该方案能够提供带宽管理、缓存、文件管理与复制,以及卓越的负载均衡功能。

这些特性能够使多个服务器象一个服务器~样的工作,从而可大大增加访问频繁的网站的容量。

而系统性能的增强有望进一步提高向终端用户发送信息的速度。

该方案的安全性由IBM电子网络防火墙提供保证。

两者之间强有力的联合可使单个或分布的网站在降低带宽资源占用、提高安全性的同时,保证终端用户响应的质量以及站点规模的持续增长。

2.1.3LinuxVirtualServer
LinuxVirtualServer(LVS)是章文嵩博士等人开发的Linux服务器集群自由软件项目。

该项目提出了基于IP层和基于内容请求分发的负载均衡调度解决方法,并在LiFlUX内核中实现了这些方法,将一组服务器构成一个具有可伸缩性的、提供高可用网络服务的虚拟服务器。

LVS集群采用了IP负载均衡技术。

LVS中实现负载均衡的技术有三种:基于NAT的负载均衡(VS/NAT),使用IP隧道的负载均衡(VS/TUN),使用直接路由的负载均衡(VS/DR)。

LVS中的调度器实现了八种负载调度算法:轮转调度,加权轮转调度,最少链接调度,加权最少链接调度,基于局部性的最少链接调度,带复制的基于局部性最少链接调度,目标地址散列调度,源地址散列调度。

LVS中实现了基于内容请求分发的内核Layer一7交换机KTCPVS。

LVS使用相关的集群管理软件对资源进行监测,能及时将故障屏蔽,实现系统的高可用性。

LVS配备了主、从调度器,当主调度器故障时,从调度器可以接替工作,进一步地保证了
南京航空航天大学硕士学位论文
系统的高可用性。

LVS的应用很广泛,它支持可伸缩的Web,可伸缩媒体服务,可伸缩Cache服务,可伸缩邮件服务。

LVS服务器集群系统具有良好的伸缩性,可支持几百万个并发连接。

实践证明,LVS服务器具有优良的可靠性。

由于LVS集群软件是可以免费得到源代码的自由软件,它得到了较大范围的应用。

很多重负载的站点利用LVS组成高性能的Web服务集群。

而RedHat,TurboLinux,红旗Linux,中软等公司推出了基于LVS的集群产品。

同时,国内外的许多学术机构也在对LVS进行进一步的研究开发。

2.1.4小结
这一小节介绍了三种典型的集群系统。

它们实现集群的基本原理是相似的:在服务器和负载均衡器之间利用串口或者网络传递心跳信号,以此获取集群所有服务器的运行状态信息:通过软硬件冗余实现故障屏蔽进而实现系统的高可用性。

根据SNMP协议或者利用AGENT测量服务器的负荷,负载均衡器根据一定的连接调度算法对IP数据包地址和端口进行重写,实现了负载均衡。

经过长时间的发展之后,这些集群系统实现方案比较完善和成熟,它们可以满足解决一般的Web应用的需要。

然而在实际的Web应用中,仍有一些问题尚待解决。

其一:上述方案中占用系统软硬件资源较多,且只能运用于特定的操作系统平台。

其二:当系统需要传递大量数据包时,负载均衡器会成为系统的瓶颈,影响系统的性能。

其三:这些方案实现系统高可用性时,只对服务器的某些状态(如网络,主机是否故障)进行监视,对用户自定义的一些关键进程或者不予监视或者监视的方法过于复杂,影响了高可用性实现的效果。

本文对这些问题做了一些探讨和研究,并尝试给出自己的解决方案。

2.2负载均衡技术简介
Web集群系统利用负载均衡技术将外部发送来的请求均匀分配到对称结构中的某一台服务器上,由接收到请求的服务器独立地回应客户的请求。

均衡负载能够平均分配客户请求到集群中的各个服务器节点,以减轻单台服务器负担,从而提高整个系统的效率。

负载均衡既可以由有负载均衡功能的硬件实现,也可以通过一些专用软件与协议来实现。

Web集群系统中,负载均衡的效果如何决定于两个关键因素:负载均衡技术和负载调度算法。

这~节中介绍了几种常用的负载均衡技术和负载调度算法。

WEB服务器集群系统的设计与实现
2.2.1几种常用的负载均衡技术
下面介绍5种常用的负载均衡技术。

2.2.1.1基于DNS技术的负载均衡
最早的负载均衡技术是通过DNS服务器中的随机域名解析来实现的:在DNS服务器中,为多个不同的IP地址配置相同的域名,而查询这个域名的客户机将得到其中的一个IP地址。

对于同一个域名,不同的客户机会得到不同的IP地址,他们也就访问了不同IP地址上的Web服务器,从而达到负载均衡的目的。

DNS负载均衡的优点是简单、易行,当前使用该技术的网站很多。

但是存在不少问题。

首先,域名服务器无法知道服务器结点是否有效,如果服务器结点失效,域名系统依然会将域名解析到该节点上,造成用户访问失效。

其次,为了使地址的分配均匀,应该将DNS的数据刷新时间TTL(TimetoLIVE)设置的尽可能短,但是TTL设置得过短,将导致DNS流量大增,造成额外的网络问题。

而且DNS轮询不能区分服务器性能的差异,也不能将服务器的当前运行状态和负荷状况考虑进来,所以服务器之间并不能作到完全的均衡负载。

2.2.1.2反向代理负载均衡
反向代理(ReverseProxy)方式是指来自Internet上的客户使用代理服务器访问处于内部网络上的服务器。

反向代理负载均衡将来自外部的连接请求均匀地转发给内部网络上的各个服务器进行处理,从而均衡了整个系统的负荷。

使用反向代理可以将负载均衡和代理服务器的高速缓存技术结合在一起,提升静态网页的访问速度。

由于外部客户不能直接访问内部的服务器,保证了系统的安全性。

并且可以将负载非常均衡地分给内部服务器,不会出现负载集中到某个服务器的偶然现象。

使用反向代理负载均衡也有一些问题:第一,反向代理是处于OSI参考模型第七层应用的,所以就必须为每一种应用服务专门开发一个反向代理服务器;第二,每一次代理,代理服务器需要打开对外和对内两个连接,在并发连接请求数量较大的时候,代理服务器的负载相应地比较大,在最坏的情况下代理服务器会成为服务的瓶颈。

2.2.1.3基于NAT的负载均衡
NAT(NetworkAddressTranslation)是指在位于局域网内的内部地址和外部地址之问进行转换,以便具备内部地址的计算机能访问外部网络,外部网络中的计算机也可以访问内部地址。

通过NAT技术实现负载均衡主要是当NAT服务器收到客户端请求后根据一些不同的策略修改请求报文中的目的地址,重定向给“隐
南京航空航天大学硕士学位论文
藏”在NAT服务器后面的具有不同IP地址的服务器,服务器返回的响应也经由NAT服务器将源IP地址恢复原样后传给客户端。

NAT技术既可通过软件方式来实现,也可通过硬件方式(即交换)来实现。

NAT负载均衡是一种比较完善的负载均衡技术,得到了较为普遍的应用。

但是需要注意:由于NAT负载均衡中请求和响应的数据报文都需要通过负载均衡调度器,当实际服务器的数量超过20时,负载均衡调度器将成为整个Web集群系统的新瓶颈。

在设计Web集群系统时应当小心处理避免这种情况的出现。

2.2.1.4基于IP隧道的负载均衡
在采用IP隧道负载均衡技术的Web集群系统中,所有客户的访问请求报文都是发给负载均衡调度器的。

当负载均衡调度器接到请求报文后,根据各个服务器的负载情况,动态地选择~台服务器,将请求报文封装在另一个IP报文中,再将封装后的IP报文转发给选出的服务器。

服务器收到报文后,先将报文解封获得原来的报文,处理这个请求,然后将响应报文直接返回给客户。

一般情况下,客户请求报文的数据量比较小,而服务器响应返回给客户的数据报文量比较大。

这样,服务器将响应客户的报文不经过负载均衡服务器直接返回给客户,大幅度地降低了负载均衡调度器的工作量。

因此,负载均衡调度器就可以处理巨量的请求,而不会成为系统的瓶颈。

2.2.1.5基于直接路由的负载均衡
在采用直接路由方法负载均衡技术的集群系统中,所有客户的访问请求报文也是发给负载均衡调度器的。

当负载均衡调度器接到请求报文后,根据集群中各个服务器的负载情况,动态地选择一台负载较轻的服务器。

并将数据包中网卡物理地址(MAC)改为选中的Web服务器的MAC地址,然后重新发出数据包。

目标Web服务器收到后,将应答包直接发回客户端(不经过负载均衡调度器)。

由于在直接路由方式中,服务器不经过负载均衡调度器直接把响应返回给客户,可以大幅度地降低负载均衡调度器的工作量,整个集群系统的节点数量和网络吞吐量因而得以极大地提高。

直接路由是高效,网络延时小的负载均衡技术,但是,为达到MAC地址的欺骗,要求负载均衡调度器和所有应用服务器必须在同~个物理网段。

2.2.2几种常用的负载均衡调度算法
以下介绍常用的6种负载均衡调度算法。

2.2.2.1轮转法
9。

相关文档
最新文档