本文介绍集群系统中的资源管理主要任务和系统管理主要任务,然后列举并比较了几种常用的资源管理软件和系统管理软件。
1 集群作业管理
从用户角度看,集群系统就好像一台服务器或者PC。很多用户可以同时使用这个系统。但是当太多的用户使用集群系统时,系统性能会变得很差。资源管理就是管理用户提交的作业,合理给各个作业分配资源从而确保充分利用集群系统计算能力并尽可能快的得到运算结果。简单的说,集群资源由实现如下几个部分:
2 Beowulf集群中的作业管理软件
有很多种选择去管理集群系统中的资源。其中PBS资源管理器和Maui作业调度器最适合集群系统。
2.1 PBS
PBS(Portable Batch System)是由NASA开发的灵活的批处理系统。它被用于集群系统、超级计算机和大规模并行系统。PBS主要有如下特征:
OpenPBS( http://www.OpenPBS.org/)是PBS的Open Source的实现。商业版本的PBS可以参照: http://www.pbspro.com/。
2.2 Maui
Maui 是一个高级的作业调度器。它采用积极的调度策略优化资源的利用和减少作业的响应时间。Maui的资源和负载管理允许高级的参数配置:作业优先级(Job Priority)、调度和分配(Scheduling and Allocation)、公平性和公平共享(Fairness and Fairshare)和预留策略(Reservation Policy)。Maui的QoS机制允许资源和服务的直接传递、策略解除(Policy Exemption)和指定特征的受限访问。Maui采用高级的资源预留架构可以保证精确控制资源何时、何地、被谁、怎样使用。Maui的预留架构完全支持非入侵式的元调度。
Maui的设计得益于世界最大的高性能计算中心的经验。Maui本身也提供测试工具和模拟器用于估计和调节系统性能。
Maui需要资源管理器与其配合使用。我们可以把Maui想象为PBS中的一个插入部件。
更多Maui的信息可以访问: http://www.supercluster.org
3 集群系统管理
从系统组成角度说,集群系统是由多台计算机组成的超级计算机。但是从最终用户看来,集群系统是一台计算机,也就是说,集群系统的构成对用户是透明的。所以集群系统的管理的目的就是让集群系统象一台计算机一样利于管理。归纳起来,集群系统管理一般完成如下任务:
3.1 资源管理
简单地说,资源管理就是分配系统的资源和监控系统资源的使用状态。这里的资源是个很广泛的概念,各种硬件设备、数据和程序都可以看成资源:如CPU、存储、网卡,甚至系统的事件和log。
3.2 事件服务
事件(Event)就是系统的状态的一次变化。如"CPU的利用率超过90%"就可以理解为一次事件。简单的说,事件服务就是事件通知服务,也就是当一次事件发生时,通知对这类事件感兴趣的个体这个事件发生了。事件服务可以分为Push(也称为Subscribe-Publish)和Pull方式。系统管理员还应该能够通过事件服务设置系统对事件的自动响应。
3.3 分布式命令和文件
分布式命令和文件是指让命令和文件操作同时在整个集群结点或指定的一组结点上并行执行。
分布式命令功能通常通过分布式的Shell来提供。这种Shell一般叫做dsh(distributed shell)或 psh ( parallel shell)。你可以通过rsh或ssh来实现分布式Shell。
分布式文件主要用于指集群中配置文件的同步。集群系统实际上是由多个结点组成,所以对集群系统的一个配置需要发布到每个结点(或一组结点)。比如,需要配置每个结点上的Apache都支持CGI,就需要把/etc/httpd下的配置文件发布到每个结点的/etc/httpd中。简单地说,集群系统地配置管理就是把一个或多个配置文件发布到指定的结点上。有很多开放源码的工具可以帮助完成集群系统的分布式文件功能,如rdist和cfengine。
3.4 监控和诊断
对持续运行的集群系统而言,当系统正常运行时,你需要一些工具监控系统各部分的运行状态,如系统进程、CPU利用率和内存利用率等。在普通的Unix系统上,你可以简单的用ps和top实现这些功能。但是在集群系统中,你确实需要一些特殊工具,而且最好系统的监控可以支持多种网络管理协议,如SNMP和 WBEM。当集群系统工作不正常时,你则需要另外一些工具来协助系统诊断。如当系统某个不服务时,你可能需要用ping诊断是不是网络出了问题。而当时多个结点服务时,你则需要并发的ping来诊断是不是网络错误。
3.5 硬件控制
PC机上很简单的管理功能对于集群系统而言可能会很难做到。比如让一组结点重启,就很难手工完成。所以集群系统需要一些特殊的硬件设备完成这些功能。下面是几个需要硬件支持特殊管理功能:
3.6 系统安装
集群系统的安装主要是指在各个结点上安装操作系统、文件系统、并行程序运行库、作业管理软件和系统管理软件等。它是集群系统投入应用的前提,所以集群系统的安装是一件非常重要的任务。一般集群系统由几十台,甚至上百上千台计算机组成,显然手工安装系统几乎是不可能的。一般集群系统的安装的机制是:
下表归纳了几种安装工具的特点:
| 安装工具 | 安装方法 | 支持的系统 | 支持的网络协议 |
| KickStart | Script | Redhat Linux | NFS、FTP |
| SIS | Script和Imaging混合 | Redhat Linux SuSE Linux Turbo Linux … |
rsync |
| PartImage | Imaging | EXT2、FAT、NTFS、HPFS… | 私有协议 |
3.7 域管理
你可以简单的把集群系统的域管理理解为结点管理,它主要包括如下简单的功能:
实际上,我们也把作业管理纳入集群系统管理的任务。但是相对于其他系统管理任务而言,作业管理在集群系统中具有更重要的作用,而且通常的集群系统管理软件也不直接实现作业管理功能。所以我们把作业管理作为集群系统一个重要的软件部分,而不是集群系统管理的一项任务。
4 几种集群系统管理软件
集群系统管理软件和集群系统一样形形色色、多种多样。下面简要介绍几种集群系统管理软件并比较它们实现的功能。
4.1 IBM CSM
IBM CSM(Cluster Systems Management )是IBM eServer Cluster 1300上的系统管理软件。IBM的Linux集群战略的一部分就是把运行在RS/6000 SP平台上的PSSP软件移植到基于xSeries的Linux集群系统上。CSM大部分功能来源于SP平台,但是它也集成了WebSM 2000、xSeries、开放源码工具和其他技术。CSM是一款功能很全面的管理工具,而且还在不断的发展中。
4.2 XCAT
XCAT是用于IBM eServer Cluster 1300上的系统管理软件。它由Egan Ford开发。它基本上是由shell脚本写成,相当简捷。但是它实现了集群系统管理大部分的内容,是个非常出色的管理软件。
4.3 Mon
Mon在Linux平台上开发,但是也以运行在Solaris上而出名。Mon的服务器和客户都是基于perl开发的,所以很容易移植到其他UNIX和类UNIX平台。
下表比较了以上三种集群系统管理软件:
| 项目 | CSM | XCAT | Mon |
| 支持的集群系统 | IBM eServer Cluster 1300 | IBM eServer Cluster 1300 | 不特定于某个集群系统 |
| 支持的操作系统 | Redhat、SuSE | Redhat,结点可以采用Imaging和Cloning安装其他操作系统,甚至于Windows | 在Linux上开发,但是以运行在Solaris而著名。很容易移植到其他Unix和非Unix操作系统上 |
| 资源管理 | 提供统一的、可扩展的,全面的资源管理,但是由于强大而使用起来很复杂。 | 基本没有 | 基本没有 |
| 事件服务 | 提供事件订阅发布机制,并预先定义了很多系统事件和对事件的响应 | 将来会于Mon集成以完成事件服务 | 支持 |
| 配置管理 | 支持 | 无 | 无 |
| 监控和诊断 | 支持分布式Shell(dsh)、支持SNMP | 支持并发Shell(psh)、并发ping(pping) | 支持SNMP |
| 硬件控制 | 远程电源管理(rpower)远程控制台(rconsole) | 远程电源管理(rpower) 远程控制台(rcon、wcon) | 无 |
| 系统安装 | 支持KickStart和SIS 支持PXE | 支持KickStart、Imaging和Cloning 支持PXE和etherboot | 无 |
| 域管理 | 全面 | 基本没有 | 基本没有 |
| 集成性 | 除了必须的开放源码软件包,不与任何其他软件集成。但是底层资源管理和事件服务提供编程接口,集成很方便。上层可以通过命令调用集成。 | 自动安装PBS、Maui、Myrinet和MPI。将来会支持 SgridEngine Scheduler | 基本没有,应该可以通过命令行集成 |
| 易用性 | 提供强大命令行工具和简单的GUI工具 | 命令行工具,将来会和Ganglia集成提供一定的GUI | 提供命令行和基于Web的工具 |
|
|||
| · OSPF路由协议专栏 · 思科路由器产品 · 华为路由器产品 · 路由器模拟器 · AIX操作系统管理应用(.. · 思科路由器配置 · 路由器组网解决方案 · 路由器密码恢复 |
· 无线路由器故障处理 · 路由故障处理手册 · 路由器访问控制列表(AC.. · 路由器的安全配置与安.. · 无线路由器配置 · 路由器技巧 · 华为路由器配置 · 路由器配置基础 |
||
|
|||
| · Java基础教程 · VPN技术 · SQL Server 2005全解 · ARP攻击防范与解决方案 · SOA 面向服务架构 · SQL Server 2005全解 · Java编程开发手册 · 三层交换技术专题 |
· SQL Server入门到精通 · Windows Server 2003企.. · Windows远程桌面应用 · C#技术开发指南 · VPN技术 · Solaris 10 配置管理 · C#技术开发指南 · Windows操作系统安装 |
||
|
|||
| · VPN技术 · ARP攻击防范与解决方案 · SQL Server 2005全解 · Java基础教程 · SQL Server入门到精通 · SQL Server 2005全解 · SOA 面向服务架构 · Java编程开发手册 |
· C#技术开发指南 · 三层交换技术专题 · C#技术开发指南 · Windows远程桌面应用 · Windows Server 2003企.. · 邮件服务器专题 · wimax技术与趋势 · Windows操作系统安装 |
||
| ·DB2 Viper快速入门 ·DB2 9数据库的镜像分割与.. |
·将XML应用程序从DB2 8.x.. ·DB2 9中的pureXML:如何.. |
| ·服务器中的“傻瓜机”在.. ·盖茨也喜欢登录Youtube看.. |
· · |
| · 职场冲浪(之八):让感.. ·职场冲浪(之七):潜心.. |
·人生如鞋 ·职场冲浪(之六):从离梦最.. |
| ·将职业教育职业化 - 各IT.. ·思科交换机上实现MAC地址.. |
·关于51CTO合作出书中的职.. ·OSPF动态路由协议入门简介 |
| · NGN:下一代网络 · 网络访问中断大排查 · FTTx光纤接入 |
· 平凡黑客讲述精彩人生(.. · 平凡黑客讲述精彩人生(.. · 平凡黑客讲述精彩人生(.. |
| · C++是垃圾语言?! · 2007年IT界七大抄袭事件 · Java实用开发全集 |
· 解析Ajax开发框架 走进A.. · 基于Google Maps与Ajax.. · 基于Google Maps与Ajax.. |
| · Ubuntu 中文开源频道 · Solaris基础知识入门 · 微软正式发布英文版Wind.. |
· 服务器基础知识入门 · Rambus第二?看全缓冲内.. · 服务器节能对比测试:AM.. |
| · 甲骨文Oracle 11g正式发.. · Oracle数据库开发之PL/S.. · Oracle数据库开发基础教.. |
· 存储2006,一个并购的大.. · IDC宣布浪潮蝉联存储市.. · 双机热备技术 |