集群定义以及高性能计算环境方案

 

[精彩] 集群定义以及高性能计算环境方案.


http://www.chinaunix.net 作者:gongshi  发表于:2007-11-19 15:55:07
【发表评论】 【查看原文】 【服务器及硬件技术讨论区】【关闭】

1.集群的定义:
     集群(一组协同工作的计算机)是充分利用计算资源的一个重要概念,
因为它能够将工作负载从一个超载的系统(或节点)迁移到集群中的另一个系统上。其处理能力是与专用计算机(小型机,大型机)可相比,但其性价比高于专用计算机.常见的硬件有:结点,网络,存储.软件有:机群系统,节点系统,应用支撑软件.
     Cluster集群技术可如下定义:一组相互独立的服务器在网络中表现为单一的系统,并以单一系统的模式加以管理。此单一系统为客户工 作站提供高可靠性的服务。大多数模式下,集群中所有的计算机拥有一个共同的名称,集群内任一系统上运行的服务可被所有的网络客户所使用。Cluster必 须可以协调管理各分离的组件的错误和失败,并可透明地向Cluster中加入组件。一个Cluster包含多台(至少二台)拥有共享数据存储空间的服务 器。任何一台服务器运行一个应用时,应用数据被存储在共享的数据空间内。每台服务器的操作系统和应用程序文件存储在其各自的本地储存空间上。 Cluster内各节点服务器通过一内部局域网相互通讯。当一台节点服务器发生故障时,这台服务器上所运行的应用程序将在另一节点服务器上被自动接管。当 一个应用服务发生故障时,应用服务将被重新启动或被另一台服务器接管。当以上的任一故障发生时,客户都将能很快连接到新的应用服务上。
2.高性能计算环境方案(集群版)
最新推出的基于IA架构,采用Cluster体系结构集群系统,具有可自由伸缩、高度可管理、高可用、高性能价格比等诸多优点,该集群服务器解决 了跨平台管理、跨操作系统管理、系统软硬件运行状态监控等混合平台应用等技术难题,是担当大规模科学工程计算的坚实且理想的系统平台。
●机群系统技术特点

     一、快速消息传递系统的点对点基本通信协议与TCP/IP通信协议相比,通信延迟低,通信带宽高;
     二、并行程序运行回卷恢复和进程迁移系统采用基于消息驱赶的协调检查点设置机制和进程迁移、检查点文件镜像技术,实现了故障检测、结点软硬件瞬时/永久故障恢复、系统重构等容错功能,系统可靠性高;
     三、交互式FORTRAN77并行化编译器能分析出串行程序中运行时间较长的循环以及含有过程调用循环的并行性,并生成正确的分布并行代码,交互功能完善;
     四、C和FORTRAN语言并行调试器将状态冻结方法和常用的记录--重放技术相结合,解决了并行程序运行时的不确定性问题,并利用检查点技术支持并行程序状态的保存和恢复,可缩短并行程序的调试时间。
     五、可视化人机交互集成开发环境功能比较齐全、界面友好、使用方便,对用户研究、选择和优化并行算法以取得高效的解题结果有重要作用,系统可用性好。

●机群系统特点

     一、性能价格比高
传统的并行机曾经是高端RISC架构,生产批量小往往价格昂贵,且维护费用高;而本集群系统采用高品质的商品化部件,其超强的处理能力可以取代价格昂贵的中大型机,已经接近一些MPP的水平。
     二、可靠性高
程序运行回卷恢复系统实现了故障检测、结点软硬件瞬时/永久故障恢复、系统动态升/降级重构等容错功能。只要有一个结点可用,该系统就可以提供持续的服务。增加/删除结点、系统维护等操作可在线(on-line)。
     三、可扩展性好
结点的配置和结点机的数目可根据用户的需求来确定,原有的资源还可得到充分利用。当硬件与软件技术进一步发展时,可对系统及时升级。
     四、使用方便
系统的可视化人机交互集成开发环境功能齐全、界面友好、使用灵便;快速消息传递系统、动态负载平衡系统、并行调试器、交互式Fortran77和 Fortran90并行化编译器等软件为用户提供了方便;只要在原有C、C++、Fortran等语言程序中的相应地方插入少量几条原语后,即可使这些程 序在集群系统上并行运行,可继承原有传统语言编写的软件财富。
     五、应用领域
主要应用领域有:石油勘探、地震预测预报、气候模拟与天气预报、人体基因与遗传工程、医学图象的快速处理、海洋环流和超导模拟、环境污染的分析与 处理、飞行器的仿真研究、新型武器设计与模拟、计算机辅助设计、计算流体力学及基础学科中的一些理论计算等领域。此外,还可以作为超级服务器用于信息服 务、事务处理、决策支持等进行应用。 

产品结构
1. 机群软件系统

本系统配备的机群软件系统主要有机群操作系统、机群管理系统、机群监控系统、机群文件系统和作业管理系统(包括在操作系统内)。操作系统要求具有 多用户多任务的特征,并且有很强的稳定性,所以在本方案中,操作系统采用Red Hat 9.0,机群管理系统采用图形化界面和接口,如用户管理、访问限 制、系统配置、系统控制、基于TCP/IP的网络管理功能(如TCP/IP的配置、Hosts表管理、NFS配置、NIS配置)等。

