作者:许广斌
典型集群系统介绍之一
在《基于Linux的集群系统》系列文章的第二部分,作者将向我们介绍几个最典型的集群系统。
1. Lsf
如何管理各种各样的计算资源(如:CPU时间、内存空间、网络带宽、应用程序等)是许多企业当前都很头疼的问题。尤其是对于那些员工遍布全球的公司而言,如何充分利用有限的计算资源是非常关键的问题。由platform公司开发的lsf 多集群系统使多个异构的计算机能够通过局域网或广域网共享计算资源,并能够为用户提供对资源的透明访问。Lsf现在主要支持以下三种大规模资源共享:
一个大企业中的多个部门,每个部门可以有一个或多个集群,这样就使得部门内部和部门之间可以共享资源。
较小部门的数据中心。大的昂贵的计算资源如超级计算机可以透明地与远方较小的部门直接进行共享。
通过松散连接的站点共享资源。
Lsf将多个集群连接在一起,一个集群往往是企业中的一个部门,每个集群中有一个主控机,此主控机负责收集该集群系统中的各台主机的负载信息,并且根据各主机的负载信息情况对作业进行调度。各个集群系统之间根据一定的策略进行资源共享。在每个主控机上定义了该集群能共享哪些集群系统中的资源。当用户发送了一个任务请求时,lsf系统能将此任务发送到对应的资源所在地,并根据调度策略选择负载较轻的机器对此任务进行处理。当多个用户请求同一个资源时,根据用户的请求优先级来确保优先级高的用户的紧急任务能首先得到满足。Lsf还具有以下特点:
提供了增强的计算能力。
通过全局资源共享,用户可以访问各种各样的计算资源,许多闲置的计算机现在都可以充分利用起来进行任务处理,许多机器也可以并行地执行同一个任务,这样就大大增强了用户的计算能力。
lsf提供了用户可配置的安全策略。
通过让用户使用RFC931协议、Kerberos、和DCE认证等策略,系统保证了远方的任务来自授权的用户。
每一个集群都是一个自治的系统。
每个集群中的主控机的配置文件中记录了如下信息:如允许在多个集群系统之间传输的任务的数量与类型,允许在多个集群之间共享资源的用户名。
提供非共享的用户账号和文件系统。
当任务在多个集群之间进行传输时,用户的账号可以根据配置文件进行映射。为了支持异构的系统,lsf通过在任务执行前后将文件在集群系统之间传递来提供对非共享的文件系统的支持。
良好的可扩展性。
在单一的集群系统中通过主控机进行管理,所有的配置信息都在主控机上,多个集群系统之间信息的传递主要是与主控机有关,而与集群中的其它主机无关。因此lsf的集群能非常容易地扩展到成百甚至上千台。
lsf系统支持多种操作系统平台。
如主要的UNIX平台:Sun Solaris、 HP-UX、 IBM AIX、 Digital UNIX/Compaq Tru64 UNIX、SGI IRIX以及 Red hat Linux、 Windows NT、Windows 2000等。
2. TurboCluster
TurboCluster是一个企业级的集群方案,它允许在多个计算机上构建高可用的、可扩展的网络。它支持Intel和Alpha芯片,支持Linux 、Windows NT 和Solaris操作系统平台。使用TurboCluster系统可以显著地提高基于TCP/IP协议的多种网络服务的服务质量,这些服务包括Web、Mail、News和Ftp等。TurboCluster具有良好的可用性、可扩展性和可管理性,集群内部的实际服务器的数量可以扩充到无限台。TurboCluster是一种基于软件的集群系统解决方案,它还能够支持异构的网络环境。它的结构如图2-1所示。
当客户向集群系统发送一个请求时,该请求首先到达高级流量管理器,高级流量管理器通过一定的调度策略将此请求转发到集群中的某一台实际服务器上对此请求进行处理,最终的回应请求将直接发送给客户。由于最终的回应请求没有通过高级浏览管理器而是直接发送给客户,这样大大减轻了高级浏览管理器上的负载,从而降低了瓶颈产生的可能。TurboCluster中采用的调度策略有:轮回(Round Robin)、加权轮回(Weighted Round Robin)、最少连接(Least Connection)。为了减少高级流量管理器产生失效的可能,TurboCluster为高级流量管理器准备了一个备份机。该备份机不断询问管理器来确认它正在正常工作,一旦发现主管理器已经失效,备份机将接替它继续工作。
:
图2-1 turbocluster结构图
TurboCluster具有如下一些增强的性能。
通过heartbeat在备份机上监测流量管理器的运行状态来提供更高的可用性。
对不可预测的系统或应用程序的失效进行自动管理。
提供动态的负载平衡,它能够消除瓶颈并且处理峰值负载。
高级流量管理器只转发已经授权的请求,通过在实际的应用程序服务器的前端增加虚拟防火墙来提高网络的安全性。
TurboCluster对外只显现出流量管理器的IP,而集群系统中的实际服务器的IP地址对外界而言是不可见的。
当实际服务器正在对外界提供服务时就可以对它进行维护工作。