计算机群集技术概述5

 LoadBalance(负载均衡)群集



  负载均衡群集系统使应用程序处理负载或网络流量负载可以在计算机群集中尽可能平均地分摊处理。这样的系统非常适合于运行同一组应用程序的大量用户。每个节点都可以处理一部分负载,并且可以在节点之间动态分配负载,以实现平衡。对于网络流量也如此。通常,网络服务器应用程序接受了太多的入网流量,以致无法迅速处理,这就需要将流量发送给在其它节点上运行的网络服务器应用。还可以根据每个节点上不同的可用资源或网络的特殊环境来进行优化。在网站,电子邮件提供商,VOD(Video On Demand)方面有广泛的应用。


  以下将介绍负载均衡群集。


  什么是负载均衡群集?-- 解释(定义,一般的框架结构,策略,哪些产品,技术区别,发展)


  负载均衡群集就是带均衡策略(算法)的服务器群集。负载均衡群集在多节点之间按照一定的策略(算法)分发网络或计算处理负载。负载均衡建立在现有网络结构之上,它提供了一种廉价有效的方法来扩展服务器带宽,增加吞吐量,提高数据处理能力,同时又可以避免单点故障。


  一般的框架结构如下图(以Web访问为例,其它应用类似)。后台的多个Web服务器上面有相同的Web内容,Internet客户端的访问请求首先进入一台服务器,由它根据负载均衡策略(算法)合理地分配给某个Web服务器。每个Web服务器有相同的内容做起来不难,所以选择负载均衡策略(算法)是个关键问题。下面会专门介绍均衡算法。



  负载均衡的作用就像轮流值日制度,把任务分给大家来完成,以免让一个人过度劳累。但是与轮流值日制度不同的是,负载均衡是一种动态均衡,它通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把任务理分配出去。对于不同的应用环境(如电子商务网站,它的计 算负荷大;再如网络数据库应用,读写频繁,服务器的存储子系统系统面临很大压力;再如视频服务应用,数据传输量大,网络接口负担重压。),使用的均衡策略(算法)是不同的。 所以均衡策略(算法)也就有了多种多样的形式,广义上的负载均衡既可以设置专门的网关、负载均衡器,也可以通过一些专用软件与协议来实现。在OSI七层协议模型中的第二(数据链路层)、第三(网络层)、第四(传输层)、第七层(应用层)都有相应的负载均衡策略(算法),在数据链路层上实现负载均衡的原理是根据数据包的目的MAC地址选择不同的路径;在网络层上可利用基于IP地址的分配方式将数据流疏通到多个节点;而传输层和应用层的交换(Switch),本身便是一种基于访问流量的控制方式,能够实现负载均衡。 

  到目前为止,针对网络负载均衡的产品主要有两大类:一是硬件;二是软件。硬件产品比软件产品运行得快但是价格较高。著名的产品有:3Com的智能网卡和DynamicAccess技术结合起来,不用在交换机上做任何设置,就可以完成分担任务;Cisco路由器通过对动态环路、旁路技术等功能的提供实践着负载均衡;Win2000中,专门集成了针对服务器群集的负载均衡软件;IBM的Web专用服务器和Network Dispatcher软件;Lotus的ICM;还有许多厂商都支持的链路聚集、高层交换......实现方法还在不断地花样翻新,充实着"负载均衡"的内容。

  负载均衡系统的几种负载均衡算法(负载均衡策)

  目前,基于均衡算法主要有三种:轮循(Round-Robin)、最小连接数(Least Connections First),和快速响应优先(Faster Response Precedence)。轮循算法,就是将来自网络的请求依次分配给集群中的服务器进行处理。最小连接数算法,就是为集群中的每台服务器设置一个记数器,记录每个服务器当前的连接数,负载均衡系统总是选择当前连接数最少的服务器分配任务。 这要比"轮循算法"好很多,因为在有些场合中,简单的轮循不能判断哪个服务器的负载更低,也许新的工作又被分配给了一个已经很忙的服务器了。快速响应优先算法,是根据群集中的服务器状态(CPU、内存等主要处理部分)来分配任务。 这一点很难做到,事实上到目前为止,采用这个算法的负载均衡系统还很少。尤其对于硬件负载均衡设备来说,只能在TCP/IP协议方面做工作,几乎不可能深入到服务器的处理系统中进行监测。但是它是未来发展的方向。

  综上所述,负载均衡群集的使用是非常广泛的,它的核心内容是运用越来越科学的负载分配算法开发出软件或硬件,来实现负载的更加合理地分配。

  怎么用?——举例说明,并包含需求分析

  采用负载均衡群集的场合很多,本文将以Web/Ftp服务器群集这个典型的应用为例进行介绍。 互联网的出现使信息访问产生了质的飞跃,但随之而来的是Web流量的激增(高并发访问),由于涉及的信息量十分庞大,用户访问的频率也高,许多基于Web的大型公共信息系统(如电子图书馆、BBS、搜索引擎和远程教育等)需要在实时性和吞吐量方面都具有较高性能的Web服务器支持。一些热门的Web站点由于负荷过重而变得反应迟缓。如何提高Web服务器的性能和效率成为一个亟待解决的问题。

  实际上,服务器的处理能力和I/O已经成为提供Web服务的瓶颈。如果客户的增多导致通信量超出了服务器能承受的范围,那么其结果必然是宕机。显然,单台服务器有限的性能不可能解决这个问题,一台普通服务器的处理能力只能达到每秒几万个到几十万个请求,无法在一秒钟内处理上百万个甚至更多的请求。显然,采用高性能的主机系统(小型机乃至大型计算机)是可行的。但是,除了其价格价格昂贵外,这种高速、高性能的主机系统,很多情况下也不能解决同时处理几万个并发。因为,高速主机系统只是对于复杂单一任务和有限的并发处理显得 高性能,而Internet中的Web服务器绝大多数处理是"简单任务"、高强度并发处理,因此,即便有大资金投入采用高性能、高价格的主机系统 ,也不能满足Web应用的需要。这就是利用Web服务器群集实现负载均衡的最初基本设计思想。

  早期的服务器群集通常以主从方式(Active-Passive)备份。令服务运营商头疼的问题是:关键性服务器一般档次较高,花了两台服务器的钱却只能得到一台服务器的性能。随着LSANT(Load Sharing Network Address Transfer)技术的推出,这个问题得到了解决。多台服务器的IP地址被翻译成一个虚拟IP地址(VIP:Virtual IP),使得每台服务器均时时处于工作状态。若能将10台这样的服务器组成一个系统,并通过软件技术将所有请求平均分配给所有服务器,那么这个系统就完全拥有每秒钟处理几百万个甚至更多请求的能力。这样原来需要用小型机来完成的工作现由多台PC服务器就可以完成,这种弹性解决方案对投资保护的作用是相当明显的——既避免了小型机刚性升级所带来的巨大设备投资,又避免了人员培训的重复投资。同时,服务运营商可以依据业务的需要随时调整服务器的数量。至此形成了Web服务器群集的理论。

  Web服务器群集的概念最早由伊利诺斯州大学(UIUC:University of Illinois at Urbana-Champaign)的超级计算应用中心(NCSA:National Center of Supercomputing Applications)提出并实现了一个原型系统"NCSA Scalable Web Server Cluster", 它通过连接一组计算机对客户同时提供服务,实现分布负载,降低对用户请求的响应时间,并扩展Web服务器的应用。后来Berkeley的NOW小组、NSC和科罗拉多大学的Harvest小组、Cisco及IBM公司等也加入此行列,很快推出相应产品。如NCSA使用几台工作站构成可扩展并行Web服务器群,提供使用其浏览器软件Mosaic、服务器软件httpd的用户查询帮助信息和下载软件的服务器系统,采用轮循算法选择群集中某台计算机为当前访问请求服务;加州大学SWEB系统采用DNS转发技术实现服务器IP地址重定向(Yahoo 采用的就是这种方法);Inktomi公司利用NOW构造并行的HotBot检索引擎,因而系统具有成本低和扩展能力强的特点;此外,IBM公司也提出类似的可扩展并行Web服务器群集系统的设计方案。这些系统的成功表明Web 服务器群集是改善Web服务的一种有效解决方案,并且正在成为主流技术。

  在Web负载均衡群集的设计中,网络拓扑被设计为对称结构。在对称结构中每台服务器都具备等价的地位,都可以单独对外提供服务。通过负载算法,分配设备将外部发送来的请求均匀分配到对称结构中的每台服务器上,接收到连接请求的服务器都独立回应客户的请求。 如下图所示。



  Web服务器群集有如下特点: 

  高性能 :一个Web服务器群集系统由多台Web服务器组成,对外部而言,整个群集就如同一台高性能Web服务器,系统只有一个对外的网络地址(主机名或IP地址),所有的HTTP请求都发到这个地址上。系统中有专门的机制能够将这些请求按照一定原则分发到群集中的各台服务器上,让它们各自分担一部分工作。 

  可扩展性 它是采用同样的方法或技术高效率地支持较大规模系统的能力。Web服务器群集系统的组成结构和工作原理决定了它能够比较容易地达到较好的可扩展性,因为扩大系统规模非常容易,只要在网络中增加新的Web服务器计算机即可。 

  高可用性 Web服务器群集系统将会在各种商业应用领域中占有举足轻重的地位。商用系统最重视系统的可靠性和容错性,二者合在一起称为系统的可用性。常用的系统可用性指标有系统平均无故障时间、期望不间断工作时间及年平均故障率等。由于Web服务器群集系统中各台Web服务器之间相对独立,采用一些不太复杂的技术就能使Web服务器群集系统达到很高的可用性。一些商用产品中已经部分实现了这种技术。 

  此外,Web服务器群集系统还具有价格便宜、能够保护原有投资等特点。

  目前比较成熟的产品主要有Cisco的LocalDirector、IBM的Network Dispatcher、HydraWEB的HydraWEB Dispatcher和RND的Web Server Director等等。这些产品的应用非常广泛,如Yahoo、Net Center和MSN都是用几百到几千台计算机组成Web 服务器群集来对外提供服务,它们使用了上述产品。 

  以下是对2个Web服务器群集产品的分析:

  Scalable Web Server Cluster UIUC的NCSA Scalable Web Server Cluster是世界上第一个Web服务器群集系统。1994年,NCSA为了缓解其Web站点面临的大量用户访问的压力,把4台Sun工作站用FDDI连接起来组成一个群集,代替原有单台Sun工作站的Web服务器,对外提供Web服务。NCSA把这个系统称为Scalable Web Server Cluster,它几乎具备了现代Web服务器群集系统所具有的一切特征:用高速局域网连接多台Web服务器,通过并行处理提高系统的吞吐能力;整个系统只有一个网络地址; 通过一台动态DNS服务器实现请求分配,该DNS服务器对DNS请求采用轮循算法依次返回群集中各台Web服务器的IP地址,引导Client将HTTP请求发送到群集中不同的Web服务器上,以实现群集的负载均衡; 采用AFS(UNIX支持的分布式文件系统)将多台服务器上的文件系统组合成一个逻辑上单一的分布式文件系统,用来存储站点内容,使请求不论被分配到哪台Web服务器上都能得到完全相同的应答服务;系统在其中一台Web服务器发生故障时仍能正常工作,并支持在线增加或减少Web服务器的数量等(其结构如下图所示)。



  Scalable Web Server Cluster是一个实验性的Web服务器群集系统,现代Web服务器群集系统和产品的大部分概念和方法均来源于它。 