1. 1 Linux操作系统
Linux凭借高效率的核心,加上不计其数的应用程序,成为当前众多操作系统中的佼佼者。同时Linux具有强大的网络功能,能很好的支持 Internet/Intranet。在相同的硬件环境下,Linux提供更好的性能。很少有人会反对Linux是一个安全的,稳健的操作系统。 Linux不仅是性价比非常高的系统,而且由于它经常的更新所使用的技术,使得它可以不断的提高系统的性能,使用最先进的技术。在计算领域中,越来越多的 公司通过使用Linux上的应用开发,让自己的硬件产品通过Linux认证来支持Linux的发展。

1.2系统监控软件(Cluster Monitor Management System)
 可监控机柜系统环境、每节点硬件配置情况、每节点直流电压、各部件温度、风扇转速等硬件状态、系统CPU、内存、网络使用情况等。可指定节点,也可以图形方式对各节点的单项数据进行对比。
在Ethernet上使用专用的协议和Socket接口进行数据传递,监控数据对OS透明。
 可以设置报警域值,在系统异常时,向系统管理员报警,避免或减少系统故障的损失。
可以通过Modem远程拨号(Windows系统)或Telnet远程登录(LINUX系统)进行监控和管理。

1.3 并行计算环境
国际上并行计算工业标准或事实上的标准主要有PVM、MPI两种,本套集群系统继承了所有用于科学运算的超级服务器的特点,支持标准的PVM(Parallel Virtual Machine)和MPI(Message Passing Interface)。
    PVM包括一个完整的工具软件和软件库,它可以在网络连接的各类计算机系统上模拟一个灵活的异构并行计算环境。PVM由两个部分组成:构 成并行虚拟机的PVMD和用于用户编程的PVM用户界面函数库。PVM目前支持C、C++和FORTRAN。一般来说,一个PVM应用程序由多个子任务构 成,每一个子任务负责程序的一部分运算,最后将计算结果进行汇总。PVM是当今流行的并行计算系统之一。
    MPI是基于消息传递的并行运算模式,是对消息传递的一种新的库描述,被众多厂商、实现者和用户组成的委员会作为一种标准提出。MPI 是为能在大规模并行机和工作站机群上高性能运行而设计的,它可以从多种渠道获得,包括可以免费由网站或厂商提供。MPI是一个消息传递库,而不是一门语 言,它目前支持的语言有C,C++、FORTRAN等等。


2. 机群硬件系统

2.1 机柜内部连接:
在一个标准42U或36U的机柜中,放置若干台1U机架式计算节点(42U机柜不超过32个节点,36U机柜不超过16个节点)同时通过网络连接,1000M以太网或者Myrinet连接。(可选PCI-SCI高性能互连产品) 。
由I2C总线方式,组成硬件监控网。在出现硬件异常情况时,直接做出相应的报警,并且能在机柜的触摸屏上直接查询各节点的状态,这大大减少了系统维护的复杂性。
计算节点的性能要求就是需要有强大的计算能力和I/O吞吐能力及稳定的性能。根据以上的性能要求,我们选用计算节点是具有很高性价比的基于 Intel IA架构、1U的企业级机架式服务器,具有强大的数据处理能力和很高的I/O吞吐能力,安装简便,性能稳定,非常适合需要很高数据处理和网络 吞吐能力并且对空间限制严格的数据中心等业务。具体配置采用最新的双路INTEL XEON CPU并采用CPU超线程技术,使其具有极强的运算能 力,1G ECC DDR 内存, 并配以最新的INTEL 公司E7501芯片组与双通道DDR内存系统平台,确保高带宽与性能吞吐。加强型可自适应 的、带宽1000Mbit的以太网控制器、大大地提高了系统可靠性。同时采用Intel NetBurst技术,结合533MHZ 系统总线可以为双 CPU服务器在多线程多任务环境下提供极为优异的性能。

2. 2 网络通信连接
机群系统网连接机群系统中所有的节点,既要负责管理信息的流通,又要支撑机群网络文件系统,因此必须具备高带宽和低延迟。
1、采用1000M以太网组成系统信息通信域网, 计算节点通过千兆以太网交换机连接进行运算数据的交换。
2、采用Myrinet, SCI (可选)

2.3 机群辅助设计
独特设计的高性能集群系统集群专用机柜,支持36U或42U内部扩展空间。精心设计的内部网络和电源布线,均采用就近插接,构造了整洁的机柜内部环境,极大的方便了用户设备调试和问题分析。
布线系统按最大使用设计,机柜内部最大可为节点机系统提供32路交流电源接口和48路网络信息接口(24×2)。各机柜均采用单独上电,简单明 了。前面板采用12.1"超大真彩LCD控制窗口,整个系统软硬件运行状态实时动态显示,一目了然。用户可以直接通过控制窗口的触摸屏进行人机交互,可以 非常方便地对系统进行周到细致的管理和监控。


主机柜内部的中心节点,全面采集整个系统的运行环境、各节点的软硬件运行状态,对节点发送控制指令,并负责机柜系统I/O。视频切换器具有独特的 视频切换功能,使得用户利用单一显示系统就可以对整个机群系统进行操作,改变了以往的每一个计算机节点都配置一个显示器的情况。既方便了用户的管理又节约 了用户投资。
UPS供电保护。以防系统在突然断电的情况之下能够保护用户的数据。
以本系统16个节点为例,每个计算机节点的电源供电量为400W,平均的耗电量为峰值的85%。两台交换机和KVM的耗电量之和在100W左右。 外加一台4000-6000W左右的空调。而集群的散热量是每台机器在200W左右,整个集群系统的发热量在4800W左右。空调的正常耗电量也是在 5000W左右。所以本系统(包括空调)的耗电峰值应该在16000W左右。而平均耗电量在 14000W左右。
                        



