傻瓜纯洁思想里的沙子

愿意当傻瓜的人都快乐
posts - 7, comments - 3, trackbacks - 0, articles - 11

负载均衡

Posted on 2009-02-02 15:38 哈迪尤 阅读(299) 评论(0)  编辑  收藏 所属分类: 工作

    摘录自http://blog.csdn.net/miaoling1201/archive/2008/12/26/3614819.aspx

    负载均衡器可以根据实际的响应时间制定优先级交付决策,从而实现高性能、智能化流量管理,达到最佳的服务器群性能。采用第七层应用控制还可以减少通信高峰期的错误讯息,因为差错控制和流量管理技术可以侦测到一些错误信息,并透明地将会话重定向到另一个服务器,使用户顺利地进行使用。例如,服务器A不可用或者数据库出现错误,错误信息将会返回到负载均衡器上,然后会将客户的访问指向服务器B或者将消息重放到其他数据库中去,整个过程对用户是透明的。

    目前,许多厂商推出了专用于平衡服务器负载的负载均衡器。目前负载均衡器生产商有:Intel、Alteon Web、Arrow Point(已被思科并购)、Coyote Point、F5 Networks、Foundry Networks、HydraWeb以及 RADWare等。

    负载均衡器的形式多种多样,作为启动器,它以各种形式和大小出现。一些厂商,如Alteon、ArrowPoint,将负载均衡器集成到交换设备中,置于服务器与Internet链接之间;而另外一些厂商,如Coyote Point、 F5 Networks 以及HydraWeb,则运用两块网络适配器将这一功能集成到PC中,其中一块连接到前端止于Web服务器的Hub上,另一块通过路由器或其他设备连接到 Internet上。一旦负载均衡设备检测到所管理的每台服务器承载的负荷量,它会按照一定的算法来分配通信。Arrow Point公司的CS-100、F5的 Big/ip、以及Coyote Point公司的均衡器都支持循环均衡功能。其处理方法是,均衡器同时向所有可用服务器以命令序列方式发送相同数量的请求。Alteon的 AceSwitch 180、Coyote Point的均衡器、 F5 Networks的Big/ip以及RADWare的Web服务定向器支持这样一种均衡方法:它能以最小的TCP链接将请求发送到服务器。Arrow Point的CS-100还支持静态负荷均衡选项,这就是说,为服务器分配请求是建立在事先已指定负荷量的基础之上的。

    举个简单例子,使用Pentium300的机器应比Pentium200承载更多的请求。

    由于采用了负载均衡技术,自动故障恢复得以实现,服务的时间可以延长,24×7可靠性和持续运行成为可能。另外,负载均衡器一般也支持路径外返回模式,即绕过流量分配器,为那些焦急等待大量数据文件请求响应的客户提供更快的响应时间。

    总之,如果负载均衡需求简单,也就是说,只是接近于通过所有服务器的“共享”级水平,并且网络环境也只是由低速LAN组成,则不需要太高级的均衡产品。同样的,若是静态内容传输,则只要具备循环分配功能的负载均衡器也就可以了。

    在最新的负载均衡产品中,智能化越来越明显。一些智能化的负载均衡器能够侦测到像数据库错误、服务器不可用等信息,从而采取措施使会话恢复和重定向服务器,使电子商务能够得以顺利进行。多址负载均衡器可以对客户发来的访问请求进行解析,计算出最佳地址,然后将该地址返回客户,使客户自动连接到对其请求来说最佳的数据中心。


负载均衡解决Windows Server 2003服务器流量分担问题


    服务器是企业信息网络的核心。随着应用的深入,企业网内的信息流量快速增长,当用户量及其应用量很大时,在同一时刻企业的主机服务器可能要承受大量用户的来访请求,然而一台主机的处理能力是有限的,倘若访问量的增长超过了主机的处理极限,主机的处理能力就会成为企业网应用的瓶颈,这将制约网络应用的继续发展。

解决之道

 

    解决这个问题的传统思路是更换技术更加先进、性能更加强大的主机服务器,然而这将使企业面临资金投入的巨大压力,而且对于一个成长型企业来说,网络应用信息量增长的速度很快,新的主机可能在不远的将来遭遇相同的尴尬处境。

    另一个解决思路就是使用流量分担技术。即在网络内增加多台主机服务器,并让这些服务器保存和处理相同的应用内容。这样的主机服务器并不一定要求是技术最先进、性能最强大的,所以投资可以相对较少,但是由它们组成的服务器群,却能够共同完成网络的服务功能。当用户来访时,这些服务器轮流响应不同用户的请求,通过流量分担技术把大量的用户请求自动地分散到了不同的主机服务器中处理,从而减少了单个主机上的任务量,实现了网络流量在多台主机间的平衡处理。

    流量分担技术实现的方法根据系统的软硬件不同而有所区别,有通用方法也有专用方法,有的网络系统还为此提供了专门的服务。微软的Windows Server 2003就在其网络内提供了许多此类技术,主要是分布式文件系统(DFS)。

