分布资源管理研究

时间:2022-05-12 05:17:57

分布资源管理研究

摘要:本文介绍了分布资源管理的基本概念和内容,提出了分布资源管理的功能,介绍了分布资源管理的结构,并结合分布资源管理介绍了资源信息服务的概念和基本内容。

关键词:分布资源管理;功能;结构;资源信息服务

中图分类号 TP393文献标识码:A文章编号:1009-3044(2008)35-2074-03

Research of Distributed Resource Management

YANG Fa-yi

(Library of Second Military Medical University, Shanghai 200433, China)

Abstract: In this paper, we discuss the basic concept of Distributed Resource Management, provide the function and structure of the Distributed Resource Management, and introduce the content of the resource information service.

Key words: Distributed Resource Management; function; structure; resource information service

1 引言

随着应用和需求的发展,航天、生物、军事等领域对计算能力的需求以近乎爆炸的速度发展,而集中计算环境的计算能力已经很难满足应用和需求的发展需要。另一方面,随着网络和计算机的普及和发展,PC服务器不管是在数量上,还是在性能和计算能力上都有了很大的提高,但它们的计算能力并没有被充分利用。而且,随着网络技术的发展和普及,开放、共享的理念逐渐为人们所接受。因此,为了满足应用对高性能计算的需求,更加充分的利用现有的计算资源,人们提出了各种各样的分布计算方案,如机群、元计算、点到点、网格等等,分布计算环境成为一种潮流和趋势。在分布计算环境中,对各种分布资源的管理、分配始终是基础,也是难点和重点。高效、可靠的分布资源管理方案为高效、可靠的分布高性能计算提供有力的保证。

2 相关工作简介

目前的几十种资源管理系统,在目标、结构、功能和实现上各有差异,从不同侧面反映了资源管理系统所应具备的特性。PBS、CONDOR、LSF、LOADLEVELER是当今颇具代表性和影响力的几种资源管理系统。其中PBS、CONDOR是研究产品,LSF、LOADLEVELER是商业软件。下面,我们对这几种资源管理系统进行简单介绍和讨论。

2.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能用于用户不一致的系统中 。

2.2 LSF(Load Sharing Facility)

负载共享软件LSF是由加拿大平台计算公司研制与开发的,由Toronto大学开发的Utopia系统发展而来。从强大的功能和广泛使用的角度看,LSF可谓是一个成熟的机群资源管理系统。在使用范围上,LSF不仅用于科学计算,也用于企业的事务处理。用户包括摩托罗拉、美国宇航局(NASA)、休斯敦飞机公司、通用电气公司、斯坦福大学等著名企业与科研团体。功能上,除了一般的资源管理特性外,它还在负载平衡、系统容错、检查点操作、进程迁移等方面作了很好的努力,并力图使之实用化。

LSF的主要特点是:支持多种操作系统,包括NT和WIN2000;支持检查点操作(核心级、用户级及应用程序级)和进程迁移;具有高可用性,消除单一故障点;提供了抢占式调度和关键资源保障,保证紧急作业的调度;可通过逻辑表达式创建作业依赖图,提供对依赖性作业的支持;提供了多种调度策略,包括Reservation和Backfill;动态的负载平衡与负载监测,负载指标包括节点状态、运行队列长度、CPU利用率、分页速率、登录用户数、空闲时间、可用交换空间、可用存贮器、/tmp目录下的可用空间;提供了完整的负载共享库;具有强大的资源管理功能。

2.3 LOADLEVELER

Loadleveler是IBM开发的机群资源管理系统。它成功地运行在IBM SP2机群系统上。Loadleveler允许用户在同构或异构的机群系统中提交交互式/批处理作业。除了IBM AIX操作系统外,它还支持HP-UX、SGI IRIX、SUNOS和SOLARIS等主流UNIX平台。在教育、研究机构、企业等各行各业,Loadleveler以其灵活高效的特点得以广泛应用,例如大规模的仿真、资源的优化利用、天气预报、地震模拟、经济分析等。

LOADLEVELER的主要特点是:系统中心控制;分布的用户服务器;支持并行/串行,交互式/批处理作业;对工作站主人的影响小;可定义作业类,优化调度;具有较好的系统可用性;完整的文档;提供完整的API;与NQS兼容。

2.4 CONDOR

CONDOR是由威斯康星大学开发的机群资源管理系统。充分利用工作站的空闲时间是CONDOR的最显著特征。CONDOR管理的机群由网络中的工作站组成。工作站主人可以自愿加入或退出。CONDOR监测网络中所有工作站的状态,一旦某台计算机被认为空闲,便把它纳入到资源池(POOL)中。在资源池中的工作站被用来执行作业。当工作站的主人开始使用该工作站时,CONDOR便将运行在该工作站上的作业迁移到其它节点上继续运行,从而避免了对工作站主人的影响。所有这些特征并不需要修改底层的UNIX操作系统核心,只需在用户级进行,而且不需修改用户程序,只需与CONDOR提供的库函数重新链接。