扩展机柜(可选) 
操作系统 LINUX (RedHat 9.0)/AS3.0
系统语言及编译器 C、C++和Fortran编程语言及编译器,交互式Fortran并行化编译器TIPS
并行编程环境 PVM与MPI
管理系统  网络交换机 台视频切换机 台内置机架式控制台 15" 真彩LCD显示器(含键盘、鼠标)自动控制可伸缩控制台 
 
工作环境 环境温度:0℃--25℃ 相对湿度:30%--90%
储运环境 环境温度:0℃--40℃ 相对湿度:30%--95%


服务用户:

一、为用户提供高性能并行计算需求分析与可行性报告
1、 帮助用户根据应用问题的特征,这些问题对高性能并行计算的需求,以及近期内将要 达到的目标,提出高性能并行计算需求报告;
2、 综合当前各类高性能并行机的发展趋势、应用特征以及经费额度,提出最合适的高性能并行机及其附属设备的购买方案,并在选型过程中帮助用户对候选机型进行有针对性的性能测试与比较;
3、 基于用户现有或将要购买的并行机,用户现有的人才资源状况,结合用户实际应用问题的特征,提出高效率管理、维护和使用并行机的方案;

二、为用户提供高性能并行机系统集成及并行计算培训
1、 包括系统结构设计、系统集成与调试、运行环境设计、系统管理维护工具的开发、系统性能优化、系统管理与使用培训,并在一定时间内承担系统维护的技术支持,
2、 配置并行机操作系统、编译系统、并行程序开发平台、作业调度环境、程序调试环境、性能分析工具、上机环境,以及各类并行应用程序开发辅助工具;
3、 安装各类高性能数值库软件工具箱;
4、 辅助用户建设高性能并行计算机环境。
5、 培训一般的并行机系统管理与系统维护人员,使之能有效地承担起本单位并行机或微机机群的日常系统管理与维护任务;

三、高性能并行应用软件开发与性能优化 
1、 为用户提供的串行应用软件基础上,在不改变数值算法的前提下,基于消息传递MPI、共享存储OpenMP和数据并行HPF,实现用户科学与工程应用软件的高性能并行化,使该并行程序能在用户指定的并行机上高效率地运行;
2、 接合当前并行机的高性能特征,优化用户现有的并行应用软件的性能,并使之具备更高的可扩展性、可移植性、可维护性;
3、 用户并行应用程序中将遇到的核心问题,例如矩阵运算、稀疏线性代数方程组求解、矩阵特征值、FFT、分类排序、模式匹配等等,指导选择适当的高性能的并行库软件
4、 针对用户提出的实际应用问题,合作研制高性能的并行算法和并行程序。
5、 对用户关心的科学/工程问题,应用现有计算方法(预条件处理,多重网格,区域分裂等)研制高效并行库软件;
6、 对具体问题,研究网格构造及网格移动技术;
7、 有软件或数据之间无缝接口技术;科学/工程问题中参数提取算法研究。
8、 对一些特殊问题研究新算法及并行实现方法


附件
产品的详细
注明:计算节点以客户的情况而定
说明:可提供基于IA-32,IA-64,Opteron 64,Blard server产品



 





 gongshi 回复于:2005-02-02 09:24:27

一、实现计算机集群的操作系统的种类
集群系统采用的操作系统主要有VMS、UNIX、WindowsNT和Linux。在高端商业应用中,建议使用HPUX或者AIX来实现。对于一 般的部门服务器或者一般的基于WEB应用的服务器,建议使用Linux的计算机集群。当然,上面的建议是指的商业上的应用,如果是科学方面,那就强烈推荐 使用Linux了,应为那样可以节约很多成本.

