一、用户需求本案例公司中现有数量较多的服务器群: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服务。2Web负载均衡结构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地址,所有的请求由负载均衡器分配到不同的WebServer,所有WebServer的返回结果也经过负载均衡器传回给用户。非隔离式中每一台WebServer都有一个IP地址,用户请求经过负载均衡器分配到WebServer,而请求的应答不经过负载均衡器,直接传回用户。为了减轻均衡器的负载,本文中采用了三层结构中的隔离方式。2.4负载均衡实现的方法Web负载均衡常见算法有[3]:循环调度算法(Round-RobinScheduling)、加权循环调度算法(WeightedRound-RobinScheduling)、最小连接调度算法(Least-ConnectionScheduling)、目标地址散列调度算法(DestinationHashingScheduling)、源地址散列调度算法(SourceHashingScheduling)。本文采用基于权值的调度算法,也就是说权值大的服务器优先得到调度,本文在实现时是基于静态的权值,就是在开始的时候给每一个服务器配置一个默认的权值。当然也可以根据实际运行情况再对每一个服务器的权值进行调整。但是这需要实时的搜集每一个服务器的信息,如服务器的内存实用情况,响应速度等一些信息。3Web服务器集群环境配置与测试[4][6][9]3.1搭建环境3.1.1软硬件环境的搭建(1)服务器有4台,一台安装apache,三台安装tomcat。(2)服务器的操作系统都是WindowsXP。(3)其中安装apache的服务器充当负载均衡器,其它三台是给用户真正服务的服务器。(4)IP配置,一台安装apache的IP为219.218.22.130,三台安装tomcat的服务器IP分别为219.218.22.131/132/133。3.1.2