Chinaunix首页 | 论坛 | 博客
  • 博客访问: 556393
  • 博文数量: 625
  • 博客积分: 40000
  • 博客等级: 大将
  • 技术积分: 4745
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-17 15:46
文章分类

全部博文(625)

文章存档

2011年(1)

2008年(624)

我的朋友

分类:

2008-10-17 15:51:12


  网络负载平衡
  
  原先称作 NT负载平衡服务(WLBS)的NLB能够在多个运行NLB软件的节点上对进入系统的IP请求负载进行合理分配。NLB能够为诸如Web之类基于IP的应用提供伸缩性与可用性。随着用户针对资源的需求量不断增大,NLB允许您添加用以处理工作负载的服务器。举例来说,通过利用NLB实现其面向Outlook Web Access(OWA)的基于Microsoft IIS通信前端,Exchange 2000服务器的负载压力得以显著缓解。NLB群集会将客户端请求至一台或多台后端服务器上。如果某个NLB节点出现停机故障,其它节点将自动承担由其遗留下来的额外负载,而用户则不会感觉到任何服务中断现象。
  
  NLB底层软件是一种位于NIC与TCP/IP之间的接口规范(NDIS)驱动程序。您应当在NLB群集中的每台服务器上安装这种驱动程序。所有NLB节点均共享同一个代表所需网络资源(如Web服务器)的虚拟IP地址。所有NLB服务器均监听用户请求,但其中只有一台服务器对这些用户请求进行响应。基于快速Hash算法的负载平衡架构负责合并客户端IP地址与端口号,并确定由哪台服务器进行响应。您可以指定某种相似性规则,以便能够在不同服务器上分配不同的负载量(例如,您可以指定某些服务器应当获取多于其它服务器工作负载)。通过一种心跳特性,所有NLB节点均可及时群集变化(例如新增节点或节点故障)情况。当群集发生变化时,NLB将启动一个汇聚过程,以便在群集中自动协调变化情况并以透明方式重新对进入系统的工作负载进行分配。
  
  NLB的最初起源要追溯到1998年Microsoft收购总部位于俄勒冈州的Valence Research开始。Valence所开发的Convoy群集软件便是后来的WLBS(NT Server 4.0与NT Server 4.0企业版中的一种插接产品)。在 2000中,尽管Microsoft进一步增强了WLBS的功能特性并对其进行了重新命名,但其核心技术仍旧没有发生变化。NLB是Windows 2000 Advanced Server与Datacenter网络服务中的一种集成化部件。
  
  只要在各自独立的计算机上运行,Windows 2000中的MSCS与NLB便可良好的实现协同工作--具体示例请参见图2所显示的配置方案。由于MSCS与NLB之间存在潜在的硬件设备共享冲突,因此,Microsoft不建议同时也不支持在同一台计算机上运行MSCS与NLB。如需获取更多关于MSCS和NLB的安装信息,请查看题目为MSCS与NLB之间的Windows 2000交互能力的Microsoft文章。
   
  图2 以单一虚拟IP服务器方式运行的n节点NLB群集
  
  
  
  组件负载平衡
  
  对于Windows 2000而言,CLB是一种全新事物。同样,对于Windows 2000来说,作为下一代COM技术的COM+也是一种全新事物。COM+将COM、Microsoft事务服务器(MTS)以及相关系统服务有机结合在一起,从而使Windows 2000成为一种设计、开发、部署与维护基于组件应用的出色平台。简而言之,COM+是一种包含一系列相关系统服务(包括允许您在多个系统之间对组件进行分布的服务)的COM技术。其中一种COM+服务能够实现针对COM+对象的负载平衡访问方式。CLB只不过是一种负载平衡群集功能--即通过多台服务器共享激活与执行COM+对象所产生的工作负载。
  
  与NLB相似,针对CLB的需求同样来源于可用性与伸缩性需求。当您运行由COM+对象所组成的关键应用时,应用程序或服务器故障将导致严重后果。CLB能够确保应用程序在出现故障的情况下继续运行,并避免使用户感觉到服务性能有所下降。此外,某些COM+对象规模相当庞大且功能相当复杂,在单一服务器上运行这些COM+对象以及诸如IIS之类的其它关键应用会严重影响系统性能。为在这种情况下提供可伸缩能力,您可以将COM+对象从IIS服务器上移走,并将其合理分布在自身CLB群集中的多台服务器上。
  
  假设您是一个拥有自己商务Web站点的计算机制造商,您的商务站点负责为用户提供产品与技术信息、产品技术支持以及网上订购服务。遍布全球各地的客户每天24小时不间断的使用您的产品,因此,您的Web站点必须随时可用并保持良好运行状态。为此,您可以采用图2所显示的方式在具备后端MSCS数据库群集访问能力Web服务器上运行NLB。然而,如果您所提供的服务使用了大量基于COM+对象编码方式的实现逻辑,那么,尽管这些对象可以在Web服务器上运行,但是,由于运行Web服务器的计算机同时还必须处理COM+对象,因此,Web服务器的响应时间将非常缓慢。此时,您便可能需要使用CLB。
  
  图3描述了如何在具备高度可用性与伸缩能力的Web站点上部署CLB群集。CLB能够针对在应用程序中间层提供COM+对象的商务逻辑实现负载平衡。(CLB群集需要Application Center提供隐含支持,我们将在“Application Center”一节中详细解释相关信息,现在,您只需了解为何需要使用CLB即可。)
   
  图3 通过CLB实现针对COM+对象负载平衡访问方式
  
  CLB通过结合使用服务器响应时间与循环算法的方式来确定由哪台服务器处理下一个请求。CLB按照预先设置好的时间间隔定期在群集中对COM+服务器进行投票,以确定服务器响应速度(服务器响应时间直接反映出它们的繁忙程度)。CLB根据响应时间对服务器进行排序,具备最短响应时间的服务器排在队头,并负责对下一个COM+激活请求进行处理。此后,在下一个投票间隔到来之前,CLB将按照服务器在列表中的排列顺序为其分配工作。
  
  由于上述所有处理工作均在网络上实时完成,您可以看出,如果在速度较慢或较为拥挤的网络上添加CLB,则可能导致网络竞争问题。因此,您应当在至少具备100 Mbps传输速率的高速干线网络上部署CLB群集。通常情况下,您不应在承载其它网络通信内容常规企业网络上部署CLB群集。
  
  在CLB群集中分布COM+对象的方式并非适用于所有情况,您必须在应用需求分析基础上做出是否使用CLB的决定。群集功能增加了与贯穿整个网络的客户端请求相关的负载以及为满足客户端请求而选择服务器并激活COM+对象所产生的负载。在某些情况下,由于应用程序只使用少量轻量级COM+对象,在Web服务器本地实现对象实例化的简单方式可能会提供更高性能。需要考虑使用CLB的应用情境包括:
  
  构成商务逻辑的COM+对象相对比较“繁杂”且必须在高速服务器上运行。
  性是主要关注的问题之一,并且您希望通过将其置于额外后部的方式独立COM+对象。
  出于开发或设计原因,您的COM+应用程序被分为多个层次,并且您需要在独立的层次上使用CLB。
  CLB在所有Windows 2000 Server产品家族成员中均无法使用,同时,您也无法通过独立产品方式购买CLB。最初,Microsoft曾经有意将CLB包含在Windows 2000 Server产品家族中,但在1999年9月,Microsoft将其从Windows 2000 Release Candidate 2(RC2)中分离出来,并放入到一种称为Application Server的全新产品中,因此,获取CLB的唯一方式便是使用Application Server。
  
  Application Center
  
  Application Center是Microsoft .NET Enterprise Server产品家族成员的组成部分之一,其前身为Windows Distributed interNet Applications(Windows DNA)服务器。Application Center的主要目的在于实现针对Web区(例如提供相同Web内容且相互协作的多台物理Web服务器)的单一管理点,从而提供统一用户界面(UI)并利用NLB与CLB实现负载平衡。通过使用Application Center,您可以创建新的群集、加入现有群集、添加或删除群集成员、部署新增内容、配置负载平衡并监视群集性能。其最终结果是为Web区提供伸缩能力、易用性以及高度可靠性,并使其在外部用户眼中表现为一台单一Web服务器。随着越来越多的关键应用开始向Web靠拢,这些功能特性的重要性也在与日俱增。
  
  如需了解完整的Application Center拓扑结构,以及与其协同工作的所有Microsoft群集技术,请再次查看图3。NLB群集可以是IIS服务器所组成的群集,CLB群集可用于提供商务逻辑。两者相互结合便构成了Application Center Web群集,而数据库群集则可通过MSCS实现。
  
  假设您拥有一个电子商务站点且正在规划进行大规模产品滚动升级,在此期间,有许多客户希望通过该站点购买您的产品。这种情况将显著增加Web站点负载,然而您又无法确定这种增幅到底有多大。您可以随时根据需要添加新的服务器,但针对这些服务器的设置工作却非常复杂。就产品滚动升级而言,您可以像在RAID阵列中插入磁盘驱动器那样通过向Web区中添加服务器的方式轻松扩展Web站点性能。这种应用情境正是RAC理念所适用的情况。
  
  Application Center提供了用以创建群集、向群集中添加新增服务器、部署新增内容并配置群集成员的向导程序。在创建新群集时,您需要定义一台群集控制器,这台群集控制器不仅属于群集成员,同时还负责维护所有配置信息。此后,您便可以指定群集中的其它成员。当您完成上述工作时,Application Center将针对每个新增群集成员部署COM+设置、CryptoAPI设置、注册表健值、Windows管理设施(WMI)设置、文件系统信息、IIS元数据库设置以及Web服务器内容。最终,您将获得一个克隆群集,并且,您可利用Application Center管理器轻松添加或删除群集成员。此外,Application Center还将通过透明方式完成单调乏味的NLB配置与部署工作。
  
  Application Center还将支持除NLB以外的其它第三方IP负载平衡工具。在撰写本文时,Microsoft正在为 System公司的LocalDirector、F5 Network公司的BIG-IP以及Alteon WebSystem公司的ACEdirector提供支持。然而,Application Center并未像集成NLB管理方式那样集成针对这些负载平衡工具的管理操作,因此,您需要通过执行额外工作的方式对这些第三方负载平衡工具进行维护。
  
【责编:admin】

--------------------next---------------------

阅读(216) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~