1.1UNIX
VMS的计算机集群技术是DEC公司开发的,是最早的cluster技术,不过他被compaq收购以后,现在的运行平台前景不明,所以,现在的情况非常的糟糕~
UNIX是服务器或工作站上普遍使用的操作系统,它运行稳定、安全性也比较好,因此许多大的公司都采用了基于UNIX的集群系统解决方案,如HP、SUN、IBM、公司,其中在国内影响比较大的主要是HP、SUN和IBM。
1.2Microsoft
基于WindowsNT的集群系统解决方案厂商Mircrosoft于95年就开始了集群系统的研发工作。Windows 2000中已经增加了 集群功能,该高可用性集群叫做WolfPack,也叫做Microsoft Cluster Server (MCS)。它主要是在企业级对基于 Windows NT服务器的应用程序提供可用性和可升级性。WolfPack现在支持两个服务器,一个用来对用户提供服务,另一个作为备份服务器使用。 Microsoft下一步的目标是将WolfPack支持的节点数扩展到16个。Wolfpack的缺陷在于:它只提供了两个节点的失败恢复功能,而没有 采用复杂的应用程序资源管理功能,因此在一定程度上影响了系统的高可用性、高可靠性和可升级性。Wolfpack不能支持多种操作系统,而只能运行于 Windows NT操作系统上。由于WindowsNT操作系统本身在稳定性、大型并行计算上与UNIX系统存在较大差距,目前主要在中小型系统上应 用。在NT后续版本中微软加强了对集群技术的支持,比如在Windows 2000/2003中的Advanced server和datacenter 中支持群集服务和负载均衡技术。
IBM、Microsoft和Intel于2000年7月联合发布了一种高可用性服务器集群软件及硬件包,这种服务器集群的配置包括32台 IBM Netfinity 8500R及Intel Pentium Ⅲ Xeon处理器,运行IBM的DB2 Universal Database 和Microsoft Windows 2000 Advanced Server操作系统,每分钟可以执行440879次交易。这套系统面向数据密集的 应用,特别是B2B、电子商务和企业资源规划领域。
Windows 2000是微软世纪的杰作,它本身在稳定性和安全性上比起它的前辈来说有了很大的提高。而且在它上面也融会了微软的很多新的技术,比如说本文讨论的集群技术。
并不是所有的微软OS都支持集群技术,要支持集群技术必须满足三个条件:
1:动态创建和删除网络名称和地址。
2:在卸除驱动器时,修改文件系统一关闭以打开的文件。
3:修改I/O子系统,在集群的多服务器或节点之间共享磁盘和卷组。
Windows 2000 advanced server 和 Windows 2000 Datacenter server,Windows2003 能够支持以上技术,也就是说微软的OS只有他们在支持集群技术。
但是有一点必须提出─―那就时微软的以上两种操作系统并不时所有的集群技术它都支持,它们所支持的集群技术只有高可用性集群(微软叫它为群集服务)和负载均衡集群(微软叫它为NLB)

群集服务
现在首先讨论群集服务,它时有两个或者两个以上的被称之为节点的单个服务器构成。他们协同工作,对于网络而言,他们就象单个服务器一样,他们不管 从物理上将还时从程序上将他们都是彼此相连接的,因此他们在相应客户端请求时协调通信。群集中的每个服务器都可以在硬件或者程序出现错误时提供冗余操作。 因而可以提供很高的可用性。
Windows 2000提供的群集服务在节点的数目上面是有限度的,Windows 2000 Advanced server 可以支持两个节点,Windows 2000 Datacenter server 能够支持的节点数目为四个。

NLB
NLB使得TCP/IP程序的可伸缩性和可用性大大增强,它可以允许32个响应TCP/IP请求的服务器上,它采用分布式软件体系结构,NLB的 核心是一个叫做Wlbs.sys的一个驱动器,它运行在每个服务器上的网络适配器驱动器和TCP/IP之间。现阶段支持该项技术的只有 windows 2000 advanced server、windows 2000 datacenter、Windows 2003等等。

1.3 Linux
随着Linux操作系统不断走向成熟,并且提供了GNU软件和标准化的PVM、MPI消息传递机制,最重要的是Linux在普通PC机上提供了对高性能网络的支持,这样就大大推动了基于Linux的集群系统的发展。

就本人而言,我比较倾向于才用Linux操作系统来实现集群。对于日常性的使用,这种操作系统是完全可以胜任的。集群的本身,就我个人以为它是一 种在某种程度意义上将节约成本的技术。那么使用UNIX操作系统将便的不合时宜。因为这些操作系统如果不同特定的硬件结合将变得性能和兼容性大大降低。如 果兼顾硬件平台,那么价格将直线上升。使用普通的PC给来实现集群技术,那么Linux将变得很合适(当然他本身的性能和稳定性也是相当出色的,要不然节 约将变得毫无意义)。现在就按照这种操作系统进行进一步的讨论。

二、在Linux下实现计算机集群的种类
Linux操作系统本身具有其他操作系统无法比拟的优势,它是免费的,自由的,开放的OS。而且在Linux上面实现集群的种类是最为广泛的。几乎所有的集群种类都可以在它上面实现。下面就列举一下在Linux上面实现的集群技术。

2.1、高性能集群(科学集群)
想法是通过很多的PC计算机来实现很强的计算机处理能力来替代小型计算机等等这样的想法可以实现,但是在现在这样的计算机技术情况下是无法实现的,因为,不管PC的处理能力有多高,多快,但是稳定性上,安全性上以及I/O的处理能力上,PC同小型机还是有很大的差异的。
不过,随着现代计算机技术的发展,基于PC的高性能集群技术在某些领域中还是有他的使用范围的。
2.1.1 Beowulf
Beowulf不是科学集群软件的名称,而是一个术语,适用于在 Linux 内核上运行的一组公共软件工具。关于这个主题,有许多文档和书籍。Beowulf 与以下一些科学集群系统之间的差异可以是实际的,或者只是在产品名称中有差异。
2.1.2 Giganet cLAN
它使用非 IP 协议在一个科学群集的节点间进行通信。它也有 Beowulf 的缺点,即不能用作网络负载共享系统,除非想要编写应用程序来监控和分发在服务器间传送的网络包。