CONDOR的主要特征是:充分利用工作站的空闲时间;用户只需与库函数重新链接便可利用CONDOR提供的检查点和进程迁移功能;对于远程执行的进程,本地的执行环境被保留;工作站主人对该工作站拥有最高优先级和完全的控制权;作业保证彻底完成,不会因为系统的故障或工作站的退出而终止;本地磁盘空间不会被CONDOR作业所占用;对网络资源、数据传送和检查点操作的有效监控;对网络资源、CPU的协同调度。

以上各种资源管理系统虽然各有优势,但是可以看出基本都采用单一集中式全权管理,使管理的资源规模和种类受限;各个系统都有自己的一套资源信息的采集和表示模式,各个系统之间很难进行互操作;资源信息的获取基本都是直接与资源实体打交道,当系统扩大到一定规模时,对资源信息的获取会在很大程度上影响整个系统的效率。

3 分布资源管理的功能

虽然这些年来单机的计算能力一直在不断的进展,但是单机计算能力的提高并不直接意味着分布式计算系统能力的提高,特别系统达到一定规模之后,对整个系统资源的有效管理往往是制约整个系统能力的一个关键因素。分布资源管理使得将网络上的计算资源整合为一个分布的计算环境,将网络在效果上变成一个计算平台成为了现实的可能。这个计算平台能够对用户实现对底层计算细节的完全透明,也就是它能够在用户没有意识到网络上哪台计算机正在被使用的情况下并发地处理许多用户的工作。

分布资源管理根据分布计算环境提供的资源来分配合适的工作负载。来自用户的需求从顶部流到底部,底层资源的供应(supply)从底层往上传递。分布资源管理提供用户需求和底层资源的供应的相互匹配并动态传送相关的工作,如图1所示。

现在,分布资源管理为将局域网甚至是Internet 转变为一个透明的有巨大能力的计算平台提供了实现基础。而且,分布资源管理也能将我们的应用变成网络服务并向用户提供这样的服务。

为了使得应用能够在基于网络的分布计算环境下运行,分布资源管理必须提供的功能如下:

1) 单系统映像

分布资源管理使得分布的网络看起来像一个具有巨大计算能力的单一系统并且使在网络上的所有资源在这个单一映像内可访问、使用。

2) 选择最优的资源和负载的最优分配方式

分布资源管理将工作负载与网络上可用的计算资源进行最佳的匹配,并且在远程系统上自动开始各种应用,应用完成时自动结束各种应用。分布资源管理还应支持检查点和系统间应用的迁移。

3) 远程认证

分布资源管理应能够使用现有的系统认证服务来自动的将用户登录到远程系统。

4) 输入/输出重定向

分布资源管理要能够通过将远程系统的全部输入、输出和应用程序事件重定向到用户系统使得对用户而言远程的工作负载和本地的没有区别。

5) 不间断的服务

分布资源管理提供watchdog服务来确保当错误出现时工作能够自动重启。分布资源管理提供在超载或者出现错误的系统上继续工作的能力。

6) 分布的资源管理

分布资源管理应该提供管理访问像数据集、软件许可这样的分布共享资源的机制。分布资源管理应该提供对分布共享资源基于优先级的预约和抢先机制。

7) 资源监控

分布资源管理要在作业运行时监控它们来保证资源使用在限制的范围之内。分布资源管理要为以后的性能分析或记账来收集资源使用的相关统计数据。

总之,分布资源管理要使得我们能够将物理上分布的各类资源联合起来,满足不断增长的对计算能力的需求,并为用户提供稳定、可靠的服务。

4 分布资源管理的结构

NPI(New Productivity Initiative)2001年提出了分布资源管理结构,该结构共包括五层,如图2[10]所示。用户对资源的需求从上往下流动,实际资源的供应从下往上流。中间层在需求和供应相互匹配之后动态传送相关的工作。每层创建一个或者更多的抽象,传送一个服务的集合并定义由标准接口定义语言(IDL)定义的开放应用编程接口(API)。每层都在下一层的基础之上来传送增加了新内容的服务。这种分层的模式使得在某一层开发的应用程序能够访问在它之下全部层提供的应用接口,而不是仅仅只能访问相邻层所提供的应用接口。

第一层:资源层(The Resource Layer)

