Network 版 (精华区)

发信人: superman (☆风雨无阻☆), 信区: Network
标  题: [转载] 网络负载平衡要考虑哪些问题
发信站: 紫 丁 香 (Sun Sep  6 08:46:06 1998), 站内信件

【 以下文字转载自 cnnetwork 讨论区 】
【 原文由 Xj_J@bbs.ustc.edu.cn 所发表 】
出版日期:1998-09-03 总期号:756 本年期号:66

     网络负载平衡要考虑哪些问题 

     黄正勤 

       引言:

       为什么需要网络负载平衡

       随着Internet和Intranet的高速发展,基于IP的应用越来越
     成为网络最普遍、最有用的,甚至是必不可少的部分,一些服务
     器常常因为要在很短的时间内应付数以万计的访问申请而不堪重
     负。当服务器的负载过重时,你可以做的事有哪些呢?首先是增
     加内存,服务器从内存的缓冲中取得页面,工作会更快。但如果
     后台或通讯进程开始占据了服务器的处理时间,下一步又该做什
     么?把旧的服务器扔掉去做大量的硬件升级吗?然而或迟或早,
     无论你如何调整或升级你的服务器,对它的需求都可能超过其能
     力范围,同时这仍旧面临着单点脆弱性(Single Pointof
     Failure)的问题。那么能否利用旧的服务器和新加入的服务器
     协同工作而实现系统的自然增长呢?由此产生了服务器群的概
     念。但是这又引发了一个新的问题:如何平衡这些服务器之间的
     负载呢?如何防止整个系统仅仅由于一台服务器“当掉”而瘫痪
     的局面呢?

       对于想提供稳定、强壮的服务,同时又在快速成长的网络,
     引进负载平衡机制是一个明智的选择。当前市场上有多种基于软
     件/硬件的解决方案和产品。如RADWARE的Web Server Director
     系列、CiscoLocal Director、Hydra Web的Load Manager和
     Check Point的ConnectControl。下面,我们就来讨论一下跟
     负载平衡的有关问题。

       负载平衡机制给多服务器环境带来了两个主要的好处:首先
     是系统可扩展性(Scalable)。由于Web站点和服务器群拥有越
     来越多的用户,硬件的升级越来越频繁,这无疑是一件令人乏味
     和很不经济的事情。系统在安装了负载平衡产品之后,负载平衡
     器可以让一簇服务器共同来完成一台超级服务器的工作,减少了
     系统升级的开销。负载平衡器介于服务器和用户端之间,扮演了
     一个智能的指挥者角色。它根据当前各个服务器的工作状态和能
     力来分配服务器负载,使整个系统能更高效地响应用户的请求。
     其次是系统的容错性(FaultTolerance)。“不间断服务”
     (nodowntime)的概念越来越受业界人士重视。IP负载平衡器实
     时监视各个服务器的工作状态,不分配任务给那些力不从心的服
     务器,这种有弹性的负载分配方式充分利用了每台服务器,使用
     户能得到流畅的、连续的、透明的服务。这也正是在线服务的最
     终目标。

       网络负载平衡需要考虑哪些问题?


       一、软件还是硬件解决方案


       软件的解决方案只需要在服务器群上安装一个或多个附加的
     软件。它的优点是基于特定环境,适应相应的操作系统,有能力
     获得服务器的运行参数(如CPU或内存的利用率),甚至允许服
     务器之间数据同步。尽管服务器群里每台服务器都拥有相同的内
     容并不是绝对安全的,但这肯定是有用的。

       然而,软件解决方案的缺点也很明显。每台服务器上额外的
     软件运行会消耗系统的资源。越是功能强大的模块,消耗得越
     多。附加的软件某种程度上也成了服务器工作失败的一个因素,
     具有讽刺意味的是,有可能检测服务器性能的软件造成了服务器
     运作的最终失败,因为系统中引入新的软件或未知的设备都有可
     能引起这样的麻烦。而且,软件的可扩展性是很差的,系统安装
     新的服务器之后,相应的软件必需安装,还会存在某些操作系统
     不兼容的情况。这样会使整个解决方案复杂化,也限制了网络的
     异质性。

       硬件方案在用户和网络之间直接安装负载平衡设备。专用的
     设备完成专门的任务,服务器不必安装额外的软件,系统的整体
     性能大大提高。同时,专用设备也独立于操作系统,系统配置灵
     活、多样。安装、升级和周期性的系统维护时,只涉及到很少的
     设备。如果存在冗余单元,系统可以不间断服务。当然也有缺
     点。硬件不可能真正“了解”系统,没有软件的支持,很难收集
     到服务器的信息。而且,硬件具有其特定的单点脆弱性,所有的
     流量都要通过这个设备,风险大大提高。

       软件/硬件联合方案可以集中二者的优势,但也有可能引入
     二者的弱点,所以必须采用合理的设计,达到扬长避短的效果。


       二、支持IP协议


       支持IP协议的方案无疑是灵活的。如果一个方案只支持HTTP
     和FTP协议,那它就很难适应网络新的发展,理想的解决方案应
     该支持所有的的IP协议。

       而且,在选择负载平衡时,要考虑一些IP协议和应用程序的
     特殊性。例如,FTP协议能运行在主动和被动两种模式。同时,
     还要考虑平衡设备和信息流量的关系,分析表明,最有效状态是
     设备对于信息只起“通过”(passthrough)作用的时候。如果
     设备单独处理所有的对话,不仅系统总的开销增大,而且导致服
     务器甚至不知道谁是真正的用户,所有的服务器可能认为它们只
     有一个用户———负载平衡器。这给服务器的计数、记录保存和
     其他一些可以提供的服务带来了潜在的问题。负载平衡器还必需
     支持基于状态的协议(如SSL),也就是说,无论这个基于状态
     的对话持续多长时间,应使用户在整个对话结束前始终得到同一
     台服务器的服务。


       三、性能


       性能的定义是很广的。当我们考虑一个平台的性能时,要认
     识到关键因素和普遍使用两个概念之间的区别。

       一种衡量的方法是利用参数PPS,即在某种解决方案之下,
     每秒钟通过的网络数据包的数目;另外一个衡量性能的参数是一
     个设备能处理的并发对话的数目。衡量性能还有其他一些指标。

       那么,最关键的因素是什么?一个解决方案是,必须在对整
     个系统影响最小的情况下最有效地在服务器之间分配流量。如果
     一个系统可能处理上百万个并行对话,但只能以每秒2个包的速
     率转发,这显然是很无效的。如果主要考虑性能,最好的办法是
     在其运用之前用实际的流量模型来测试。平衡负载器减轻了每个
     服务器的流量,在平衡器和传输媒介能够应付用户的访问请求的
     情况下,整个服务群的性能和效率都加强了。这也表明了硬件的
     解决方法优于软件的方法。专项任务由专门的设备来完成通常比
     只安装相应软件的效率高。

       灵活性也是必须考虑的重要指标,解决方案应该和网络所使
     用的操作系统如WinNT,Unix,BSD,HPUX和硬件平台如P166,
     P200,DECAlpha,dualprocessors无关,不会限制网络的进一步
     升级。管理员能够根据网络的实际情况,如用户的访问情况、服
     务器群的具体组成情况选择负载平衡的方式。有时甚至是某种
     “不平衡的”分配,如让高级一些的服务器能承担更多的任务。
     利用系统提供的状态数据,动态地分配流量。在某些系统里,可
     以在不安装额外的软件而直接利用操作系统提供的系统信息。任
     何具有简单网络管理协议(SNMP)后台进程的系统都能提供评价
     系统的统计数据。


       四、冗余机制


       负载平衡方案同时为系统提供了充分的容错机制和高可用
     性。一个主要的功能是在某些服务器失败的时候仍能保证服务。
     但是,如果负载平衡自身发生问题的时候,又该如何呢?在硬件
     的解决方案中这通常是通过两个并行工作的单元来实现的,其中
     一个单元处于工作状态,而另外一个处于“热备份”状态。

       为使用冗余机制,对等单元(软件或硬件)之间必须能够有
     效监测对方。通常有两种途径:

       (1)通过串行电缆。这种做法通常用于硬件。后备单元通
     过监听连接两个单元的串行电缆的‘心跳信息'
     (heartbeatmessage)得到主单元的状态。但是,串行电缆的失
     效偶尔断开会造成严重的后果。而且,串行电缆只能监测整个单
     元的失效,不能在更普通的错误,比如HUB口、Switch口、以太
     电缆失效时提供保护。

       (2)通过网络。用实际连接的网络来作为对等单元监听的
     媒体,间隔地在两个单元之间传送包,这样,冗余单元就可以知
     道主单元的状态。

       无论采用什么方法监听,最佳的方案应能给予系统最大程度
     上的保护。粗看上去,当主单元失效时,冗余单元接管整个系统
     是一个很好的方案。但是如果以太网电缆或Switch端口失效时
     呢?一个完全健壮的方案应当能够对付这种问题。

       最后,有一个重要的方案说明:冗余单元要能够并行、实时
     地工作。传统的硬件方案是有一个“主”单元,一个“很少使用
     的备份”单元。如果两个单元可以并行和实时地工作,又给对方
     提供冗余,这样的方案毫无疑问更健壮。有时,这个“很少使用
     的备份”单元自己就可能失效了。当两个单元同时工作时,问题
     就迎刃而解了。


       五、安装和管理


       有时,一些负载平衡的实际应用问
     题,如安装和管理被忽略了。负载平衡方
     案应当能够轻松地安装在已存在的网络
     上。当然,新的硬件或软件部分的安装不
     可避免会引起一些中断。方案应当能很好
     地融入已经存在的网络,以前的网络部分
     也应当没有改变。还有就是,方案应当提
     供轻松的迁移。一旦安装好后,如果需要
     的话,系统管理员应当可以渐进地把网络
     转到负载平衡器的完全控制下,又可以在
     “新”和“旧”网络之间渐进切换。

       负载平衡方案应当给管理员简便、强
     大、灵活的管理配置。例如:GUI用户交互
     界面使总体管理简单明了;或者提供和工
     业管理标准(如SNMP)兼容的方案,就可
     以使用任何兼容设备。


       结束语


       当前国内的网络事业正在迅猛发展,
     人们对信息资源的收集、共享和检索提出
     了迫切的要求。电脑、通信和视讯网络的
     信息整合趋势、网上商务的方兴未艾以及
     各机构在实现办公管理的自动化,都给网
     络带宽、服务器管理、服务质量提出了更
     高的要求。引入负载平衡和冗余机制的高
     可用系统越来越受到重视。相关的产品方
     案支持也将提到议事日程上来。

--
※ 来源: 中国科大BBS站 [bbs.ustc.edu.cn]
--
※ 转载:.紫 丁 香 bbs.hit.edu.cn.[FROM: poster.hit.edu.c]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:7.209毫秒