2.2 负载均衡群集
2.2.1TurboLinux TurboCluster 和 enFuzion
EnFuzion 支持在节点之间实现自动负载均衡和资源共享,而且可以自动重新安排失败的作业。 EnFuzion 是 TurboLinux 即将推出的科学群集产品,它并不基于 Beowulf。但是,它可以支持上百个节点以及许多不同的非 Linux 平台,包括 Solaris、Windows NT、HP-UX、IBM AIX、SGI Irix 和 Tru64。EnFuzion 非 常有趣,因为它运行所有现有软件,并且不需要为环境编写定制的并行应用程序。它支持在节点间实现自动负载均衡和资源共享,而且可以自动重新安排失败的作 业。
但是,这个软件包的价格非常昂贵,性能还是不错,如果能够将价格下调一些,那就爽了~
2.2.2MOSIX
MOSIX 使用 Linux 内核新版本来实现进程负载均衡集群系统。该系统在以后的帖子中会讲解如何来实现配置的过程,他是免费的,个人非常喜欢。
他对于应用来说是透明的,提供了很好的配置文件来实现添加到群集的总处理能力,现在基于MOSIX的计算机集群技术发展的很快,在很多地方已经开始了正式的商业应用。

2.3 高可用性群集
简称HA,这种技术在商业上是应用的最为广泛的集群技术,当构成集群的节点中其中一个节点当机或者失败的时候,由集群中的其他节点接管他的运行任务,这样就可以保证系统最大的可用性。在WEB上比如MAIL server也是经常使用这样的技术。
在这里,我主要推荐的是HP的MC/ServerGuard fot Linux软件包,本来HP的MC/ServerGuard在HPUX中是采用最为广泛的集群软件包,现在hp将他抑制到linux中来,这样就可以保证软件最大的稳定性。

 :em21:  :em21:(注:摘自NICRY)


 gongshi 回复于:2005-02-04 08:59:31

机群作业管理系统的评价体系

[摘要] 本文首先简单介绍当今颇具代表性和影响力的几种机群作业管理系统PBS、LSF、LOADLEVELER和CONDOR,以及我们开发 的曙光系列超级服务器机群作业管理系统JOSS,接着介绍机群作业管理系统的评价体系,然后运用这一评价体系,比较和分析了当今有代表性的一些作业管理系 统和曙光系列超级服务器作业管理系统JOSS,并由此得出了一些对于今后研制机群作业管理系统具有重要指导意义的结论。
[关键词]作业管理,评价体系,机群
0 引言
机群系统具有低成本、高性能的特性,提供了强大的批处理和并行计算能力,代表了高性能计算机发展的新方向。作为机群系统软件的重要组成部分,机群 作业管理系统可以根据用户的需求,统一管理和调度机群的软硬件资源,保证用户作业公平合理地共享机群资源,提高系统利用率和吞吐率。因此,机群作业管理系 统已成为高性能计算机领域的一个热点问题,出现了几十种的软件,它们在目标、结构、功能和实现上各有千秋。 Kaplan,Baker,James Patton Jones,Saphir,Mary Papakhian等人从不同方面评价了现有的一些机群作业 管理系统,但是到目前为止还缺少一个完整的评价体系来评价这些系统。长期研究和开发机群作业管理系统的经验表明,建立一个完整的作业管理系统评价体系,对 于研制功能完备、公平高效的机群作业管理系统来说至关重要。为此,我们广泛研究了现有的十多种作业管理系统,紧密结合研制曙光系列超级服务器作业管理系统 的实践,根据我们研制过程中所出现的问题、参考标准以及用户的需求,提炼出作业管理系统设计和实现中必需解决的关键问题,据此形成了一套较为完整的作业管 理系统评价体系。然后运用这一评价体系,比较和分析了当今有代表性的一些作业管理系统,并由此得出了一些对于今后研制机群作业管理系统具有重要指导意义的 结论。
1 几种流行的机群作业管理系统
目前的几十种机群作业管理系统,在目标、结构、功能和实现上各有差异,从不同侧面反映了机群作业管理系统所应具备的特性。PBS、CONDOR、 LSF、LOADLEVELER是当今颇具代表性和影响力的几种机群作业管理系统。其中PBS、CONDOR是研究产品,LSF、LOADLEVELER 是商业软件。下面,我们对这几种作业管理系统进行简单介绍和讨论。
1.1  PBS(Portable Batch System)
PBS最初由NASA的Ames研究中心开发,为了提供一个能满足异构计算网络需要的软件包,特别是满足高性能计算的需要。它力求提供对批处理的 初始化和调度执行的控制,允许作业在不同主机间的路由。PBS的独立的调度模块允许系统管理员定义资源和每个作业可使用的数量。调度模块存有各个可用的排 队作业、运行作业和系统资源使用状况信息。使用它提供的TCL、BACL、C三种过程语言,它的调度策略可以很容易被修改,以适应不同的计算需要和目标, 即系统管理员可以方便地实现自己的调度策略。
PBS的主要特点有:代码开放,免费获取;支持批处理、交互式作业和串行、多种并行作业,如MPI、PVM、HPF、MPL;提供TCL、 BACL、C三种过程语言,容易实现新的调度策略;提供文件传送功能,File Stage-in和Stage-out;满足POSIX1003.2d标 准;支持作业依赖;自动的负载平衡;完整的安全认证;提供了完整的API,方便新的调度器的开发;提供用户影像功能,使PBS能用于用户不一致的系统 中 。
1.2  LSF(Load Sharing Facility)
    负载共享软件LSF是由加拿大平台计算公司研制与开发的,由Toronto大学开发的Utopia系统发展而来。从强大的功能和广泛使用 的角度看,LSF可谓是一个成熟的机群作业管理系统。在使用范围上,LSF不仅用于科学计算,也用于企业的事务处理。用户包括摩托罗拉、美国宇航局 (NASA)、休斯敦飞机公司、通用电气公司、斯坦福大学等著名企业与科研团体。功能上,除了一般的作业管理特性外,它还在负载平衡、系统容错、检查点操 作、进程迁移等方面作了很好的努力,并力图使之实用化。