这层是整个分布资源管理的基础。在这层中,(Agents)和底层的操作系统及其它资源管理者的接口进行交互。是轻载的分布式接口组件,它提供了一个重要的第一层抽象,对上层隐藏了一些底层具体的实现细节。假设在三个不同操作系统上的收到了“运行”请求,在那些操作环境中如何处理“运行”请求的细节就包含到中,对发送“运行”请求的高层组件隐藏这些细节。并且,这一层实现了能够为其它层提供必需和足够支持的底层功能,如任何负载管理进程都需要一个启动作业的方法和获取资源状态信息的途径。

第二层 单一映像层(The Cluster Layer)

单一映像层通过收集系统中的各种计算资源来形成一个单一系统的映像。定义一个包括主机的单一映像的动态信息包括动态系统负载、系统配置和资源用途等。单一映像层能够运用一些参数来标准化不同的系统。这就允许了对异构环境的等同处理。单一映像层也根据需要来提供在一个单一映像内建立执行环境的系统原语。例如:对一个包含标准 I/O 映射和合适的信号重定向的连续的动态的连接在用户和主机之间保持。

第三层:执行环境层 (The Execution Environment Layer )

作业是一个在分布资源管理内对一组资源请求的抽象(abstraction)包括批处理作业、交互作业和所有这两种的组合。一个作业是一个调度单位。这层创建并监视作业的执行环境,在作业完成之后释放分配给它的资源。执行环境层提供给一个作业的基本需求。这些需求包括:标准的接口协议、对作业的定制工作空间、安全上下文和执行集成(execution integrity)。

第四层:需求管理层(The Demand Management Layer)

需求管理层提供作业提交、资源调度和工作负载处理服务。这些服务需要完成在单一映像中可用的主机之间发送工作负载的任务;完成工作流概念的定义;资源预约等。这一层包含用来在可用资源集上匹配工作负载的策略和算法,只要用户需求超过资源供给就需要排队等待,调度方案就用来解决在资源供给和用户需求之间匹配。调度也要对其它作业特性进行管理和平衡,这些特性包括作业的相关性、资源共享的公平性、高优先级作业、小作业集合、大作业、交互的独占作业、作业的灾难恢复、deadline调度和关键路径分析等。

第五层:元计算层(The Meta_Computing Layer)

元计算层把各层所有的服务统一起来并将它们组成全局的可用资源网络,这些网络正在许多企业内部被创建并用来解决大范围、分布的计算需求。这层使得大规模的计算能力成为可能,并通过解决元计算的地点、时间、途径和价格问题来使得网格计算成为可能。

5 总结

资源信息服务是分布资源管理的重要内容,在上述NPI的分布资源管理结构中贯穿始终。资源信息服务主要应包括资源信息的发现,资源信息的描述和资源信息的监视与更新等。通常,在资源层发现和监视资源信息,在单一映像层收集资源信息,在执行环境层集合各种需要的资源形成作业执行环境,在需求管理层通过资源信息服务获取资源信息。资源信息服务的目标是高性能,规模可扩,高安全,一致性好,可表示性强,功能可扩,多信息来源,动态数据,易于访问,可配置性好,可分布控制。

如果在系统中能够提供统一、可靠的资源信息服务,就能够为解决分布资源管理系统中问题提供很大的帮助。因为存在统一的资源信息服务接口,所以对系统资源的管理就可以不涉及每个域的内部资源细节,只需要与每个域提供的资源信息服务接口进行交互,这样就可以屏蔽各个域之间的差异性,实现域自治和对异构域的管理。对系统的可成长性也有相当的帮助,因为在系统中加入新的域也可以不涉及它的具体细节,只需要通过统一的资源信息服务接口添加新的资源信息实现对新增域资源的管理。由于资源信息服务能够使用统一的接口提供全系统可靠及时的资源信息,所以能够在全系统内部实现跨域的协同分配和协同调度。可见,统一、可靠的资源信息服务能够大大改善分布资源管理的性能,提高资源管理的效率。

参考文献:

[1] 朱海滨,蔡开裕. 分布式系统原理与设计[M]. 国防科技大学出版社,1997.

[2] Ian Foster Carl Kesselman Steven Tuecke. The Anatomy of the Grid Enabling Scalable Virtual Organizations,2002.

[3] The Globus Project, /.

[4] The OpenPBS Project, /.

[5] Karl Czajkowski, Ian Foster, Nicholas Karonis, Carl Kesselman, Stuart Martin Warren Smith Steven Tuecke. A Resource Management Architecture for Metacomputing Systems, Information Sciences Institute,1997.

[6] Haibo Wang, Amanda W. Wu. Parallel Benchmark on Multiprocessor and Multi-computer Environment,The University of Southern Mississipp,Proceedings of the Southern Conference on Computing,2000.

上一篇:快速的基于小波的图像检索方法 下一篇:网上论文(作业)评阅系统