负载均衡解决方案.doc_第1页
负载均衡解决方案.doc_第2页
负载均衡解决方案.doc_第3页
负载均衡解决方案.doc_第4页
负载均衡解决方案.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

一、 用户需求 本案例公司中现有数量较多的服务器群: WEB网站服务器4台 邮件服务器2台 虚拟主机服务器10台 应用服务器2台 数据库2台(双机+盘阵) 希望通过服务器负载均衡设备实现各服务器群的流量动态负载均衡,并互为冗余备份。并要求新系统应有一定的扩展性,如数据访问量继续增大,可再添加新的服务器加入负载均衡系统。二、 需求分析 我们对用户的需求可分如下几点分析和考虑: 1. 新系统能动态分配各服务器之间的访问流量;同时能互为冗余,当其中一台服务器发生故障时,其余服务器能即时替代工作,保证系统访问的不中断; 2. 新系统应能管理不同应用的带宽,如优先保证某些重要应用的带宽要求,同时限定某些不必要应用的带宽,合理高效地利用现有资源; 3. 新系统应能对高层应用提供安全保证,在路由器和防火墙基础上提供了更进一步的防线; 4. 新系统应具备较强的扩展性。 o 容量上:如数据访问量继续增大,可再添加新的服务器加入系统; o 应用上:如当数据访问量增大到防火墙成为瓶颈时,防火墙的动态负载均衡方案,又如针对链路提出新要求时关于Internet访问链路的动态负载均衡方案等。 三、 解决方案 梭子鱼安全负载均衡方案 总体设计采用服务器负载均衡设备提供本地的服务器群负载均衡和容错,适用于处在同一个局域网上的服务器群。服务器负载均衡设备带给我们的最主要功能是: 当一台服务器配置到不同的服务器群(Farm)上,就能同时提供多个不同的应用。可以对于每个服务器群设定一个IP地址,或者利用服务器负载均衡设备的多TCP端口配置特性,配置超级服务器群(SuperFarm),统一提供各种应用服务。如图,网络中的四台服务器向用户提供了三种典型应用,分别为web、mail和ftp服务,因此管理员通过服务器负载均衡设备建立了三个不同的服务器群(Farm),并指定参与每个服务器群的服务器。对于上述这个系统,服务器负载均衡设备的解决方案提供了三级全面冗余机制: 对于每种应用,如WEB服务,同时有四台机器提供服务,每台机器的状态可以设为regular(正常工作)或backup(备份状态),或者同时设定为regular状态。负载均衡设备根据管理员事先设定的负载算法和当前网络的实际的动态的负载情况决定下一个用户的请求将被重定向到的服务器。而这一切对于用户来说是完全透明的,用户完成了对WEB服务的请求,并不用关心具体是哪台服务器完成的。 对于整个服务器系统,资源得到充分的利用和冗余。我们知道,一般情况下不同应用服务的用户数目是不尽相同的,对于服务器资源的消耗也有所不同。如果对每一种应用只采取单独的机器提供服务,不但存在单点故障问题,同时每台服务器的利用也是不均匀的,可能存在大量的WEB请求,使单一的WEB服务器负荷超重;而同时FTP服务器却处在基本空闲状态。这也是一种系统资源的浪费,同时用户得到的服务也不够快捷。在引入了服务器负载均衡设备的服务器系统中,每台机器的资源得到了充分利用,并减少了单点故障的问题。 负载均衡设备也可以引入冗余备份机制。服务器负载均衡设备设备在网络层次上起到类似路由器的作用,并利用专用的集成电路芯片(ASIC)完成智能的负载分配的工作。它的单点故障问题可以通过在系统中引入另外一台服务器负载均衡设备设备来完成。但是与一般意义上的冗余备份机制不同,这时两台服务器负载均衡设备是同时处在工作状态,并互相备份的,而不是其中一台处于闲置的Stand-By状态。服务器负载均衡设备通过网络互相监测,一旦其中一台不能正常工作,另一台将接管其所有的任务。 整个系统的可扩缩性也是显而易见的: 对于每一种特定服务,管理员可以根据具体的负载状况调配服务器。如果某种服务的负载压力过大,可以考虑在系统中别的服务器上在建立一个该服务的镜像,只要简单的在对应该服务的服务群中加入一个条目,新加的服务器就能参与到整个服务器群的工作中来了。 系统中引入新的硬件服务器,或某台服务器需要对其硬件进行升级或配置的时候,服务器负载均衡设备能够自动监测到这些变化。对于新加入的服务器,设有Warm-Up的时间,逐步地分配到该台服务器的负载;对于从系统上撤掉的服务器,可以设定一个over的时间值,能够保证在该台服务器上的对话全部结束之后,才将服务器撤下,同时继续把流量分配到其它的服务器上,用户得到了不间断的服务。 系统中所有服务器的配置,从硬件到操作系统或应用软件都可以是异构的,不影响服务器负载均衡设备的功能发挥。网络提供商可以灵活地进行网络服务器的升级扩容工作。 四、为什么选择梭子鱼安全负载均衡机: 高性能:梭子鱼LB440负载均衡机提供业界至强的服务器负载均衡性能,支持每秒100,000的新建连接, 900万的并发连接。 梭子鱼负载均衡机会实时地对后台服务器进行基于应用的健康检查,并决定在真实服务器不可用情况下服务如何处理。 采用Cookie的会话保持机制提供会话的完整性,这样可以避免在使用源地址会话保持时,客户端如果是通过统一的代理网关进行访问而造成负载均衡的不均匀,导致某些服务器的连接数远大于其他的服务器。 梭子鱼安全负载均衡机独特的无线连接心跳监控方式提供快速切换,是企业各种实时关键业务系统所必需的。 强大的安全保护:梭子鱼安全负载均衡机内置集成了IPS实时安全防护系统,可以检测并阻挡1000多种入侵攻击和DOS攻击。Web服务器集群负载均衡技术的应用与研究侯秀杰 祝永志 孔令鑫(曲阜师范大学 计算机科学学院,山东 日照 276826 ) 摘 要 为了提高集群系统对用户的快速响应与整体吞吐量,必须采取一定的策略将Web访问均衡地分配到集群中的每一个服务器。基于此思想本文针对传统的单机思想给出了一种多机三层结构的负载均衡系统。实验结果表明了它在负载均衡方面的优越性。 关键词 负载均衡;均衡策略;调度算法;Web服务器集群模型1 引言 Internet的快速增长,特别是电子商务应用的发展,使Web应用成为目前最重要最广泛的应用,Web服务器动态内容越来越流行。目前,网上信息交换量几乎呈指数增长,需要更高性能的Web服务器提供更多用户的Web服务,因此,Web服务器面临着访问量急剧增加的压力,对其处理能力和响应能力等带来更高的要求,如果Web 服务器无法满足大量Web访问服务,将无法为用户提供稳定、良好的网络应用服务。 由于客观存在的服务器物理内存、CPU 处理速度和操作系统等方面的影响因素,当大量突发的数据到达时,Web服务器无法完全及时处理所有的请求,造成应答滞后、请求丢失等,严重的导致一些数据包因延时而重发,使传输线路和服务器的负担再次增加。传统的方法是提高Web 服务器的CPU 处理速度和增加内存容量等硬件办法但无论如何增加Web 服务器硬件性能,均无法满足日益增加的对用户的访问服务能力。 面对日渐增加的Web 访问服务要求,必须对Web 服务器按一定策略进行负载分配。利用负载均衡1的技术,按照一定策略将Web 访问服务分配到几台服务器上,负载处理对用户透明,整体上对外如同一台Web 服务器为用户提供Web服务。2 Web负载均衡结构2.1 负载均衡 负载是一个抽象的概念,是表示系统繁忙程度,系统在一段时间空闲,该系统负载轻,系统在一段时间空忙,该系统负载重,影响系统负载的各种因数较多如果存在很多的数据包同时通过网络连向一台Web服务器,也就是网络的速度比网络所连接的设备速度快的情况下,系统负载不断增加,直到最大。 目前提高Web 服务器性能,使其具有较强负载能力,主要有两种处理思想2: 1)单机思想 不断升级服务器硬件性能,每当负载增加,服务器随之升级。这随之将带来一些问题,首先,服务器向高档升级,花费资金较多;其次,升级频繁,机器切换造成服务中断,可能会导致整个服务中断;最后,每种架构的服务器升级总有一个极限限制。 2)多机思想 使用多台服务器提供服务,通过一定机制使它们共同分担系统负载,对单一的服务器没有太高的性能要求,系统负载增加,可以多增加服务器来分担。对用户而言,整个系统仿佛是一台单一的逻辑服务器,这样的系统能够提供较强的可扩展性和较好的吞吐性能。 为了适应当前急剧增长的Web访问,有别于传统的单机思想,解决单机思想带来的一系列问题,本文提出了一种基于权值的策略分配负载。2.2 负载均衡实现设备2 目前实现负载均衡需要两类的设备:服务器和分配器。 1)服务器(Server) 为用户提供真正的服务,也就是指给用户提供负载均衡服务的计算机设备,有关该设备的一些性能数据是负载均衡的主要依据之一。 2)分配器(Dispatcher) 由用户浏览器、Web 服务器组成两层结构Web 系统2,如图1所示,实际是基于客户端的负载均衡。图1 负责给用户服务分配服务器,分配器的主要功能是根据客户和服务器的各种情况(这些情况要能反映服务器的负载状况或性能状况)通过一定的算法进行调动和分配工作,从而提高由服务器整体构成的网站的稳定性、响应能力。它主要是集中所有的HTTP 请求,然后分配到多台Web服务器上处理,来提高系统的处理效率。2.3 负载均衡系统结构2.3.1 两层结构的负载均衡系统 在服务器上运行一个特定的程序,该程序相当一个客户端,它定期的收集服务器相关性能参数,如CPU、I/O、内存等动态信息,根据某种策略,确定提供最佳服务的服务器,将应用请求转发给它。如果采集负载信息程序发现服务器失败,则找其它服务器作为服务选择。这是一种动态负载均衡技术,但是每台服务器上必须安装特定的客户端程序,同时,为保证应用程序的透明性,需要对每个应用进行修改,能够将访问请求通过该客户端程序转发到其它服务器上,重定向方式进行,修改每一个应用程序,工作量十分大。2.3.2 三层结构的负载均衡系统 由用户浏览器、负载均衡和Web服务器组成三层结构Web系统2,如图2所示。实际是基于服务器的负载均衡。图2 如果将基于客户端的负载均衡中客户端的负载均衡部分移植到一个中间平台,形成一个应用服务器,构成请求、负载均衡和服务器的三层结构,客户端应用不需要做特殊修改,透明的中间层将请求均衡的分布到不同的服务器。 据服务器直接连到Internet 与否有两种多Web 服务器结构:隔离式(Separation) 和非隔离式(Unseparation)。隔离式是服务器不直接连到Internet,如图3所示,非隔离式是服务器直接连到Internet,如图4所示。图3图4 隔离式中只有负载均衡器对外有一个IP 地址,所有的请求由负载均衡器分配到不同的Web Server,所有Web Server 的返回结果也经过负载均衡器传回给用户。非隔离式中每一台Web Server 都有一个IP地址,用户请求经过负载均衡器分配到Web Server,而请求的应答不经过负载均衡器,直接传回用户。为了减轻均衡器的负载,本文中采用了三层结构中的隔离方式。2.4 负载均衡实现的方法 Web 负载均衡常见算法有3:循环调度算法(Round-Robin Scheduling)、加权循环调度算法(Weighted Round-Robin Scheduling) 、最小连接调度算法(Least-Connection Scheduling)、目标地址散列调度算法(Destination Hashing Scheduling)、源地址散列调度算法(Source Hashing Scheduling)。 本文采用基于权值的调度算法,也就是说权值大的服务器优先得到调度,本文在实现时是基于静态的权值,就是在开始的时候给每一个服务器配置一个默认的权值。当然也可以根据实际运行情况再对每一个服务器的权值进行调整。但是这需要实时的搜集每一个服务器的信息,如服务器的内存实用情况,响应速度等一些信息。3 Web服务器集群环境配置与测试4693.1 搭建环境3.1.1 软硬件环境的搭建 (1)服务器有4台,一台安装apache,三台安装tomcat。 (2)服务器的操作系统都是Windows XP。 (3)其中安装apache的服务器充当负载均衡器,其它三台是给用户真正服务的服务器。 (4)IP配置,一台安装apache的IP为30,三台安装tomcat的服务器IP分别为31/132/133。3.1.2 软件的安装与配置 1)安装tomcat的服务器的配置 (1)在三台安装tomcat的服务器上安装jdk。 (2)配置jdk的安装路径,在环境变量path中加入jdk的bin路径,新建环境变量JAVA_HOME指向jdk的安装路径。 (3)在三台要安装tomcat的服务器上分别安装tomcat,调试三个tomcat到能够正常启动。 (4)tomcat的默认WEB服务端口是8080,默认的模式是单独服务,我配置的三个tomcat的Web服务端口修改为7080/8888/9999。 修改位置为tomcat的安装目录下的conf/server.xml在文件中找到下面的语句: 只需改动Port=”8080”为上面提到的端口号就行,对安装tomcat的三个服务器这个文件做改动。 2)负载均衡服务器配置1 (1)在那台要安装apache的服务器上安装apache,我的安装路径为默认C:Program FilesApache GroupApache2。 (2)安装后测试apache能否正常启动,调试到能够正常启动http:/30。 (3)下载jk2.0.4后解压缩文件。 (4)将解压缩后的目录中的modules目录中的mod_jk2.so文件复制到apache的安装目录下的modules目录中。 (5)修改apache的安装目录中的conf目录的配置文件httpd.conf,在文件中LoadModule模块配置信息的最后加上一句LoadModule jk2_modules/mod_jk2.so。 (6)分别修改三个tomcat的配置文件conf/server.xml在文件中找到下面的语句只需改动jvmRoute的值,在这里分别改为tomcat1,tomcat2和tomcat3。 3)均衡服务器的配置2 在apache的安装目录中的conf目录下创建文件pertie,写入文件内容如下:#fine the communication channelchannel.socket:30:8009Info=Ajp13 forwarding over socket#配置第一个服务器tomcatId=tomcat1 #要和tomcat的配置文件server.xml中的jvmRoute=tomcat1名称一致debug=0 lb_factor=1#负载平衡因子,数字越大请求被分配的几率越高。类似地再配置其它的服务器。最后加上这样的句子info=Status worker,displays runtime informationuri:/jkstatus.jsp info=Display status information and checks the c onfig file for changes. Group =status: uri:/*info=Map the whole Webapp debug=0 4)安装tomcat的服务器配置2 在三个tomcat的安装目录中的webapps建立相同的应用,我和应用目录名为GroupTest,在三个应用目录中建立相同 WEB-INF目录和页面index.jsp,index.jsp的页面的主要内容是打印出为客户服务的服务器的IP地址和端口号,当然还有其它一些内容,最主要的是这些内容,这样当我们在测试的时候也方便地知道为其提供服务的服务到底是哪一个服务器,这个信息是非常重要的,这样我们能看出当大量用户访问的时候我们能知道负载分配的情况。 5)集群配置 分别修改三个tomcat的配置文件conf/server.xml找到以下面语句开始的地方:!- Cluster className=org.apache.catalina.cluster.tcp.SimpleTcpCluster” -将最上,最下面的一行都改为就可以了。 然后再在Conf目录下建立perties文件,写入下面一行,其中端口为相应的channelSocket.port=8009 6)集群应用配置 对于要进行负载和集群的tomcat目录下的webapps中的应用中的WEB-INF中的web.xml文件要添加如下一句配置到此为止配置完成剩下的就是测试3.2 环境的测试 (1)首选分别测试每个tomcat的启动是否正常。 http:/31:7080 http:/219.218.22

温馨提示

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

评论

0/150

提交评论