分类: 系统运维
2006-05-10 01:52:44
第一章 问题的提出 -------------------------------------------------------------------------------- 随着Internet的迅猛发展,互联网用户数目迅速增加,网上形形色色的信息站点和信息服务也层出不穷。其中许多热门网站和重要站点的服务访问量日益增大,服务器的负荷越来越严重。在服务器的服务提供方面暴露出的问题主要有以下方面: 1)服务器的服务能力远远不能满足需求 虽然各个厂家的服务器性能逐步提高,其处理器芯片不断升级、内存和硬盘的存储容量越来越大,但是仍然不能满足急剧膨胀的用户访问需求。通常来讲,一台WEB服务器最多可以提供同时对几百、上千个用户的连接服务。可以这样说,无论怎样提高服务器的性能,单台服务器都不能满足目前几乎是无限膨胀的用户需求。 2)服务器的服务可靠性不能保证 服务器本身的软件、硬件有可能出现故障,或到服务器的网络连接出现故障,或者由于网上黑客的光顾和破坏导致故障,那么在故障恢复之前,用户将会在一段时间内得不到应有的服务。 3)服务响应时间长,延迟大 服务器忙时的反应能力下降,会造成用户端连接速度缓慢,延迟增加;如果服务器响应正常,由于网络忙造成的拥塞同样也会影响对用户的服务性能,用户会感觉到服务几乎处于停滞状态。 如何改善信息源在线服务的性能,对信息服务器进行负荷分担,增强服务可靠性,成为ISP和ICP们普遍关心的问题,也是我们电信运营部门关心的问题。如何对网上服务器进行负载分担,进行服务性能的改善,采用何种技术手段进行,以什么方式进行(由ISP和ICP们自行解决,还是由电信部门提供服务),已经成为一个迄待研究的课题。 为了解决上述问题,我们申请本课题的立项和研究,对网上信息服务器的负载分担问题进行调研和研究,力求找到电信方和信息源方各自现实可行的解决问题的方法和途径,比较其优劣,并对可实现的商家产品提出建议。 第二章 -------------------------------------------------------------------------------- 几种实现技术 由于单台服务器的严重超负荷,为解决这个问题,人们首先想到的是增加服务器的数量,以服务器软件、硬件的增加来提高服务性能,并通过设备冗余来增加服务的可靠性。但是增加的服务器软硬件不是分散独立和毫无关系的,而是需要通过特定的技术来协同工作,才能到达提高服务性能和可靠性的目的。 如果有一种智能的系统可以实现对业务流量的管理,将同一种业务分担到不同的服务器上,则可以很好地解决服务器的可扩展性和服务性能要求。我们将这种技术称之为服务器的负载分担技术。 根据信息服务器放置的物理位置,我们将服务器负载分担的实现技术分为两种:集中式负载分担和分布式负载分担。 2.1 Round Robin DNS DNS是专门实现域名解析的服务器,可是利用它的Round Robin功能,我们可以很方便地实现服务器的可扩展性,即可以增加服务器的数量,并通过DNS的设置,利用DNS的Round Robin方式,对每个DNS请求,轮流回答不同的服务器地址,从而实现服务器之间的负载分担。采用这种方式不需要对应用服务器的硬件环境、操作系统甚至应用软件都没有过多的要求,服务器之间相对比较独立,比如对于WWW服务,可以用PC服务器上Windows NT操作系统的IIS和Unix服务器上Netscape的Enterprise Server来共同组成一个WWW的服务。 这是最简单、也是最传统的一种实现服务器负载分担的方式,它不需要为实现多台服务器的负载分担而增加任何的软硬件投资,但是采取这种方式在其实现的功能和性能上存在很多问题: a.系统的可靠性不能保证 当某台Web Server不能提供Web 服务时,DNS Server不能发现,仍然按Round Robin的方式把用户的HTTP请求平均分配到Web Server群。在一个有3台Web Server的系统中,如果有1台Web Server不能提供Web 服务,按照DNS Round Robin的分配方式,将有1/3的用户不能得到Web 服务,严重影响系统的服务质量。 b.负载分担的不一定合理 DNS Round Robin方式没有考虑: 1.Web Servers之间的性能可能有差异。 在性能不同的Web Servers之间平均分配请求,可能造成:性能差的机器成为系统的瓶颈;性能好的机器的资源没有充分利用, 造成投资浪费。 2.Web Server对每个请求返回的数据量,会话持续的时间有差异。 在性能相同的Web Servers之间,用Round Robin方式实现负载分担,也可能造成Web Servers之间的负载不平衡。Web Server对每个不同的请求,返回的数据量不同,是某些ISP的Web Server的负载不平衡的原因。 c.服务器分配不合理 采用这种方式实现服务器负载分担时,对服务器的物理位置没有要求,可以是集中在同一地点的,也可以分步在全球的。有些ISP可能在美洲、欧洲、亚洲都有自己的应用服务器。采用DNS Round Robin方式,可能让亚洲用户访问美洲的服务器、美洲用户访问亚洲的服务器。这降低了系统对用户的反应速度,降低了系统的服务质量;引起不必要的WAN流量,增加了ISP的通信成本。 2.2 集群技术 由服务器组成的阵列可以构成Cluster(集群),Cluster是指两台或多台系统与合适的硬件及软件互连,提供连续访问网络服务(文件服务、应用程序、资源等)的单点,以及提供该网络单一的系统图像。除作为单一的系统提供服务,集群型系统还具有恢复服务器级故障的能力。集群还可通过在群集器增加另一服务器的方式,从内部增加服务器的处理能力,并通过使用冗余系统提高固有的可靠性。 这可以算是负载分担的一种软件解决方案,根据不同的市场定位,厂商们提供了基于不同平台的群集产品,现在主要有三种:基于NT 、基于Unix和基于 Linux的解决方案。基于NT的产品性价比高、开放性好、易操作,且人员成本低;基于Unix的产品价格昂贵,但稳定性好,是关键数据计算良好的选择;基于Linux的产品已经有支持128个节点的成功案例。 采用群集系统虽然能够提供高可用性和服务器扩展性,但在这种方式下,随着服务器数量的增加,集群的价格变得越来越昂贵,管理越来越复杂,而且集群中的服务器性能非线性增加,而是单台服务器的平均性能在逐步下降,因此它的服务器可扩展性不能达到原有的期望值;另外,集群系统与操作系统密切相关,并且需要上层应用软件的支持(如并行数据库软件等),可移植性较差,因此每台服务器不是可独立选择软硬件平台的,整个集群系统必须是在彼此相同的操作系统和群集软件的协调下紧密配合才能工作,系统与软硬件平台处于紧耦合状态。 2.3 负载分担服务器 为了解决Round Robin DNS带来的问题,可以单独设立一台负载分担器对服务器进行负载分担。这台设备可能是基于PC/UNIX平台的服务器(软件解决方案),也可能是专用的硬件设备,网络拓扑图如下所示: 图2.3.1 网络均衡设备工作拓扑图 这是一种需要添加硬件的解决方案,因为它的专用性,即服务器上软件或网络设备硬件本身就是根据均衡网络负载的需要而设计的,所以它可能具有许多Round Robin DNS和Cluster系统所没有的优点: l 高可用性:负载分担设备会实时监视服务器的健康状态,将流量分配到正常运行的服务器上,保证了服务的不间断性。 l 服务质量保证:可以对负载分担设备设定合理的规则,并根据此规则将流量进行分配,选择当前条件下最好的服务器对访问请求进行服务,保证了对用户的服务质量。 l 服务器扩展性:服务器的扩展变得非常方便和容易,可以根据需要随时增加和减少服务器的数量。 l 安全性:由于服务器被负载分担设备隔断,负载分担器起到一个类防火墙的功能,可以对内部服务器提供IP地址过滤、NAT转换等附带功能。 但是,由于这种设备工作方式和分担机制的限制,提供上述功能的同时也带来以下的问题: l 设备本身容易成为业务流量的瓶颈,尤其是对于软件解决方案的服务器。一般说来,负载分担器的两个以太网口最多达到100M的速率,而到达所有服务器的流量都要经过这台负载分担器,也就是说,负载分担器本身的处理器能力和网络能力成了所有服务器处理能力的限制。 l 负载分担设备如果出现单点故障,所有的服务器将都不能对外提供服务。 l 对所有的应用服务都增加了一跳,增加了服务时延。 2.4 负载分担交换机 普通的交换机是工作在第二层的交换设备,它并不关心服务器负载、性能等更高层的应用内容。而负载分担交换机则是工作在三、四层以至第七层的特殊的网络设备,因此又被称作四层交换机。它是专门为平衡服务器负载等功能而设计的,采用第四层交换技术,可以解决DNS Round Robin带来的问题,提高应用服务器系统的可靠性,并在应用服务器之间合理分配负载。 当需要分担负载的应用服务器组在同一个局域网中时,利用四层交换机构建的网络结构示意图如下: 图2.4.1 第四层交换示意图 2.4.1 技术特性 利用四层交换技术可以实现以下特性: l 负载分担的合理性 四层交换机可以支持多种负载分担算法,包括Least Connection、Round Robin、MinMiss和Hash等算法,以及对算法的加权。可以通过设置最大连接数、备份应用服务器、溢出应用服务器等手段来解决负载分担的合理性。 l 负载分担的可靠性 四层交换机能够监测所有应用服务器的可用性,包括物理连接、应用服务器主机、应用服务本身的健康状况。当发现某台应用服务器不能提供服务时,四层交换机自动把服务请求分配到好的应用服务器。 四层交换机还可以通过设置每台应用服务器能承受最大的会话数、设置溢出应用服务器、备份应用服务器等手段来进一步保证Web系统的可靠性。 l 负载分担的可扩展性 采用四层交换技术的网络的可扩展性强,就本地而言,当用户访问量达到相当数量,后端服务器无法承受时,可以简单方便地在四层交换机后加挂更多的应用服务器分担膨胀的访问负载,而不影响原有服务器的正常工作。 l 负载分担的安全性 由于四层交换机屏蔽了内部服务器的实际网络结构和IP 地址,而是以虚拟IP形式对外公布统一的服务地址,这样极大地提高了真正服务器簇的安全性。 l 分布式负载分担 如果地理上分布的每个服务器簇都配置一个四层交换机,还可以实现分布式的负载分担。通过各地四层交换机之间的交互信息,可以为访问者选择一个最合适的服务地点;并在一个节点的服务器全部不能提供服务时,通过四层交换机的代理或其它方式将服务转移,使服务不发生中断。 2.4.2 工作原理 当服务器处于同一局域网内时,四层交换机与每台应用服务器通过以太网相连,在每台服务器配置不同的IP地址(该地址可以为公开地址,也可为保留地址,并不对外通告),四层交换设备将这几个IP地址对外映射为一个公开的IP地址(VIP)。这样由数据访问时由四层交换机进行地址转换,屏蔽了内部服务器的实际拓扑。 下图为一台四层交换机为两台应用服务器进行负载分担的例子。由DNS将a.com 解释为四层交换机的虚拟IP地址100.2.2.2,而实际的服务器IP为10.1.1.1和10.1.1.2,对客户端来说多台服务器的存在是透明的。 图2.4.2 四层交换机IP地址的设置 当发往应用服务器的服务请求数据包到达四层交换设备时,四层交换设备可以根据设置的负载分担规则选择一台服务器为目的服务器,并将该数据包重定向后送到该服务器。四层交换设备将监视这一连接并保证这一连接的以后的所有数据都会送到同一台服务器。四层交换设备实时监视每台应用服务器的健康状态,当其中一台服务器出现故障时,四层交换设备会发现并将以后的所有连接请求都送到另外一台服务器。 2.5 智能DNS 再回到Round Robin DNS所实现的负载分担,虽然这种技术有很多的弊病,但是它毕竟提供了一种很好的思路,即利用DNS可以实现对服务器的负载分担,而且没有对服务器地域分布的要求。Round Robin DNS实现的负载分担之所以效果比较差,是因为DNS本身不是为负载分担而设计的,如果能够对标准的DNS进行改造,使之适应负载分担的特殊要求,那么将会是一种比较完善的解决方案。 适应负载分担需求的智能DNS就是根据上述想法设计的,首先智能DNS也是一种与标准DNS兼容的域名服务器,其次它的智能体现在在回答客户机的DNS Request时,不是盲目地轮流回答不同的服务器IP地址,而是根据客户机的地址位置、服务器的负载情况、健康状态等等信息决定一个性能最优的服务器回答给客户机,使客户机能够享受到最好的服务。智能DNS的工作原理图如下所示: 第三章 各种技术的分析比较 -------------------------------------------------------------------------------- 在上一章中对各种负载分担技术分别进行了原理性的介绍,下面我们对这几种实现技术进行相互之间的分析和比较: 3.1 集中式负载分担 所有的技术都可以实现集中式负载分担。 1.DNS方式本身不关心服务器物理位置,在集中式环境中发挥不了其优势,因此不建议在集中式负载分担中选用DNS技术实现; 2.集群技术虽然是为集中式环境设计的,但是它主要应用于一些与数据库和大数据量的运算相关的专门应用,一般不会在WWW服务器上应用; 3.负载分担服务器与负载分担交换机相比,两者在实现技术上具有很大的相似性。只不过由于负载分担服务器在网络拓扑上增加了一跳,而且受负载分担服务器本身的处理能力和网络能力的限制,在性能上可能不如负载分担交换机。但这两种设备都是针对信息服务器的负载分担专门设计的,在集中式的环境中都能提供很好的功能和性能。 因此可以说,对于网上信息服务器的集中式负载分担,建议选择负载分担服务器或四层交换机。 常用的集中式负载分担算法有:最小连接数、最短响应时间、Round Robin等,以及对上述算法的加权。另外还有基于URL的负载分担算法。 3.2 分布式负载分担 可以实现分布式负载分担的技术有:Round Robin DNS、四层交换机、智能DNS。 1.Round Robin DNS已经因为其功能过于简单、不能适应应用中更高的需求,已经属于被淘汰的技术; 2.利用四层交换机实现广域的负载分担有几种可能的途径: a.HTTP重定向 通过HTTP的重定向功能,可以将流量引导到指定的节点,但是用户在第一次建链时需发送两次连接建立请求,会感觉到时延加大,而且此项技术只能针对HTTP的应用。 b.IP代理 由中间的四层交换机充当IP代理,实现网络访问的负载分担。这种技术对所有的IP应用都可以实现,但缺点是在客户端和服务器之间增加了额外的中转站,降低效率,增加时延。 c.三角划分 中间的四层交换机为用户选择更好的服务站点,并转发请求包,最终的服务站点直接将回答报文发给用户,并伪装成中间的服务站点IP。但是伪装的IP源地址可能在中间的路由中转中产生问题。 d.DNS解析 这种技术与我们的智能DNS技术是一致的,所不同的是在四层交换机内部提供DNS功能。通过DNS的解析的不同将用户的访问引导到不同位置的服务器上。 不论使用以上哪种技术手段,都需要在分布式的每一个服务节点配置至少一台四层交换机,因为各地服务节点之间的状态查询都是通过四层交换机来进行的。 3.智能DNS 由于DNS技术不关心服务器的地理位置,这种方式是最能发挥其优势的分布式负载分担技术。智能的DNS在回答客户的DNS请求时,可以根据客户的地理位置、服务器的健康状态、负载情况等为客户选择一个最优的服务节点来回答,自然而且方便地将访问流量引导到不同的节点,而且达到最优的服务性能。 根据以上分布式负载分担技术的实现分析,在分布式的应用环境中,智能DNS技术具有最优的实现性能和最方便的实现手段,因此在分布式负载分担技术中应推为首选。 3.3 集中式与分布式的比较 至于服务器的负载分担要采用哪种形式,完全依赖于应用的需求。集中式容易配置和管理,实现起来也相对简单,但是既然服务器是集中放置的,那么到互联网的网络出口是相同的,用户的访问量以网络出口带宽为上限;而合理的分布式负载分担,可以增加网络出口,提高网络访问的总带宽,而且由于能够实现就近访问,可以有效地减少不必要的网络流量,提高用户的访问速度,减少访问时延,但是分布式负载分担的代价就是复杂的实现和管理,并且要考虑异地服务器之间的同步问题。 在大型的实际应用中,很可能采用这两种实现技术的一个综合。即服务器分布式放置,利用广域的负载分担技术实现异地的负载分担;而在每一个服务节点有多台服务器,通过集中式技术实现节点内服务器之间的负载分担。 第四章 产品支持情况 -------------------------------------------------------------------------------- 目前在服务器负载分担方面提供产品的厂家不是特别多,还是有一些厂家正在致力于这方面的工作。现在我们把其中主要厂家的产品情况做一列举和简单介绍: 4.1 Unitech公司的解决方案 Alteon四层交换机 + IntelliDNS + NetPlicator Alteon公司的四层交换机产品包括Alteon 180系列、Alteon 700系列和ACEDirector,在WebOS上支持基于常用的负载平衡算法和基于URL的负载分担,而且支持基于DNS技术的广域负载分担和重定向技术。 IntelliDNS是一种智能的DNS软件,支持Solaris平台和Linux平台。它可以将不同服务节点对应的客户IP地址段入库,根据访问的源IP回答就近的服务节点IP;也可以根据最短响应时间等方式实现本地化访问;支持常用的负载平衡算法。 NetPlicator是一种Cache Server,它可以与IntelliDNS配套使用,不需要采取额外的同步措施,即可实现广域负载分担中的异地服务器镜像。 Unitech公司的解决方案是综合使用以上三种产品,利用Alteon的四层交换机实现本地的负载均衡,利用IntelliDNS实现异地服务节点间的负载均衡,利用NetPlicator实现异地的服务器镜像。 图4-1 Unitech产品负载均衡解决方案 4.2 F5公司的解决方案 BigIP + 3DNS + GlobalSite Controller + SEE-IT Network Manager BigIP是一种专用的负载分担硬件设备,对本地Internet站点或者数据中心提供智能的负载均衡。它对Internet通信量和容量提供自动和智能的管理,提供全部的性能包括可靠性,可伸缩性,高速率和管理性。 3DNS是一种面向多个分布式站点的高效负载均衡控制器,加入了智能功能的标准DNS设备。提供十四种最佳性能的负载均衡和通信量分配模式;与BIG-IP配合工作,实现端到端的高效智能平衡作用。利用3DNS与BIG-IP实现负载均衡的网络示意图如下: 图4-2 F5产品负载均衡解决方案 Global-Site controller是管理分布式站点内容的文件复制及同步控制器。主要是针对多个数据中心(分散各地)的管理。主要是实现如何将所有的内容轻松的增加到所有的Server,保证所有的Server都是最新的信息。 图4-3 利用Global-Site Controller实现服务器同步管理 F5公司的解决方案是综合使用以上三种产品,利用BIG-IP实现本地的负载均衡,使用3DNS实现广域的负载分担,利用Global-Site Controller实现异地服务节点之间的同步管理。 另外,F5公司还提供一个管理软件SEE-IT Network Manager,可以对负载分担的网络进行实时的监控和趋势分析。以易读的图表和曲线图形式迅速提供各种信息,包括:服务器的状态及通信量,连接的数量,可用和不可用的IP地址,各个应用的有效性,基于流向趋势的触发式警告,站点流向趋势和分析工具,计划未来网络和服务器的需求,预告网络何时需要增加服务器,何时需要界面升级,以及一些其他的与网络的容量相关的修改。 4.3 RADWARE公司的WSD系列产品 RADWARE公司的WSD(Web Server Director)产品家族包括WSD-PRO,WSD-DS(Distribute Solution),WSD-NP(Network Proximity),所有的系列产品提供完全的3层功能,提供IP过滤、路由等传统路由器的功能,当然还提供更高层的负载分担功能。 WSD-PRO是一种局域网上的集中式负载分担硬件设备,它提供2-4个10M或100M的以太网口,对集中的服务器群提供常规的负载分担手段,保证了服务的容错性、可靠性、可扩展性等等。 WSD-DS是WSD家族的分布式负载分担设备,它利用各种重定向手段(包括三角划分、DNS、HTTP等)实现广域的负载分担,但是它只能根据服务器负载情况、健康状况等信息来决定负载的流向,而WSD-NP则可根据地理位置的临近关系实现服务器负载分担的本地化,利用PRP(Promixity Reporting Protocol)协议实现更高级的广域负载分担算法(利用实时负载、时延和跳数的算法)。 4.4 Resonate公司的软件解决方案 Resonate公司针对集中式和分布式两种应用分别提供Central Dispatch和Global Dispatch两个软件产品予以支持。 Central Dispatch属于服务器式的集中式负载分担产品。它支持下述操作系统平台:Windows NT 4.x,Solaris 2.5.1/2.6/ 7,AIX 4.3.1/4.3.2/ 4.3.3,Linux - Red Hat 6 with kernel 2.2.12-20 。 Global Dispatch是以DNS方式支持分布式负载分担的智能DNS软件产品,它支持Windows NT 4.x 和Solaris 2.5.1/2.6/7 操作系统平台。Global Dispatch首先支持静态的直接流量表,根据指定的IP范围列表决定使用的服务节点;然后支持加权的Round Robin、最小时延、最小负载等算法的负载分担。Global Dispatch产品分为两部分:Global Dispatch Manager和Global Dispatch Agent,其中Manager 为管理端,而Agent需要安装在被管理的POP点上,负责与Manager通信并提供服务器负载、时延等信息。 4.5 Foundry公司的ServerIron ServerIron是Foundry公司的四层交换设备,因此具有集中式负载分担功能。但是同时它又具有了广域负载分担的功能,是一个二者功能兼备的产品。 作为集中负载分担设备,ServerIron对各种常用的负载分担算法提供线速交换,对网络流量进行可控制的管理; 作为广域负载分担设备,ServerIron可作为DNS代理或DNS的前置机,甚至直接作为授权的DNS本身,对服务器进行健康情况检查,有洲际的IP划分知识,并根据客户的响应时延建立一个地理位置临近关系的数据库,并在ServerIron之间利用GSLB协议互相通信,根据上述知识来进行服务器负载的分担,并且不影响DNS的响应速度。 4.6 RedHill公司的WebMux RedHill公司的WebMux是一个专用的负载分担硬件设备,它有两个局域网口,分别连接路由器和服务器端的局域网,提供集中式的服务器负载分担。这种产品相对比较简单,不提供复杂的负载分担算法,也不具备广域的负载分担能力,只是依靠它专有的硬件平台支持高速的Round Robin方式的负载分担,并且能够检测服务器的故障,及时进行故障点隔离。利用这种设备进行服务器负载分担的示意图如下所示: 图4-4 WebMux的集中式负载分担 第五章 实现方案建议 -------------------------------------------------------------------------------- 从上一章的产品列举中可以看出,各个厂家分别有各自成套的解决方案和产品。如何更好地利用各个厂家的产品,为不同的应用需求提出最佳解决方案,是本研究课题的任务之一。 5.1 实现方案分析与建议 解决方案是与用户需求密切相关的,因此我们首先将目前国内用户的需求进行分类,然后分别进行讨论。 1.对于国内的中小型服务站点,为了解决单台服务器的服务不可靠,和服务能力不足的问题,可以采用集中式负载分担技术,选用上述产品中的负载分担服务器或四层交换机设备来解决,即Alteon交换机、F5的BIG-IP、RADWARE的WSD-PRO、Resonate的Central Dispatch、Foundry的ServerIron和RedHill公司的WebMux等产品; 2.对于国内的大型站点,由于日访问量比较大,单单采用集中式的解决方案可能仍然不能满足用户需求,建议采用分布式的解决方案,对于超大型站点,建议采用分布与集中相结合的解决方案。 a) 如果采用单纯的分布式解决方案,那么适宜的产品即为智能DNS。可以满足此种需求的DNS产品有:Unitech公司的IntelliDNS、F5公司的3DNS、Resonate的Global Dispatch。需要注意的是,分布式的负载分担中必须考虑异地服务器的同步问题,因此相应的同步管理产品也在考虑之列。 b) 如果采用分布与集中相结合的方案,那么适宜的产品即为智能DNS与集中负载分担设备的结合,具体来说,符合要求的产品有:Unitech公司的IntelliDNS+Alteon交换机、F5公司的3DNS+BIG-IP、Resonate公司的Global Dispatch+Central Dispatch、RADWARE公司的WSD-NP+WSP-PRO、Foundry公司的ServerIron。与单纯的分布式解决方案相同,也必须考虑异地服务器的同步管理产品。 5.2 用户方与电信方的实现分析 上一节中建议的解决方案都是现实可行的实现方式和产品建议,可是最终的实现是由用户方还是电信方来实现,各有什么利弊,下面我们就这一个问题来进行一下讨论。 首先,无论由用户和电信哪一方来实现,所采用的技术可以是相同的,即我们需要负载分担服务器、四层交换机或智能的DNS产品; 其次,电信方作为运营商,具有技术和线路带宽方面的优势,如果能为用户提供增值服务,那么将是方便用户、增加收入的一种很好的思路。运行商为用户提供服务,重要的一点是要能够复用,即利用一种设备为多个用户提供服务,才能够达到解决成本,带来经济效益的目的。对于服务器的负载分担来讲,如果不能实现复用,而只是为一个用户提供专门的一套设备,就不能够达到节约投资的目的,那么只能依靠电信的网络带宽得到收入,不能带来额外的经济效益。 在集中式的负载分担中,不容易实现同种服务之间(比如HTTP服务)设备的复用,基本上是一套设备为一个站点服务,但是如果用户的需求是短期的,那么还可以在时间上复用,即在不同的时间段内为不同的用户提供服务。因此,如果在时间各异的短期应用需求存在的情况下,可以由电信方来提供集中式的负载分担业务,进行短期的租借式服务。 在分布式的负载分担中,智能DNS(IntelliDNS、3DNS、Global Dispatch)设备本身即可提供复用功能,因此由电信运营商来提供此类服务,可起到节约成本、方便用户、增加电信收益的目的。但是此类产品的复用度不是很高,例如IntelliDNS、3DNS都是最多提供8个站点的分布式负载分担。在实际运作中,可灵活采用不同的实现方式:电信全部承包式,即由电信运行商提供全部的DNS设备、分布的服务站点建设(可综合集中式技术)、异地服务器同步管理等等,并提供信息站点的网络带宽(所有设备放在电信机房),用户享受全套高效的信息站点建设和管理服务;电信与用户合作式,电信方只提供智能DNS服务,用户负责自己的分布式的服务站点的建设,服务站点可以由电信托管,也可由自己专线接入互联网。总之,电信运营商可利用负载分担设备厂家的产品提供增值的网络服务,加速中国信息网络建设的进程。 第六章 总结 -------------------------------------------------------------------------------- 面对日益膨胀的网络信息访问,如何使合理分担信息站点服务器的网络负载,使服务器具有可扩充性、高可用性,并且改善用户得到的服务性能,是当前信息社会迄待研究并解决的一个重要问题。 许多专业人士和产品厂家致力于这方面的研究,已经做了许许多多的工作,提出了各种解决问题的方法,提供了现实可行的产品。从技术层面来讲,可行的技术手段有Round Robin DNS、集群技术、负载分担服务器、负载分担交换机、智能DNS等等,分别实现了集中式或分布式的服务器负载分担;一些产品厂家如Unitech、F5、Resonate、RadWare、Foundy和RedHill等等分别提出了各自的解决方案,并提供了相应的网络产品,使得服务器的负载分担问题切实可行。 根据网上站点的实际需求情况,选择适合的服务器负载分担技术和产品,可以最大限度的发挥产品的作用,使对服务器的访问达到满意的效果。对于网上信息服务器的实际访问量,从小到大可依次选用集中式、分布式、集中与分布相结合式负载分担,并选用前面所述厂家的相应产品,实现信息服务器合理优化的负载分担。对于纯集中式负载分担,一般来说由用户方自己建设,电信也可建设此类项目,并进行短期的租借服务;对于分布式负载分担,电信方可以在此方面做文章,利用设备本身的可复用性,为多个站点提供分布式的服务器负载分担,提供网络增值服务,增加电信收益,同时也方便用户的信息站点建设。 Back |
回复于:2003-08-18 10:55:54 |
关于网上信息服务器负载分担问题的研究报告 中国农业银行与中国邮电电信总局 第一章 问题的提出 -------------------------------------------------------------------------------- 随着Internet的迅猛发展,互联网用户数目迅速增加,网上形形色色的信息站点和信息服务也层出不穷。其中许多热门网站和重要站点的服务访问量日益增大,服务器的负荷越来越严重。在服务器的服务提供方面暴露出的问题主要有以下方面: 1)服务器的服务能力远远不能满足需求 虽然各个厂家的服务器性能逐步提高,其处理器芯片不断升级、内存和硬盘的存储容量越来越大,但是仍然不能满足急剧膨胀的用户访问需求。通常来讲,一台WEB服务器最多可以提供同时对几百、上千个用户的连接服务。可以这样说,无论怎样提高服务器的性能,单台服务器都不能满足目前几乎是无限膨胀的用户需求。 2)服务器的服务可靠性不能保证 服务器本身的软件、硬件有可能出现故障,或到服务器的网络连接出现故障,或者由于网上黑客的光顾和破坏导致故障,那么在故障恢复之前,用户将会在一段时间内得不到应有的服务。 3)服务响应时间长,延迟大 服务器忙时的反应能力下降,会造成用户端连接速度缓慢,延迟增加;如果服务器响应正常,由于网络忙造成的拥塞同样也会影响对用户的服务性能,用户会感觉到服务几乎处于停滞状态。 如何改善信息源在线服务的性能,对信息服务器进行负荷分担,增强服务可靠性,成为ISP和ICP们普遍关心的问题,也是我们电信运营部门关心的问题。如何对网上服务器进行负载分担,进行服务性能的改善,采用何种技术手段进行,以什么方式进行(由ISP和ICP们自行解决,还是由电信部门提供服务),已经成为一个迄待研究的课题。 为了解决上述问题,我们申请本课题的立项和研究,对网上信息服务器的负载分担问题进行调研和研究,力求找到电信方和信息源方各自现实可行的解决问题的方法和途径,比较其优劣,并对可实现的商家产品提出建议。 第二章 -------------------------------------------------------------------------------- 几种实现技术 由于单台服务器的严重超负荷,为解决这个问题,人们首先想到的是增加服务器的数量,以服务器软件、硬件的增加来提高服务性能,并通过设备冗余来增加服务的可靠性。但是增加的服务器软硬件不是分散独立和毫无关系的,而是需要通过特定的技术来协同工作,才能到达提高服务性能和可靠性的目的。 如果有一种智能的系统可以实现对业务流量的管理,将同一种业务分担到不同的服务器上,则可以很好地解决服务器的可扩展性和服务性能要求。我们将这种技术称之为服务器的负载分担技术。 根据信息服务器放置的物理位置,我们将服务器负载分担的实现技术分为两种:集中式负载分担和分布式负载分担。 2.1 Round Robin DNS DNS是专门实现域名解析的服务器,可是利用它的Round Robin功能,我们可以很方便地实现服务器的可扩展性,即可以增加服务器的数量,并通过DNS的设置,利用DNS的Round Robin方式,对每个DNS请求,轮流回答不同的服务器地址,从而实现服务器之间的负载分担。采用这种方式不需要对应用服务器的硬件环境、操作系统甚至应用软件都没有过多的要求,服务器之间相对比较独立,比如对于WWW服务,可以用PC服务器上Windows NT操作系统的IIS和Unix服务器上Netscape的Enterprise Server来共同组成一个WWW的服务。 这是最简单、也是最传统的一种实现服务器负载分担的方式,它不需要为实现多台服务器的负载分担而增加任何的软硬件投资,但是采取这种方式在其实现的功能和性能上存在很多问题: a.系统的可靠性不能保证 当某台Web Server不能提供Web 服务时,DNS Server不能发现,仍然按Round Robin的方式把用户的HTTP请求平均分配到Web Server群。在一个有3台Web Server的系统中,如果有1台Web Server不能提供Web 服务,按照DNS Round Robin的分配方式,将有1/3的用户不能得到Web 服务,严重影响系统的服务质量。 b.负载分担的不一定合理 DNS Round Robin方式没有考虑: 1.Web Servers之间的性能可能有差异。 在性能不同的Web Servers之间平均分配请求,可能造成:性能差的机器成为系统的瓶颈;性能好的机器的资源没有充分利用, 造成投资浪费。 2.Web Server对每个请求返回的数据量,会话持续的时间有差异。 在性能相同的Web Servers之间,用Round Robin方式实现负载分担,也可能造成Web Servers之间的负载不平衡。Web Server对每个不同的请求,返回的数据量不同,是某些ISP的Web Server的负载不平衡的原因。 c.服务器分配不合理 采用这种方式实现服务器负载分担时,对服务器的物理位置没有要求,可以是集中在同一地点的,也可以分步在全球的。有些ISP可能在美洲、欧洲、亚洲都有自己的应用服务器。采用DNS Round Robin方式,可能让亚洲用户访问美洲的服务器、美洲用户访问亚洲的服务器。这降低了系统对用户的反应速度,降低了系统的服务质量;引起不必要的WAN流量,增加了ISP的通信成本。 2.2 集群技术 由服务器组成的阵列可以构成Cluster(集群),Cluster是指两台或多台系统与合适的硬件及软件互连,提供连续访问网络服务(文件服务、应用程序、资源等)的单点,以及提供该网络单一的系统图像。除作为单一的系统提供服务,集群型系统还具有恢复服务器级故障的能力。集群还可通过在群集器增加另一服务器的方式,从内部增加服务器的处理能力,并通过使用冗余系统提高固有的可靠性。 这可以算是负载分担的一种软件解决方案,根据不同的市场定位,厂商们提供了基于不同平台的群集产品,现在主要有三种:基于NT 、基于Unix和基于 Linux的解决方案。基于NT的产品性价比高、开放性好、易操作,且人员成本低;基于Unix的产品价格昂贵,但稳定性好,是关键数据计算良好的选择;基于Linux的产品已经有支持128个节点的成功案例。 采用群集系统虽然能够提供高可用性和服务器扩展性,但在这种方式下,随着服务器数量的增加,集群的价格变得越来越昂贵,管理越来越复杂,而且集群中的服务器性能非线性增加,而是单台服务器的平均性能在逐步下降,因此它的服务器可扩展性不能达到原有的期望值;另外,集群系统与操作系统密切相关,并且需要上层应用软件的支持(如并行数据库软件等),可移植性较差,因此每台服务器不是可独立选择软硬件平台的,整个集群系统必须是在彼此相同的操作系统和群集软件的协调下紧密配合才能工作,系统与软硬件平台处于紧耦合状态。 2.3 负载分担服务器 为了解决Round Robin DNS带来的问题,可以单独设立一台负载分担器对服务器进行负载分担。这台设备可能是基于PC/UNIX平台的服务器(软件解决方案),也可能是专用的硬件设备,网络拓扑图如下所示: 图2.3.1 网络均衡设备工作拓扑图 这是一种需要添加硬件的解决方案,因为它的专用性,即服务器上软件或网络设备硬件本身就是根据均衡网络负载的需要而设计的,所以它可能具有许多Round Robin DNS和Cluster系统所没有的优点: l 高可用性:负载分担设备会实时监视服务器的健康状态,将流量分配到正常运行的服务器上,保证了服务的不间断性。 l 服务质量保证:可以对负载分担设备设定合理的规则,并根据此规则将流量进行分配,选择当前条件下最好的服务器对访问请求进行服务,保证了对用户的服务质量。 l 服务器扩展性:服务器的扩展变得非常方便和容易,可以根据需要随时增加和减少服务器的数量。 l 安全性:由于服务器被负载分担设备隔断,负载分担器起到一个类防火墙的功能,可以对内部服务器提供IP地址过滤、NAT转换等附带功能。 但是,由于这种设备工作方式和分担机制的限制,提供上述功能的同时也带来以下的问题: l 设备本身容易成为业务流量的瓶颈,尤其是对于软件解决方案的服务器。一般说来,负载分担器的两个以太网口最多达到100M的速率,而到达所有服务器的流量都要经过这台负载分担器,也就是说,负载分担器本身的处理器能力和网络能力成了所有服务器处理能力的限制。 l 负载分担设备如果出现单点故障,所有的服务器将都不能对外提供服务。 l 对所有的应用服务都增加了一跳,增加了服务时延。 2.4 负载分担交换机 普通的交换机是工作在第二层的交换设备,它并不关心服务器负载、性能等更高层的应用内容。而负载分担交换机则是工作在三、四层以至第七层的特殊的网络设备,因此又被称作四层交换机。它是专门为平衡服务器负载等功能而设计的,采用第四层交换技术,可以解决DNS Round Robin带来的问题,提高应用服务器系统的可靠性,并在应用服务器之间合理分配负载。 当需要分担负载的应用服务器组在同一个局域网中时,利用四层交换机构建的网络结构示意图如下: 图2.4.1 第四层交换示意图 2.4.1 技术特性 利用四层交换技术可以实现以下特性: l 负载分担的合理性 四层交换机可以支持多种负载分担算法,包括Least Connection、Round Robin、MinMiss和Hash等算法,以及对算法的加权。可以通过设置最大连接数、备份应用服务器、溢出应用服务器等手段来解决负载分担的合理性。 l 负载分担的可靠性 四层交换机能够监测所有应用服务器的可用性,包括物理连接、应用服务器主机、应用服务本身的健康状况。当发现某台应用服务器不能提供服务时,四层交换机自动把服务请求分配到好的应用服务器。 四层交换机还可以通过设置每台应用服务器能承受最大的会话数、设置溢出应用服务器、备份应用服务器等手段来进一步保证Web系统的可靠性。 l 负载分担的可扩展性 采用四层交换技术的网络的可扩展性强,就本地而言,当用户访问量达到相当数量,后端服务器无法承受时,可以简单方便地在四层交换机后加挂更多的应用服务器分担膨胀的访问负载,而不影响原有服务器的正常工作。 l 负载分担的安全性 由于四层交换机屏蔽了内部服务器的实际网络结构和IP 地址,而是以虚拟IP形式对外公布统一的服务地址,这样极大地提高了真正服务器簇的安全性。 l 分布式负载分担 如果地理上分布的每个服务器簇都配置一个四层交换机,还可以实现分布式的负载分担。通过各地四层交换机之间的交互信息,可以为访问者选择一个最合适的服务地点;并在一个节点的服务器全部不能提供服务时,通过四层交换机的代理或其它方式将服务转移,使服务不发生中断。 2.4.2 工作原理 当服务器处于同一局域网内时,四层交换机与每台应用服务器通过以太网相连,在每台服务器配置不同的IP地址(该地址可以为公开地址,也可为保留地址,并不对外通告),四层交换设备将这几个IP地址对外映射为一个公开的IP地址(VIP)。这样由数据访问时由四层交换机进行地址转换,屏蔽了内部服务器的实际拓扑。 下图为一台四层交换机为两台应用服务器进行负载分担的例子。由DNS将a.com 解释为四层交换机的虚拟IP地址100.2.2.2,而实际的服务器IP为10.1.1.1和10.1.1.2,对客户端来说多台服务器的存在是透明的。 图2.4.2 四层交换机IP地址的设置 当发往应用服务器的服务请求数据包到达四层交换设备时,四层交换设备可以根据设置的负载分担规则选择一台服务器为目的服务器,并将该数据包重定向后送到该服务器。四层交换设备将监视这一连接并保证这一连接的以后的所有数据都会送到同一台服务器。四层交换设备实时监视每台应用服务器的健康状态,当其中一台服务器出现故障时,四层交换设备会发现并将以后的所有连接请求都送到另外一台服务器。 2.5 智能DNS 再回到Round Robin DNS所实现的负载分担,虽然这种技术有很多的弊病,但是它毕竟提供了一种很好的思路,即利用DNS可以实现对服务器的负载分担,而且没有对服务器地域分布的要求。Round Robin DNS实现的负载分担之所以效果比较差,是因为DNS本身不是为负载分担而设计的,如果能够对标准的DNS进行改造,使之适应负载分担的特殊要求,那么将会是一种比较完善的解决方案。 适应负载分担需求的智能DNS就是根据上述想法设计的,首先智能DNS也是一种与标准DNS兼容的域名服务器,其次它的智能体现在在回答客户机的DNS Request时,不是盲目地轮流回答不同的服务器IP地址,而是根据客户机的地址位置、服务器的负载情况、健康状态等等信息决定一个性能最优的服务器回答给客户机,使客户机能够享受到最好的服务。智能DNS的工作原理图如下所示: 第三章 各种技术的分析比较 -------------------------------------------------------------------------------- 在上一章中对各种负载分担技术分别进行了原理性的介绍,下面我们对这几种实现技术进行相互之间的分析和比较: 3.1 集中式负载分担 所有的技术都可以实现集中式负载分担。 1.DNS方式本身不关心服务器物理位置,在集中式环境中发挥不了其优势,因此不建议在集中式负载分担中选用DNS技术实现; 2.集群技术虽然是为集中式环境设计的,但是它主要应用于一些与数据库和大数据量的运算相关的专门应用,一般不会在WWW服务器上应用; 3.负载分担服务器与负载分担交换机相比,两者在实现技术上具有很大的相似性。只不过由于负载分担服务器在网络拓扑上增加了一跳,而且受负载分担服务器本身的处理能力和网络能力的限制,在性能上可能不如负载分担交换机。但这两种设备都是针对信息服务器的负载分担专门设计的,在集中式的环境中都能提供很好的功能和性能。 因此可以说,对于网上信息服务器的集中式负载分担,建议选择负载分担服务器或四层交换机。 常用的集中式负载分担算法有:最小连接数、最短响应时间、Round Robin等,以及对上述算法的加权。另外还有基于URL的负载分担算法。 3.2 分布式负载分担 可以实现分布式负载分担的技术有:Round Robin DNS、四层交换机、智能DNS。 1.Round Robin DNS已经因为其功能过于简单、不能适应应用中更高的需求,已经属于被淘汰的技术; 2.利用四层交换机实现广域的负载分担有几种可能的途径: a.HTTP重定向 通过HTTP的重定向功能,可以将流量引导到指定的节点,但是用户在第一次建链时需发送两次连接建立请求,会感觉到时延加大,而且此项技术只能针对HTTP的应用。 b.IP代理 由中间的四层交换机充当IP代理,实现网络访问的负载分担。这种技术对所有的IP应用都可以实现,但缺点是在客户端和服务器之间增加了额外的中转站,降低效率,增加时延。 c.三角划分 中间的四层交换机为用户选择更好的服务站点,并转发请求包,最终的服务站点直接将回答报文发给用户,并伪装成中间的服务站点IP。但是伪装的IP源地址可能在中间的路由中转中产生问题。 d.DNS解析 这种技术与我们的智能DNS技术是一致的,所不同的是在四层交换机内部提供DNS功能。通过DNS的解析的不同将用户的访问引导到不同位置的服务器上。 不论使用以上哪种技术手段,都需要在分布式的每一个服务节点配置至少一台四层交换机,因为各地服务节点之间的状态查询都是通过四层交换机来进行的。 3.智能DNS 由于DNS技术不关心服务器的地理位置,这种方式是最能发挥其优势的分布式负载分担技术。智能的DNS在回答客户的DNS请求时,可以根据客户的地理位置、服务器的健康状态、负载情况等为客户选择一个最优的服务节点来回答,自然而且方便地将访问流量引导到不同的节点,而且达到最优的服务性能。 根据以上分布式负载分担技术的实现分析,在分布式的应用环境中,智能DNS技术具有最优的实现性能和最方便的实现手段,因此在分布式负载分担技术中应推为首选。 3.3 集中式与分布式的比较 至于服务器的负载分担要采用哪种形式,完全依赖于应用的需求。集中式容易配置和管理,实现起来也相对简单,但是既然服务器是集中放置的,那么到互联网的网络出口是相同的,用户的访问量以网络出口带宽为上限;而合理的分布式负载分担,可以增加网络出口,提高网络访问的总带宽,而且由于能够实现就近访问,可以有效地减少不必要的网络流量,提高用户的访问速度,减少访问时延,但是分布式负载分担的代价就是复杂的实现和管理,并且要考虑异地服务器之间的同步问题。 在大型的实际应用中,很可能采用这两种实现技术的一个综合。即服务器分布式放置,利用广域的负载分担技术实现异地的负载分担;而在每一个服务节点有多台服务器,通过集中式技术实现节点内服务器之间的负载分担。 第四章 产品支持情况 -------------------------------------------------------------------------------- 目前在服务器负载分担方面提供产品的厂家不是特别多,还是有一些厂家正在致力于这方面的工作。现在我们把其中主要厂家的产品情况做一列举和简单介绍: 4.1 Unitech公司的解决方案 Alteon四层交换机 + IntelliDNS + NetPlicator Alteon公司的四层交换机产品包括Alteon 180系列、Alteon 700系列和ACEDirector,在WebOS上支持基于常用的负载平衡算法和基于URL的负载分担,而且支持基于DNS技术的广域负载分担和重定向技术。 IntelliDNS是一种智能的DNS软件,支持Solaris平台和Linux平台。它可以将不同服务节点对应的客户IP地址段入库,根据访问的源IP回答就近的服务节点IP;也可以根据最短响应时间等方式实现本地化访问;支持常用的负载平衡算法。 NetPlicator是一种Cache Server,它可以与IntelliDNS配套使用,不需要采取额外的同步措施,即可实现广域负载分担中的异地服务器镜像。 Unitech公司的解决方案是综合使用以上三种产品,利用Alteon的四层交换机实现本地的负载均衡,利用IntelliDNS实现异地服务节点间的负载均衡,利用NetPlicator实现异地的服务器镜像。 图4-1 Unitech产品负载均衡解决方案 4.2 F5公司的解决方案 BigIP + 3DNS + GlobalSite Controller + SEE-IT Network Manager BigIP是一种专用的负载分担硬件设备,对本地Internet站点或者数据中心提供智能的负载均衡。它对Internet通信量和容量提供自动和智能的管理,提供全部的性能包括可靠性,可伸缩性,高速率和管理性。 3DNS是一种面向多个分布式站点的高效负载均衡控制器,加入了智能功能的标准DNS设备。提供十四种最佳性能的负载均衡和通信量分配模式;与BIG-IP配合工作,实现端到端的高效智能平衡作用。利用3DNS与BIG-IP实现负载均衡的网络示意图如下: 图4-2 F5产品负载均衡解决方案 Global-Site controller是管理分布式站点内容的文件复制及同步控制器。主要是针对多个数据中心(分散各地)的管理。主要是实现如何将所有的内容轻松的增加到所有的Server,保证所有的Server都是最新的信息。 图4-3 利用Global-Site Controller实现服务器同步管理 F5公司的解决方案是综合使用以上三种产品,利用BIG-IP实现本地的负载均衡,使用3DNS实现广域的负载分担,利用Global-Site Controller实现异地服务节点之间的同步管理。 另外,F5公司还提供一个管理软件SEE-IT Network Manager,可以对负载分担的网络进行实时的监控和趋势分析。以易读的图表和曲线图形式迅速提供各种信息,包括:服务器的状态及通信量,连接的数量,可用和不可用的IP地址,各个应用的有效性,基于流向趋势的触发式警告,站点流向趋势和分析工具,计划未来网络和服务器的需求,预告网络何时需要增加服务器,何时需要界面升级,以及一些其他的与网络的容量相关的修改。 4.3 RADWARE公司的WSD系列产品 RADWARE公司的WSD(Web Server Director)产品家族包括WSD-PRO,WSD-DS(Distribute Solution),WSD-NP(Network Proximity),所有的系列产品提供完全的3层功能,提供IP过滤、路由等传统路由器的功能,当然还提供更高层的负载分担功能。 WSD-PRO是一种局域网上的集中式负载分担硬件设备,它提供2-4个10M或100M的以太网口,对集中的服务器群提供常规的负载分担手段,保证了服务的容错性、可靠性、可扩展性等等。 WSD-DS是WSD家族的分布式负载分担设备,它利用各种重定向手段(包括三角划分、DNS、HTTP等)实现广域的负载分担,但是它只能根据服务器负载情况、健康状况等信息来决定负载的流向,而WSD-NP则可根据地理位置的临近关系实现服务器负载分担的本地化,利用PRP(Promixity Reporting Protocol)协议实现更高级的广域负载分担算法(利用实时负载、时延和跳数的算法)。 4.4 Resonate公司的软件解决方案 Resonate公司针对集中式和分布式两种应用分别提供Central Dispatch和Global Dispatch两个软件产品予以支持。 Central Dispatch属于服务器式的集中式负载分担产品。它支持下述操作系统平台:Windows NT 4.x,Solaris 2.5.1/2.6/ 7,AIX 4.3.1/4.3.2/ 4.3.3,Linux - Red Hat 6 with kernel 2.2.12-20 。 Global Dispatch是以DNS方式支持分布式负载分担的智能DNS软件产品,它支持Windows NT 4.x 和Solaris 2.5.1/2.6/7 操作系统平台。Global Dispatch首先支持静态的直接流量表,根据指定的IP范围列表决定使用的服务节点;然后支持加权的Round Robin、最小时延、最小负载等算法的负载分担。Global Dispatch产品分为两部分:Global Dispatch Manager和Global Dispatch Agent,其中Manager 为管理端,而Agent需要安装在被管理的POP点上,负责与Manager通信并提供服务器负载、时延等信息。 4.5 Foundry公司的ServerIron ServerIron是Foundry公司的四层交换设备,因此具有集中式负载分担功能。但是同时它又具有了广域负载分担的功能,是一个二者功能兼备的产品。 作为集中负载分担设备,ServerIron对各种常用的负载分担算法提供线速交换,对网络流量进行可控制的管理; 作为广域负载分担设备,ServerIron可作为DNS代理或DNS的前置机,甚至直接作为授权的DNS本身,对服务器进行健康情况检查,有洲际的IP划分知识,并根据客户的响应时延建立一个地理位置临近关系的数据库,并在ServerIron之间利用GSLB协议互相通信,根据上述知识来进行服务器负载的分担,并且不影响DNS的响应速度。 4.6 RedHill公司的WebMux RedHill公司的WebMux是一个专用的负载分担硬件设备,它有两个局域网口,分别连接路由器和服务器端的局域网,提供集中式的服务器负载分担。这种产品相对比较简单,不提供复杂的负载分担算法,也不具备广域的负载分担能力,只是依靠它专有的硬件平台支持高速的Round Robin方式的负载分担,并且能够检测服务器的故障,及时进行故障点隔离。利用这种设备进行服务器负载分担的示意图如下所示: 图4-4 WebMux的集中式负载分担 第五章 实现方案建议 -------------------------------------------------------------------------------- 从上一章的产品列举中可以看出,各个厂家分别有各自成套的解决方案和产品。如何更好地利用各个厂家的产品,为不同的应用需求提出最佳解决方案,是本研究课题的任务之一。 5.1 实现方案分析与建议 解决方案是与用户需求密切相关的,因此我们首先将目前国内用户的需求进行分类,然后分别进行讨论。 1.对于国内的中小型服务站点,为了解决单台服务器的服务不可靠,和服务能力不足的问题,可以采用集中式负载分担技术,选用上述产品中的负载分担服务器或四层交换机设备来解决,即Alteon交换机、F5的BIG-IP、RADWARE的WSD-PRO、Resonate的Central Dispatch、Foundry的ServerIron和RedHill公司的WebMux等产品; 2.对于国内的大型站点,由于日访问量比较大,单单采用集中式的解决方案可能仍然不能满足用户需求,建议采用分布式的解决方案,对于超大型站点,建议采用分布与集中相结合的解决方案。 a) 如果采用单纯的分布式解决方案,那么适宜的产品即为智能DNS。可以满足此种需求的DNS产品有:Unitech公司的IntelliDNS、F5公司的3DNS、Resonate的Global Dispatch。需要注意的是,分布式的负载分担中必须考虑异地服务器的同步问题,因此相应的同步管理产品也在考虑之列。 b) 如果采用分布与集中相结合的方案,那么适宜的产品即为智能DNS与集中负载分担设备的结合,具体来说,符合要求的产品有:Unitech公司的IntelliDNS+Alteon交换机、F5公司的3DNS+BIG-IP、Resonate公司的Global Dispatch+Central Dispatch、RADWARE公司的WSD-NP+WSP-PRO、Foundry公司的ServerIron。与单纯的分布式解决方案相同,也必须考虑异地服务器的同步管理产品。 5.2 用户方与电信方的实现分析 上一节中建议的解决方案都是现实可行的实现方式和产品建议,可是最终的实现是由用户方还是电信方来实现,各有什么利弊,下面我们就这一个问题来进行一下讨论。 首先,无论由用户和电信哪一方来实现,所采用的技术可以是相同的,即我们需要负载分担服务器、四层交换机或智能的DNS产品; 其次,电信方作为运营商,具有技术和线路带宽方面的优势,如果能为用户提供增值服务,那么将是方便用户、增加收入的一种很好的思路。运行商为用户提供服务,重要的一点是要能够复用,即利用一种设备为多个用户提供服务,才能够达到解决成本,带来经济效益的目的。对于服务器的负载分担来讲,如果不能实现复用,而只是为一个用户提供专门的一套设备,就不能够达到节约投资的目的,那么只能依靠电信的网络带宽得到收入,不能带来额外的经济效益。 在集中式的负载分担中,不容易实现同种服务之间(比如HTTP服务)设备的复用,基本上是一套设备为一个站点服务,但是如果用户的需求是短期的,那么还可以在时间上复用,即在不同的时间段内为不同的用户提供服务。因此,如果在时间各异的短期应用需求存在的情况下,可以由电信方来提供集中式的负载分担业务,进行短期的租借式服务。 在分布式的负载分担中,智能DNS(IntelliDNS、3DNS、Global Dispatch)设备本身即可提供复用功能,因此由电信运营商来提供此类服务,可起到节约成本、方便用户、增加电信收益的目的。但是此类产品的复用度不是很高,例如IntelliDNS、3DNS都是最多提供8个站点的分布式负载分担。在实际运作中,可灵活采用不同的实现方式:电信全部承包式,即由电信运行商提供全部的DNS设备、分布的服务站点建设(可综合集中式技术)、异地服务器同步管理等等,并提供信息站点的网络带宽(所有设备放在电信机房),用户享受全套高效的信息站点建设和管理服务;电信与用户合作式,电信方只提供智能DNS服务,用户负责自己的分布式的服务站点的建设,服务站点可以由电信托管,也可由自己专线接入互联网。总之,电信运营商可利用负载分担设备厂家的产品提供增值的网络服务,加速中国信息网络建设的进程。 第六章 总结 -------------------------------------------------------------------------------- 面对日益膨胀的网络信息访问,如何使合理分担信息站点服务器的网络负载,使服务器具有可扩充性、高可用性,并且改善用户得到的服务性能,是当前信息社会迄待研究并解决的一个重要问题。 许多专业人士和产品厂家致力于这方面的研究,已经做了许许多多的工作,提出了各种解决问题的方法,提供了现实可行的产品。从技术层面来讲,可行的技术手段有Round Robin DNS、集群技术、负载分担服务器、负载分担交换机、智能DNS等等,分别实现了集中式或分布式的服务器负载分担;一些产品厂家如Unitech、F5、Resonate、RadWare、Foundy和RedHill等等分别提出了各自的解决方案,并提供了相应的网络产品,使得服务器的负载分担问题切实可行。 根据网上站点的实际需求情况,选择适合的服务器负载分担技术和产品,可以最大限度的发挥产品的作用,使对服务器的访问达到满意的效果。对于网上信息服务器的实际访问量,从小到大可依次选用集中式、分布式、集中与分布相结合式负载分担,并选用前面所述厂家的相应产品,实现信息服务器合理优化的负载分担。对于纯集中式负载分担,一般来说由用户方自己建设,电信也可建设此类项目,并进行短期的租借服务;对于分布式负载分担,电信方可以在此方面做文章,利用设备本身的可复用性,为多个站点提供分布式的服务器负载分担,提供网络增值服务,增加电信收益,同时也方便用户的信息站点建设 |