LocalDirector Cisco的LocalDirector是一种用来实现请求分配的设备,通过它可以组成Web服务器群集系统。LocalDirector有2个网络接口,一个用于连接Internet,另一个用于连接局域网中的Web服务器群集,如下图所示。



  LocalDirector采用IP NAT(Network Address Transfer)技术,整个系统对外只有一个IP地址,通过IP地址变换将HTTP请求分配到群集中不同的Web服务器。群集中的各台Web服务器上存储的页面信息要求完全一致。LocalDirector在请求分配时实现了2种不同的负载均衡算法:最小连接数和快速响应优先,用户在配置LocalDirector时可以选择使用其中一种。此外,LocalDirector还支持动态改变群集规模的大小,即在不停机的情况下增加或减少服务器。

  LocalDirector具有很强的吞吐能力,自身延迟也小,因而能够支持较大规模的系统,并且可以通过级联进一步扩大系统的规模(如下图所示)。像IBM的Network Dispatcher、HydraWEB的HydraWEB Dispatcher和RND的Web Server Director等在结构和功能上与LocalDirector类似。值得一提的是,这些产品的价格基本上与一台普通的工作站相当,比大多数高性能计算机要低许多。



  总 结:
  负载均衡群集的应用提高了Web服务器、FTP服务器,邮件服务器和其它关键应用服务器的可用性和可伸缩性。单一计算机只能提供有限级别的服务器可靠性和可伸缩性。但是,通过将两个或两个以上高级服务器的主机连成群集,网络负载均衡就能够提供关键任务服务器所需的高可靠性和高性能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值