DFS 发威

    DFS即分布式文件系统,主要用于解决把分散的共享资源集中管理的问题,它其实还有一个重要的功能,就是在域环境中能够利用文件复制服务(FRS)为共享目录产生副本。

    DFS的基本概念是DFS根和DFS连接。DFS根指服务器或服务器组,是客户端试图访问文件时首先要前往的地方。这些服务器通常分布在一个域的各个站点中。DFS 连接是指从逻辑目录到可以处理文件请求的服务器(位于企业内的任意位置)上的物理共享文件夹的引用。在Windows Server 2003中,大大增强了DFS的功能。 Windows Server 2003 在可靠性方面,针对DFS 作了重要的功能提升:一个服务器可以主持多个DFS 根。在Windows 2000中,不可能在一个服务器上有多个DFS根。因此,需要有大量运行Windows 2000 的服务器来主持多个DFS根。在Windows Server 2003 中,取消了这一限制。此外,Windows 2000 群集的独立DFS 服务器只能主持一个DFS根,而Windows Server 2003允许主持多个DFS根。

    Windows Server 2003 还改进了在跨越多个站点对复制操作进行设置时的DFS行为。在 Windows 2000中,DFS 会优先考虑与客户端位于同一站点中的目标,如果在该站点中没有连接目标,它会在任何其他站点中为该客户端请求选择任意的连接目标。这种算法不是最有效的。

    例如,如果某企业有分别位于北京、天津和上海的站点,并且其客户端计算机试图访问天津中的连接,则当天津中的所有连接目标都无法访问时,该客户端计算机不会考虑通信成本的高低,而故障转移到北京或上海中的某个目标。与此不同的是,Windows Server 2003会使用主动目录(Active Directory)中的站点开销信息来选择能够满足客户端请求的站点外目标。对于该企业的这种情况,DFS 能够从主动目录了解到从天津到上海的通信费用比从天津到北京的通信费用更昂贵,因此它会根据主动目录中的站点配置相应地将天津的客户端重定向到最近的北京目标。

利用DFS

    实现流量分担方法的首先要在多台主机服务器内保持相同的内容,即把某主机的特定内容动态地复制到多台主机中。比如在Windows Server 2003 里,我们就可以借助DFS 技术来完成此目的。通过使用DFS 在域环境中能够利用文件复制服务(FRS)为共享目录产生副本这一功能,就能够把指定主机服务器内某一文件夹下的内容自动拷贝到其他一台或多台服务器中,从而就实现了主机间保持相同内容的目的。

    在Windows Server 2003 中使用DFS的第一步是要建立DFS 根目录。

    从Windows Server 2003 的管理工具进入“分布式文件系统”管理器,在这里新建DFS根目录。建立根目录的时候系统会要求选择根的类型。DFS根的类型有两种:一种是域DFS;另一种是独立DFS,要想实现目录的副本,必须选择域DFS 类型。独立DFS 只是在非域环境内建立的,它不能支持文件复制服务。

    在域环境里建立DFS,需指定域名和保存DFS 根的主机服务器名,其中域可以是本地域也可以信任域。然后如图1 所示要定义根的名称,此名称是用来在域中标识 DFS根的。接着要在主机服务器的NTFS分区内指定一个共享文件夹用来放置DFS 根。第二步是要建立链接。链接是从DFS 根中指向网络内各共享目录的指针。在“分布式文件系统”管理器里用鼠标右击已经建立的DFS根,选择“新建链接”。在新建链接的向导里需要指定链接指向的目标位置,如图2,这个位置应该是一个网络中已经存在的共享目录。然后为此链接起一个形象的名称。

    通过以上建立链接的方法可以分别把网络中各个共享目录都组织DFS 中来,这样用户只要访问DFS 根就能够访问到其中的所有共享目录了。

    域DFS的链接建立后,就可以为其创建副本。指定另一台服务器上的一个共享目录作为副本复制的目的地。接下来在复制向导中定义复制的具体对象。一台主机服务器里的共享目录可以被指定复制到其他多台服务器中。

    至此,在多台主机内保持相同内容的工作就完成了。Windows Server 2003的DFS会利用文件复制服务,把某主机服务器的特定内容动态地复制到多台服务器中。通过定义DFS 根的属性,还可以把DFS 发布到活动目录中,当域用户在活动目录里访问此主机服务器的链接内容时,DFS就会自动在多台服务器的副本间分流访问流量。然而这样的应用只解决了企业网内部 Windows用户的访问问题,但是,许多非企业网用户也许根本访问不到域的DFS根,比如广域网用户在访问主机服务器上的Web页内容时就不是直接访问 DFS根的,从而也就无法访问其中的链接副本。因此还应该选择一种更通用的方法来实现不同主机服务器间的流量分担。