LSF的主要特点是:支持多种操作系统,包括NT和WIN2000;支持检查点操作(核心级、用户级及应用程序级)和进程迁移;具有高可用性, 消除单一故障点;提供了抢占式调度和关键资源保障,保证紧急作业的调度;可通过逻辑表达式创建作业依赖图,提供对依赖性作业的支持;提供了多种调度策略, 包括Reservation和Backfill;动态的负载平衡与负载监测,负载指标包括节点状态、运行队列长度、CPU利用率、分页速率、登录用户数、 空闲时间、可用交换空间、可用存贮器、/tmp目录下的可用空间;提供了完整的负载共享库;具有强大的资源管理功能。
1.3  LOADLEVELER
Loadleveler是IBM开发的机群作业管理系统。它成功地运行在IBM SP2机群系统上。Loadleveler允许用户在同构或异构 的机群系统中提交交互式/批处理作业。除了IBM AIX操作系统外,它还支持HP-UX、SGI IRIX、SUNOS和SOLARIS等主流UNIX 平台。在教育、研究机构、企业等各行各业,Loadleveler以其灵活高效的特点得以广泛应用,例如大规模的仿真、资源的优化利用、天气预报、地层模 拟、经济分析等。
LOADLEVELER的主要特点是:支持并行/串行,交互式/批处理作业;对工作站主人的影响小;可定义作业类,优化调度;具有较好的系统可用性;系统中心控制;完整的文档;分布的用户服务器;提供完整的API;与NQS兼容。
1.4  CONDOR
CONDOR是由威斯康星大学开发的机群作业管理系统。充分利用工作站的空闲时间是CONDOR的最显著特征。CONDOR管理的机群由网络中的 工作站组成。工作站主人可以自愿加入或退出。CONDOR监测网络中所有工作站的状态,一旦某台计算机被认为空闲,便把它纳入到资源池(POOL)中。在 资源池中的工作站被用来执行作业。当工作站的主人开始使用该工作站时,CONDOR便将运行在该工作站上的作业迁移到其它节点上继续运行,从而避免了对工 作站主人的影响。所有这些特征并不需要修改底层的UNIX操作系统核心,只需在用户级进行,而且不需修改用户程序,只需与CONDOR提供的库函数重新链 接。
CONDOR的主要特征是:充分利用工作站的空闲时间;用户只需与库函数重新链接便可利用CONDOR提供的检查点和进程迁移功能;对于远程执 行的进程,本地的执行环境被保留;工作站主人对该工作站拥有最高优先级和完全的控制权;作业保证彻底完成,不会因为系统的故障或工作站的退出而终止;本地 磁盘空间不会被CONDOR作业所占用;对网络资源、数据传送和检查点操作的有效监控;对网络资源、CPU的协同调度。
3 曙光机群作业管理系统JOSS
JOSS是我们在DQS基础上开发的曙光系列超级服务器机群作业管理系统。它成功地运行在曙光天潮系列超级服务器上。它具有DQS所具有的特点,同时又根据曙光超级服务器的体系结构和软件平台加以改造,具有一些新的特点。下面是JOSS的系统结构图:
                      
