Linux集群的资源管理和系统管理

发表于:2007-07-04来源:作者:点击数: 标签:
本文介绍集群系统中的资源管理主要任务和系统管理主要任务,然后列举并比较了几种常用的资源管理软件和系统管理软件。 1 集群作业管理 从用户角度看,集群系统就好像一台服务器或者PC。很多用户可以同时使用这个系统。但是当太多的用户使用集群系统时,系统
 

本文介绍集群系统中的资源管理主要任务和系统管理主要任务,然后列举并比较了几种常用的资源管理软件和系统管理软件。

1 集群作业管理

从用户角度看,集群系统就好像一台服务器或者PC。很多用户可以同时使用这个系统。但是当太多的用户使用集群系统时,系统性能会变得很差。资源管理就是管理用户提交的作业,合理给各个作业分配资源从而确保充分利用集群系统计算能力并尽可能快的得到运算结果。简单的说,集群资源由实现如下几个部分:

  • 资源管理器:为了确保分配给作业合适的资源,集群资源管理需要维护一个数据库。这个数据库记录了集群系统中各种资源的属性和状态、所有用户提交的请求和正在运行的作业。策略管理器根据这些数据和指定的调度策略生成优先级列表。资源管理器根据这个优先级列表调度作业。资源管理器还应该具有资源预留能力。这样不仅可以保留强大的资源给需要的作业,而且可以预留一定的冗余资源以应付集群中的结点失效和突发的计算。
  • 作业调度策略管理器:策略管理器根据资源管理器得到各个结点上的资源状况和系统的作业信息生成一个优先级列表。这个列表告诉资源管理器何时在哪些结点上运行哪个作业。策略管理器不仅要提供一个复杂的参数集合去定义计算环境和作业,而且要为这个定义提供简捷灵活的表达方式以允许系统管理员实现策略驱动的资源调度。

2 Beowulf集群中的作业管理软件

有很多种选择去管理集群系统中的资源。其中PBS资源管理器和Maui作业调度器最适合集群系统。

2.1 PBS

PBS(Portable Batch System)是由NASA开发的灵活的批处理系统。它被用于集群系统、超级计算机和大规模并行系统。PBS主要有如下特征:

  • 易用性:为所有的资源提供统一的接口,易于配置以满足不同系统的需求,灵活的作业调度器允许不同系统采用自己的调度策略。
  • 移植性:符合POSIX 1003.2标准,可以用于shell和批处理等各种环境。
  • 适配性:可以适配与各种管理策略,并提供可扩展的认证和安全模型。支持广域网上的负载的动态分发和建立在多个物理位置不同的实体上的虚拟组织。
  • 灵活性:支持交互和批处理作业。

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机上很简单的管理功能对于集群系统而言可能会很难做到。比如让一组结点重启,就很难手工完成。所以集群系统需要一些特殊的硬件设备完成这些功能。下面是几个需要硬件支持特殊管理功能:

  • 远程电源管理:主要是远程关闭、打开和重启结点与查询结点电源状态。在IBM eServer Cluster 1300中采用ASM。
  • 远程控制台:当远程结点出现问题或出现一些特殊的软件需要时,需要直接登录到结点上完成操作。KVM Switch可以满足这种需求,但是当结点很多时,KVM Switch就会很复杂。而且KVM Switch需要手工切换,不能通过软件方法使用。Terminal Server克服了KVM Switch的缺点。Terminal Server与结点的串口相连,并把串口虚拟成管理结点上终端设备,当然这需要对结点的>操作系统做些相应的配置。

3.6 系统安装

集群系统的安装主要是指在各个结点上安装>操作系统、文件系统、并行程序运行库、作业管理软件和系统管理软件等。它是集群系统投入应用的前提,所以集群系统的安装是一件非常重要的任务。一般集群系统由几十台,甚至上百上千台计算机组成,显然手工安装系统几乎是不可能的。一般集群系统的安装的机制是:

  1. 网络启动:设置需要的安装的结点网络启动,然后管理结点远程重启需要安装的结点。网络启动的结点启动后从启动服务器获得一个小的>操作系统内核。网络启动一般采用Intel的PXE(Pre-Execution Environment)标准。 PXELinux是支持PXE的网络启动服务器。它可以在网络启动的结点启动一个小的Linux核心并运行指定的Init程序。由Init程序负责后续的安装。
  2. 网络安装:这个>操作系统内核负责从安装服务器(通常是一个文件服务器)上取得安装软件包或系统镜像并在本地实施系统安装。有多种Linux工具可以完成基于

    原文转自:http://www.ltesting.net