借力DNS

    对于上述问题,可以通过域名服务(DNS)来解决。根据DNS的工作特点,我们的思路是让DNS将同一个主机名称轮流解析到不同的IP地址,即把信息轮流交换到不同的网络主机内,这些主机就是我们在前面已经利用Windows Sever 2003 的DFS 副本技术准备好了的、保存了相同内容的服务器,从而达到在多台主机间分担网络流量的目的。

    实现这一功能可以借助Windows Server 2003 的 DNS 服务器里提供的循环解析功能来完成。

    首先要在DNS管理器内进行“新建主机”操作,即指定主机名称与其IP地址的映射对应关系,在此应该将所有在前面介绍的已经保存了副本目录的各台主机都定义到 DNS服务器中。设置时应该注意,要根据主机的网络地址为各台主机指定不同的IP,但同时各主机都要起同一个相同的名称。经过这一步的定义后在DNS服务器里就配置出了多台具有相同名称但不同地址的主机。接下来进入属性设置的高级配置中定义服务器选项。要达到让DNS把信息轮流交换到不同主机的目的,必须在这里选中“启用循环”选项,这个功能是此技术的关键,它利用DNS将同一个主机名称轮流解析到不同的IP地址上。

    完成这些设置工作后,Windows Server 2003 网络中利用多主机服务器来分担网络流量的任务就可以实现了。当许多用户同时访问网络主机时,DNS服务器会先把第一台主机的IP地址回应给第一个用户,然后把第二台主机的IP地址回应给第二个用户,等等,当用完最后一个IP地址后再动态循环到第一台主机,以次类推。用户在访问时不用知道主机的具体网络地址,只要访问主机的名称即可,所有流量的分配工作由DNS 服务器自动完成,而且DNS 服务器还能够根据子网的划分,优先由子网内的主机来处理来自同一子网的用户访问,这样就实现了网络流量在多台主机服务器间的负载平衡。

    以上介绍的这种分担流量的方法,使用了Windows Server 2003 中的DFS 和DNS两个服务,技术完全由软件实现,实现起来比较简单,而且成本低,不需要配置额外的硬件。虽然功能相对较少,但使用操作系统本身的网络技术,不需要另外的其他负载平衡服务,所以此方法通用性较强,任何提供目录副本技术和支持DNS循环解析功能的主机服务器都能够实现。

    另外,在实际使用时,主机数量要依据网络的流量统计来决定,不切实际地增加主机数量可能会加重文件复制服务和DNS 服务的负担,反而有可能降低系统的总体性能。对于系统要求高,功能复杂的环境,应该根据需求来选择能够满足应用的方案。总之,最终目的是减轻单个主机服务器的负载压力,但不能牺牲网络其他方面的性能,所以要对网络进行统筹规划,如正确划分子网以及确定子网内的主机数量等等。


负载均衡技术的三种实现方法


    一个面向社会的网站,尤其是金融、电信、教育和零售等方面的网站,每天上网的用户不计其数,并且可能都同时并发访问同一个服务器或同一个文件,这样就很容易产生信息传输阻塞现象;加上Internet线路的质量问题,也容易引起出现数据堵塞的现象,使得人们不得不花很长时间去访问一个站点,还可能屡次看到某个站点“服务器太忙”,或频繁遭遇系统故障。因此,如何优化信息系统的性能,以提高整个信息系统的处理能力是人们普遍关心的问题。