JOSS由两个守护进程组成:Masterd和Execd,他们负责为系统的运作提供最根本的支持,是整个系统的核心。运行Masterd的节点 称为主节点,运行Execd的节点称为计算或执行节点。系统中只有一个主节点,但可同时由多个执行节点。这是逻辑上的概念。在物理上,Masterd和 Execd可存在于同一个节点上。从图中可以看出,Masterd用来接受用户的各种请求,并调度作业,管理系统资源。它维护着整个系统的关键配置信息和 两种队列:作业队列和节点队列。作业队列存放着用户已提交的各个作业的信息,节点队列存放各个执行节点的资源信息。Masterd还负责作业的调度和执行 节点的选取,根据一定的作业调度策略选取作业和节点,将执行作业的命令发送给Execd。Execd用来接收Masterd执行作业的命令,将作业投入运 行,同时监控作业的运行状态和资源使用情况,向Masterd报告,还定期报告节点的负载信息。
4 机群作业管理系统的评价体系
我们在研究多种机群作业管理系统的基础上,结合我们在开发JOSS系统中所遇到的问题和参考标准,并参考其他人对作业管理系统的比较和评价,我们总结了机群作业管理系统的评价体系,包含以下几个方面的内容:
4.1  支撑环境:即系统的应用范围,包括:(1)是商用或是研究产品。这将决定使用该系统的花费和期望得到的服务等级。商用产品能提供较强的 系统稳定性、强壮性和全面的服务支持,而研究产品一般开放源码,用户可根据需要加以改进(2)是否支持异构机群,如PC,MPP或工作站(3)支持的操作 系统平台(4)为了运行该系统,是否需要安装其它的硬件或软件(5)能支持哪些文件系统,如NFS,AFS,DFS
4.2  支持的作业类型:(1)是否支持批处理作业(2)是否支持交互式作业(3)是否支持串行作业(4)支持那些并行作业,是否支持MPI、PVM、HPF等等
4.3  作业调度和节点分配策略:(1)提供了哪些作业调度和节点分配策略(2)作业调度和节点分配策略是否是可配置的,用户能否自由选择各种 策略而不影响系统的正常运行(3)用户能否选择或更改各种调度参数,如采用负载平衡算法时,是否可由用户自由选取负载参数(4)当系统由许多工作站组成 时,对工作站主人的影响如何(5)调度算法的开销由多大(6)是否提供了检查点操作的功能,支持哪几种作业类型的检查点操作,是在操作系统级还是用户级 (7)是否提供了进程迁移的功能(8)系统是否对作业的状态进行监控,当作业异常是能否重新调度作业(9)能否挂起或继续运行作业(10)能否支持作业依 赖(11)能否支持节点的公平共享策略、分区策略和独占策略,并由用户指定(12)是否实现优先级策路,并允许用户修改作业的优先级(13)是否具有分离 的调度器和公开的API接口,方便用户自己开发调度器
4.4  资源管理功能:(1)系统管理员能否控制资源的可用性,能否更改资源配置,添加、删除和修改资源(2)系统管理员能否控制用户对资源 的存取权限(3)系统管理员能否限定资源被使用的大小(4)用户提交作业时能否确定资源要求,作业提交后能否更改作业的资源要求(5)当作业完成后,能够 很好地进行善后处理(6)是否能提供Stage-in 和Stage-out功能(8)当系统不可能满足作业的要求时,系统能否在用户进行作业提交时采取 措施(9)加盟的工作站主人能否设置资源的可用性、存取权限以及可用时间(10)加盟的工作站主人能否自由地退出而不影响整个系统的运行
4.5  作业监控能力:(1)系统能否有效的监控作业的所有进程,特别是分布在不同节点上的并行作业的各个进程(2)当用户杀除作业时,系统 能否彻底地杀除该作业的所有子进程,不留下僵尸进程(3)系统管理员能否改变队列或作业的状态(4)用户能否察看系统和作业的运行状态(5)用户能否挂 起、释放或删除作业
4.6  安全:系统能否保证在多用户环境下的安全,包括:(1)系统是否有用户的身份认证机制,防止非授权用户对系统的使用和用户之间的冒名 使用(2)能否防止恶意用户对系统的破坏(3)是否存在安全漏洞,能否防止网络黑客的攻击(4)能否防止用户对其它用户的作业的操作(5)除了 Password 文件之外有没有其它的用户认证机制
4.7  记账日志管理:(1)系统能否记录每一作业的不同时期的状态(2)系统能否记录每一作业的运行开始、结束时间,退出状态、优先级,通讯量以及所使用的资源(3)系统能否根据管理员的记账策略生成记账信息
4.8  可用性:(1)系统能否消除单一故障点,保证系统的连续可用性(2)当系统某些部分发生故障时,系统能否保证作业不丢失以及作业运行结果的正确性(3)系统可用性的实现有什么要求
4.9  好用性:(1)系统管理员能否容易地管理和配置该系统(2)是否提供了图形化界面和命令行方式,方便用户提交作业、查询系统和作业状态 (3)系统管理员能否动态配置系统而不影响系统的正常运行(4)系统是否有完善的文档(5)用户能否在提交作业时指定作业开始调度或运行时间(6)用户能 否通过Script文件提交作业(7)用户能否重新定向输入和输出文件(8)用户能否从提交节点方便的存取输出文件(9)是否提供了系统各个部分的API 接口(10)是否符合相关标准 POSIX 1003.2d “Batch Queueing Extensions for Portable Operating Systems” (11) 系统是否具有良好的可扩展性(12)能否支持两个机群系统互相提交作业
5 对各种作业管理系统的比较和评价
以上介绍了当今流行的最具代表性的几种机群作业管理系统和曙光系列超级服务器机群作业管理系统JOSS以及我们所建立机群作业管理系统的评价体系。根据我们先前建立的评价体系,我们对这几种流行的作业管理系统和JOSS进行简单的比较和评价:
5.1支撑环境:几种作业管理系统都支持PC,MPP或工作站异构机群,支持多种流行UNIX操作系统,LSF还支持WINNT和WIN2000;另外,它们都支持NFS;JOSS需要NFS的支持
5.2支持作业类型:他们都支持批处理作业,串行作业和MPI、PVM并行作业;LSF和PBS支持交互式作业;PBS还支持HPF以及MPL并行作业
5.3 作业调度和节点分配策略:都提供了FIFO等多种作业调度策略;LSF和LOADLEVELER还提供了较为有效的 RESERVATION和BACKFILL策略;JOSS提供了基于优先级的FirstFit作业选取策略。都提供了完整的API,方便实现新的调度策 略;PBS还提供了TCL、BACL、C三种过程语言和调度类,用户只需改造调度类便可实现自己的调度策略。作业调度和节点分配策略都是可配置的,对于节 点分配策略,都提供了公平共享和独占两种策略;JOSS提供了基于POOL的节点分区策略,分区内的节点可设定节点可运行的作业数。另 外,LOADLEVELER中,系统管理员还可以定义作业类,系统根据作业的类别、用户和组来定义优先级。除PBS、JOSS外,都有限度地提供检查点操 作和进程迁移,其中尤以CONDOR的检查点操作实现的较为全面。系统都实现了负载平衡策略,都提供了内存使用率、负载均值等作为负载参数,其中LSF的 负载平衡算法采用了多种负载参数,有:节点状态、运行队列长度、CPU利用率、分页速率、登录用户数、空闲时间、可用交换空间、可用存贮器、/tmp目录 下的可用空间。另外,各个系统都较好的实现了对作业状态的监控。
5.4资源管理功能:在各个系统中,系统管理员都能控制资源的可用性,能更改资源配置,添加、删除和修改资源,能控制用户对资源的存取权限。用 户提交作业时能确定资源要求,作业提交后能更改作业的资源要求。其中,PBS提供了Stage-in 和Stage-out功能。在 LOADLEVELER和CONDOR系统中,支持各个计算节点的动态加入和退出,而且计算节点工作站的主人,对该节点有完全的控制权,能指定节点资源的 可用性和可用时间,系统也能根据键盘或鼠标空闲时间或网络状态决定该计算节点是否加入
5.5作业监控能力:各个系统都能有效的监控作业的所有进程,特别是分布在不同节点上的并行作业的各个进程。当用户杀除作业时,各个系统都能彻 底地杀除该作业的所有子进程,不留下僵尸进程。在各个系统中,系统管理员都能改变队列或作业的状态,用户能察看系统和作业的运行状态,用户能挂起排队作 业、释放或删除作业
5.6安全:各个系统都有基于UNIX操作系统的安全策略,一定程度的保证了多用户环境下的安全。在PBS中,提供了用户的身份认证机制,防止 非授权用户对系统的使用和用户之间的冒名使用,还提供了主机、组的授权与认证,能防止用户对其它用户的作业的操作。JOSS系统在安装时设定信任节点,用 户提交作业或其它请求只能在信任节点上进行。另外,PBS和LSF都能支持Kerberos认证服务
5.7记账日志管理:各个系统都能记录每一作业的不同时期的状态,记录每一作业的运行开始、结束时间,退出状态、优先级,通讯量以及所使用的资源
5.8可用性:PBS未消除单一故障点,调度器和服务器均存在失效可能。JOSS系统没有消除单一故障点,不能保证系统的连续可用性。当主节点失 效时,需要系统管理员重新启动,已提交的作业不会丢失。执行节点发生故障时,其上运行的作业将丢失,不能重新进行调度。在LSF中,采取了主节点动态选择 机制,消除系统的单一故障点。LOADLEVELER的中心管理节点消除了单一故障点,保证了系统的连续可用性;当存放作业信息的调度节点发生故障时,原 有的信息不会丢失,直至该调度节点重启后恢复;对于各个计算节点,发生失效时,调度节点等待一段时间后,将该节点上的作业重新调度。
5.9好用性:在各个系统中,系统管理员都能容易地管理和配置该系统,提供了图形化界面和命令行方式,方便用户提交作业、查询系统和作业状态, 能动态配置系统而不影响系统的正常运行;用户能通过Script文件提交作业,而且能在提交作业时指定作业开始调度或运行时间。LSF、 LOADLEVELER提供了较为全面的文档支持。另外,PBS符合相关标准POSIX 1003.2d。LSF提供了MultiCluster,支持多 个Cluster之间的交互。
通过以上对各个机群作业管理系统的简单介绍和比较,我们发现各个系统在实现和功能上大同小异。LSF作为一个在市场上最具成功的机群作业管理系 统,在功能及可用性方面作了较好的努力,具有较高的实用性和优势。而PBS作为一种应用范围较广的开放源代码的自由软件,也提供了很好的功能,获得了业界 的好评和广泛的使用。CONDOR作为一个研究产品,为了最大挖掘网络中空闲工作站的计算潜力,在检查点操作和进程迁移方面作了很好的努力,是想充分利用 局域网内工作站计算资源的系统管理员的最好选择。从CONDOR发展而来的LOADLEVELER,在商业化方面IBM也作了很大努力,也具有了很好的可 用性。我们开发的曙光机群作业管理系统JOSS,虽然在功能和可用性方面逊色一些,但它基本上实现了一个机群作业管理系统所应具备的功能,而且与曙光超级 服务器系统结合紧密,充分利用了曙光超级服务器的优势,能很好的完成作业管理的工作,发挥了较好的作用,极大的方便了用户的使用,提高了系统的使用效率。 但是,它在调度算法的多样性,高可用性和安全性方面还存在一些不足,需要完善和改进。
6 结论和进一步的工作
一个功能强大、富有效率的作业管理系统不但能大大方便用户的使用,而且能够极大地提高机群系统的利用率。作为一套机群作业管理系统的评价体系,不 但是比较各个机群作业管理系统的依据,也是指导我们开发和升级现有机群作业管理系统的参考。我们的机群作业管理系统的评价体系也希望在反应系统和用户需求 的同时,成为我们开发下一版本的曙光机群作业管理系统的指导原则。目前的评价体系还停留在定性评价的基础上,没有定量评价。在以后的工作中,我们将逐步引 入定量评价的机制,特别是要设计和实现一个机群作业管理系统中调度算法的模拟评价系统,对各种调度算法进行模拟,并对模拟的结果进行比较和分析。
曙光机群作业管理系统作为曙光超级服务器的一个重要组成部分,今后也将在调度策略、安全性以及高可用性、好用性方面作进一步的改进。同时,面对网格系统的出现,我们也将在支持网格应用方面作一些尝试,使其适应新的计算环境。

你可能感兴趣的:(Cluster)