一、负载均衡技术的引入 

    信息系统的各个核心部分随着业务量的提高、访问量和数据流量的快速增长,其处理能力和计算强度也相应增大,使得单一设备根本无法承担,必须采用多台服务器协同工作,提高计算机系统的处理能力和计算强度,以满足当前业务量的需求。而如何在完成同样功能的多个网络设备之间实现合理的业务量分配,使之不会出现一台设备过忙、而其他的设备却没有充分发挥处理能力的情况。要解决这一问题,可以采用负载均衡的方法。

    负载均衡有两个方面的含义:首先,把大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间;其次,单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,再返回给用户,使得信息系统处理能力可以得到大幅度提高。

    对一个网络的负载均衡应用,可以从网络的不同层次入手,具体情况要看对网络瓶颈所在之处的具体情况进行分析。一般来说,企业信息系统的负载均衡大体上都从传输链路聚合、采用更高层网络交换技术和设置服务器集群策略三个角度实现。

二、链路聚合——低成本的解决方案 

    为了支持与日俱增的高带宽应用,越来越多的PC机使用更加快速的方法连入网络。而网络中的业务量分布是不平衡的,一般表现为网络核心的业务量高,而边缘比较低,关键部门的业务量高,而普通部门低。伴随计算机处理能力的大幅度提高,人们对工作组局域网的处理能力有了更高的要求。当企业内部对高带宽应用需求不断增大时(例如Web访问、文档传输及内部网连接),局域网核心部位的数据接口将产生瓶颈问题,因此延长了客户应用请求的响应时间。并且局域网具有分散特性,网络本身并没有针对服务器的保护措施,一个无意的动作,像不小心踢掉网线的插头,就会让服务器与网络断开。

    通常,解决瓶颈问题采用的对策是提高服务器链路的容量,使其满足目前的需求。例如可以由快速以太网升级到千兆以太网。对于大型网络来说,采用网络系统升级技术是一种长远的、有前景的解决方案。然而对于许多企业,当需求还没有大到非得花费大量的金钱和时间进行升级时,使用升级的解决方案就显得有些浪费了。对于拥有许多网络教室和多媒体教室的普通中学和职业中学,在某些课程的教学期间(比如上传学生制作的网页等等),将产生大量访问Web 服务器或进行大量的文档传输;或在县区级的网络信息网上举行优秀老师示范课教学、定期的教学交流等教学活动时,这种情况尤为突出。然而在需求还没有大到非得花费大量的金钱和时间进行升级时,实施网络的升级就显得大材小用了。在这种情况下,链路聚合技术为消除传输链路上的瓶颈与不安全因素提供了成本低廉的解决方案。链路聚合技术将多个线路的传输容量融合成一个单一的逻辑连接。当原有的线路满足不了需求、而单一线路的升级又太昂贵或难以实现时,就可采用多线路的解决方案。

链路聚合系统增加了网络的复杂性,但也提高了网络的可靠性,使人们可以在服务器等关键局域网段的线路上采用冗余路由。对于计算机局域网系统,可以考虑采用虚拟路由冗余协议(VRRP)。VRRP可以生成一个虚拟缺省的网关地址,当主路由器无法接通时,备用路由器就会采用这个地址,使局域网通信得以继续。总之,当必需提高主要线路的带宽而又无法对网络进行升级的时候,便可以采用链路聚合技术。
三、高层交换——适合大型网络

    大型的网络一般都是由大量专用技术设备组成的,如包括防火墙、路由器、第2层/3层交换机、负载均衡设备、缓冲服务器和Web服务器等。如何将这些技术设备有机地组合在一起,是一个直接影响到网络性能的关键性问题。大型网络的核心交换机一般采用高端的机柜式交换机,现在这类交换机一般都提供第四层交换功能,可以将一个外部IP地址映射为多个内部IP地址,对每次TCP连接请求动态使用其中一个内部地址,达到负载均衡的目的。有的协议内部支持与负载均衡相关的功能,例如HTTP协议中的重定向能力。

    Web内容交换技术,即URL交换或七层交换技术,提供了一种对访问流量的高层控制方式。Web内容交换技术检查所有的HTTP报头,根据报头内的信息来执行负载均衡的决策,并可以根据这些信息来确定如何为个人主页和图像数据等内容提供服务。它不是根据TCP端口号来进行控制的,所以不会造成访问流量的滞留。如果Web服务器已经为诸如图像服务、SSL对话和数据库事务服务之类的特殊功能进行了优化,那么,采用这个层次的流量控制将可以提高网络的性能。目前,采用高层交换技术的产品与方案,有许多专用的设备,如3Com公司的3Com SuperStack 3服务器负载均衡交换机和Cisco系统公司的CSS交换机产品等,国内的服务器厂商如联想和浪潮等也都有专用的负载均衡产品。

四、带均衡策略的服务器群集——满足大量并发访问的需求 
    
    随着电子商务和电子政务的开展,网上交易和访 问量会明显增加。企业的日常经营和各种办公业务都往上迁移,所传送不仅是一般的文本信息,还有很多视频和语音。如远程教学方兴未艾,不少院校都在全国各地设立网络教学点,进行远程教学和在线辅导,各个站点都必须能够同网络教学中心进行实时交流,在这种情况下,势必也会产生大量并发访问,因此要求网络中心服务器必须具备提供大量并发访问服务的能力。这样,网络中心服务器的处理能力和I/O能力已经成为提供服务的瓶颈。如果客户的增多导致通信量超出了服务器能承受的范围,那么其结果必然是宕机。显然,单台服务器有限的性能不可能解决这个问题,一台普通服务器的处理能力只能达到每秒几万个到几十万个请求,无法在一秒钟内处理上百万个甚至更多的请求。但若能将10台这样的服务器组成一个系统,并通过软件技术将所有请求平均分配给所有服务器,那么这个系统就完全拥有每秒钟处理几百万个甚至更多请求的能力。这就是利用服务器群集实现负载均衡的优点。

    早期的服务器群集通常以光纤镜像卡进行主从方式备份。令服务运营商头疼的是关键性服务器或应用较多、数据流量较大的服务器一般档次不会太低,而服务运营商花了2台服务器的钱却常常只得到一台服务器的性能。通过LSANT(Load Sharing Network Address Transfer)将多台服务器网卡的不同IP地址翻译成一个虚拟IP地址,使得每台服务器均时刻处于工作状态。原来需要用小型机来完成的工作改由多台 PC服务器完成,这种弹性解决方案对投资保护的作用是相当明显的,既避免了小型机刚性升级所带来的巨大设备投资,又避免了人员培训的重复投资。同时,服务运营商可以依据业务的需要随时调整服务器的数量。

    网络负载均衡提高了诸如Web服务器、FTP服务器和其他关键任务服务器上的Internet服务器程序的可用性和可伸缩性。单一服务器可以提供有限级的可靠性和可伸缩性。但是,通过将2个或2个以上高级服务器的主机连成群集,网络负载均衡就能够提供关键任务服务器所需的可靠性和性能。

    为了建立一个高负载的Web站点,必须使用多服务器的分布式结构。如使用代理服务器和Web服务器相结合,或者2台Web服务器相互协作,这种方式也属于多服务器的结构。但在这些多服务器的结构中,每台服务器所起到的作用是不同的,属于非对称的体系结构。非对称的服务器结构中每个服务器起到的作用是不同的,例如一台服务器用于提供静态网页,而另一台用于提供动态网页等等。这样就使得网页设计时就需要考虑不同服务器之间的关系。一旦要改变服务器之间的关系,就会使得某些网页出现连接错误,不利于维护,可扩展性也较差。

    能进行负载均衡的网络设计结构为对称结构,在对称结构中每台服务器都具备等价的地位,都可以单独对外提供服务,而无须其他服务器的辅助。然后,可以通过某种技术,将外部发送来的请求均匀分配到对称结构中的每台服务器上,接收到连接请求的服务器都独立回应客户的请求。在这种结构中,由于建立内容完全一致的Web服务器并不困难,因此负载均衡技术就成为建立一个高负载Web站点的关键性技术。

    综上所述,在客户端对操作系统进行优化,改善网络环境,虽然可以最大限度地提高客户端的信息传输速率,但是,在网络中,当众多工作站同时向同一服务器发出请求或同时访问同一个文件时,所产生的信息传输阻塞现象却是无能为力的。为此在服务器端采用负载均衡这种策略,它能让多台服务器或多条链路共同承担一些繁重的计算或I/O任务,从而以较低成本消除网络瓶颈,避免了单机拥塞或单机故障造成的不良影响,便于扩展,保证服务需要,提高网络的灵活性和可靠性。而且负载均衡是建立在现有网络结构之上,提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。负载均衡主要完成以下任务:

    解决网络拥塞问题,就近提供服务,实现地理位置无关性;

    为用户提供更好的访问质量;

    提高服务器响应速度;

    提高服务器及其他资源的利用效率。

    在用户端进行优化和在服务器端采用负载均衡策略可以在最大程度上确保网络信息的顺畅流通。


只有注册用户登录后才能发表评论。


网站导航: