网格环境中单一资源管理技术研究
2008-07-16
作者:颜洪梅1,战守义1,杨方廷2
摘 要: 提出一种单一虚拟资源模型,实现对不同资源管理" title="资源管理">资源管理协议的统一管理。
关键词: 网格计算" title="网格计算">网格计算 网格资源 资源模型 资源分配
计算网格技术是二十世纪末兴起的一种重要的并行分布式计算技术,被称为继Internet之后又一次网络技术革命,网格被视为二十一世纪的新型网络基础架构。目前网格技术正处于发展阶段,还有许多技术难题需要解决。但经过多年的研究,网格技术在网格体系结构、网格高层服务、网格基本编程工具包等方面取得了成就,已经具备技术应用条件。其中网格资源管理是网格计算中的关键技术之一。资源管理的关键是把网格中分散的各种资源管理起来,并为申请资源的用户合理有效地分配资源。由于网格中的资源具有广域分布、异构和动态的特性,使得网格资源管理变得很复杂。大量的网格项目试图提供一种合适的资源管理模型,但到目前为止还没有一种网格资源管理模型能够处理所有的网格应用需求。
由于网格资源管理中主要是对网格资源进行有效的描述、组织和管理,使系统可以高效地为计算任务寻找合适的资源,所以网格资源模型的设计决定了资源管理体系思想。当前网格计算环境中所使用的资源模型主要有简单资源池模型和以Globus为代表的分层资源模型二种。
本文提出单一虚拟资源模型设计思想" title="设计思想">设计思想,并在该资源模型基础上构建了优化的资源管理系统。该系统具有网格资源状态动态监控、查询、组织和管理功能,同时在地震减灾仿真网格项目中运用该资源模型设计思想和优化的资源管理系统实现了地震应用领域的高性能计算、视景仿真、虚拟会商等功能。
1 资源模型
网格资源指所有能够通过网格远程使用的实体,包括计算机软件、计算机硬件、设备和仪器等。计算机软件资源包括系统软件、应用程序、数据等;计算机硬件资源包括处理器、存储器、硬盘以及其他计算机设备;设备和仪器包括通信介质、天文望远镜、显微镜、传感器等。
目前,网格资源管理模型主要分为分层模型和简单资源池模型。采用较多的是分层模型。其中网格技术标准的主要参与者、在网格协议制定上有重要发言权的Globus项目组就采用了分层模型。IBM、Microsoft、Sun、Compaq、SGI、NEC等众多公司都宣布支持Globus Toolkit,大部分网格应用系统都是建立在Globus Toolkit工具包之上。因此Globus所采用的分层模型代表了网格资源管理的发展趋势。
1999年,Globus项目组推出了第一版Globus Toolkit;2002年2月,IBM与Globus联合发布开放网格服务架构OGSA(Open Grid Services Architecture),把Globus标准与商用的Web Services标准结合,让网格能够支持Web Services;2004年1月,Globus提出Globus Toolkit 4,它是基于WSRF规范的版本,旨在完成从现在的Globus到一个基于网格及Web服务概念和技术的网格系统" title="网格系统">网格系统的转变。从Globus Toolkit2资源信息管理MDS2到Globus Toolkit 4的MDS4,均采用了分层模型。但由于MDS2和MDS4采用了不同的管理协议和模式,在具体实际运用中存在很大差异。所以如何将MDS2、MDS3、MDS4统一管理,为用户提供统一的资源管理模式,是一个非常重要和迫切需要解决的问题。
2 单一虚拟网格资源模型
2.1 模型的提出
本文提出的单一虚拟网格资源模型,用以实现对不同资源管理协议的统一管理。在由地震局和航天科工集团航天二院联合开发的应用项目(地震减灾仿真科学计算网格系统)中运用了该资源模型,以实现地震应用科学计算。单一虚拟网格资源模型设计思想是将虚拟组织中的网格资源抽象为单一虚拟资源树模型,通过对资源树的管理,实现网格资源的管理。
具体实施方法是:在网格资源管理设计中采用协议自动识别器识别出网格资源管理协议,然后通过协议解释器将不同的网格资源管理协议翻译为资源树统一模型,即统一的协议,从而解决了由于在异构的网格环境下网格资源管理协议不统一而造成的资源管理混乱的问题。本文重点设计了Globus Toolkit的MDS2、MDS3、 MDS4三种资源管理协议的协议解释器和协议自动识别器。单一虚拟网格资源管理系统模型框架如图1所示。
单一虚拟网格资源管理系统模型通过协议自动识别器和协议解释器动态地提供所有虚拟组织中网格节点上可见的资源信息。任务的资源申请通过资源分配" title="资源分配">资源分配器获得资源信息,然后将资源合理地分配给任务,从而优化系统性能。网格资源管理系统如图2所示。
2.2 资源模型
在单一虚拟网格资源管理模型中,本文参考了有关资源模型并运用了资源树的表示方式。使用树结构来表示整个网格环境中的网格资源。资源树中的节点称为资源节点,某资源节点连同其所有后继节点的集合称为以该节点为根的资源子树。一棵资源树的结构如图3所示。
资源树只是一个逻辑结构,它并不反映各资源节点之间网络连接的真实拓扑。例如,图3中各子节点与父节点之间的关系并不表示它们之间的网络连通关系,而只是一种逻辑上的联系。这种逻辑关系可参照资源节点之间客户/服务的关系确定。在一个虚拟子网络环境中,作为虚拟子网的服务器是资源子树的根节点,如果有多个服务器,则可设定多个资源子树,客户机作为资源子树的叶子节点,而此虚拟子网逻辑上又是上一层更大子网的子节点。这种联系在进行资源查找、资源管理和资源调度时起到很好的作用。
在资源树中的非叶子节点只负责对以它为根的资源子树进行管理,并为其上层节点提供该子树的信息,每个资源节点实时存储资源状况属性。
2.3 协议识别器
协议识别器作为单一资源管理系统模型的重要组成部分,其作用是根据不同的网格资源管理协议规范识别虚拟网络环境中所采用的资源管理协议,并将识别结果传送给协议解释器。本研究实现了对MDS2、MDS3、MDS4的识别功能。本设计中运用协议规范库记录可以识别的资源管理协议。随着系统的不断完善,系统将支持更多的资源管理协议,协议规范库将同步保持最新的协议信息。
2.4 协议解释器
协议解释器作为单一资源模型系统中的另一个重要组成部分,其作用非常大。它根据协议识别器返回的结果,将不同的资源管理协议中资源模型转换为单一虚拟网格资源模型定义规范,即资源树模型。
(1)MDS2采用基于轻量目录访问协议LDAP(Lightweight Directory Access Protocol)结构。协议解释器需要获得在LDAP服务器上所有资源的目录信息树(DIT),进而获得描述资源属性的<属性,值>的组合,并将获得的资源信息存储到资源树中。例如,LDAP的属性对示例如下:
dn:cn=Sample Computer,ou=devices,dc=casic,dc=com.cn
cn:CEDASGrid
usage:computing
resource:2.8GHz
resource:512MB memory
resource:120GB Storage
resource:Linux OS
(2)MDS3采用基于Grid Service规范定义。协议解释器根据Grid Service定义获取资源定义中的Service Data信息,并将获得的资源信息存储在资源树中。
Grid Service使用的基本资源模型是XML,XML构造网格服务数据,例如:
<service name=″base/index/IndexService″provider=″Handler″style=′″wrapped″>
<parameter name=″name″ value=″Index Service″/>
<parameter name=″schemaPath″ value=″schema/base/index/index_service.wsdl″/>
<parameter name=″classname″ value=″org.glogus.ogsa.base.index.IndexService″/>
<parameter name=″baseClassname″ value=″org.glogus.ogsa.impl.base.index.IndexServiceImpl″/>
……
<parameter name=″serviceConfig″ value=″index-service-config.xml″/>
</service>
(3)MDS4采用基于Web Service规范定义。协议解释器根据Web Service定义获取资源定义中的Service Data信息,并将获得的资源信息存储到资源树中。
2.5 资源分配器
资源分配器是网格任务管理中的组件之一,主要负责将接收到的任务请求进行分析,得到资源需求信息,然后将在资源树中查找满足条件的资源信息组进行分配,最后返回分配结果。任务管理是网格中不可缺少的功能,它是保证网格用户合理有序地使用网格资源的基础。由于网格的特性致使网格任务管理比传统的任务管理更加复杂,因此需要信息管理、数据管理和安全通信的支持。任务管理对用户提交的任务进行全程管理,最终给用户返回任务运行结果。
任务请求分析是对资源描述语言(RSL)进行分析,进而获得每个任务的资源需求。资源分配器在资源树中搜索满足需求的资源。在搜索时首先随机选择搜索的起始位置,然后为每个任务分别返回最先发现的满足该任务需求的资源。如果任何一个资源都不满足任务的资源需求,则向资源分配器返回空值,同时发送反馈信息,取消任务请求。设资源树所记录的资源数量为N,则资源分配的计算复杂度为O(N)。
资源规范语言RSL是Globus设计的一种简单的资源描述语言,为不同平台的资源描述提供一种公共的描述交换语言。它提供了一种可以描述复杂资源的语法框架,RSL的基本语法是关系,通过关系把属性和值联系起来。例如:用RSL描述“地震震源破裂科学计算”任务: (executable=/bin/chmod)
(directory=/home/earthquake″)
(arguments=744 runOne.sh olson xolson)
2.6 资源分配策略
在资源分配器进行资源分配时,资源分配策略至关重要,它极大地影响资源的使用效率。由于不同的任务需求所需的分配策略不同,所以针对不同的任务要选用合适的分配策略,以使计算时间最短。资源分配管理提供分配策略的管理,实现动态、灵活地选取适合某一个计算需求的分配策略,最终完成某计算。本研究综合影响资源效率的因素,提出分配策略:(1)获选的资源信息应尽量接近相应任务的资源需求,避免资源的浪费。(2)获选资源和任务提交节点间的总网络延迟应尽量小。(3)为每个用户规定了资源占用量的上限。
基于以上策略,设计出资源分配算法:(1)对每个任务,分析资源请求信息。(2)获取资源树中满足条件的资源组信息。(3)分析资源组中资源信息及资源的计算能力。(4)分析资源的网络延迟时间。(5)寻求与资源需求最相近的资源综合能力(计算能力和网络能力)。
3 模型应用
我国是世界上地震灾害最为严重的国家之一,最大限度地减轻地震灾害已经成为政府和社会的迫切愿望。目前我国的防震减灾工作中还有一些结构性和技术性的问题亟待解决。主要问题为:(1)由于缺少海量计算能力和实时分析能力,我国的地震监测信息和其他海量地震数据在地震预报分析、地震应急救援中发挥的作用还未能完全体现出来。(2)多单位、多部门、多学科交叉合作程度和技术保障能力不足。(3)对地震现场的实时把握能力存在明显不足。
为了更好地发挥地震部门的防震减灾职能,提高应对地震灾害的整体能力和水平,针对上述3个主要问题,有必要采用新的技术和手段实现技术上的跨越式发展。而网格技术的出现为解决上述问题提供了极好的机会和条件。
在国家发展与改革委员会和国家地震局的资助下,国家地震局及其多个研究所和中国航天二院国家工程研究中心联合研制开发了“中国地震减灾仿真网格CE-DASGrid(China Earthquake Disaster Alleviation and Simulation Grid)试验系统”。该系统包括三个子系统:科学计算子系统、地震会商子系统和视景仿真子系统。本文是针对科学计算子系统的系列研究之一。
3.1 设计思想
依据上述的单一资源模型的设计思想,在地震减灾仿真科学计算网格系统中运用单一虚拟网格资源模型实现对网格资源的有效管理。通过提供统一用户界面、一致的命令格式的全网格节点的资源状态动态监控和查询,实现网格资源的统一管理。
在地震减灾仿真网格系统中,网格资源包括各计算节点资源、数据资源、服务资源等,其中以计算资源为最重要的网格资源。运用本资源模型思想,可为系统建立单一的资源树,实现对资源树信息的统一管理并提供统一的用户界面,可动态地对资源状态进行监控和资源信息实时查询。
3.2 应用实现
运用本研究的设计思想,在地震减灾仿真网格系统中实现了如下功能:
(1)资源管理:资源注册、资源修改、资源删除、资源查询。资源管理实现计算资源的动态管理,该功能使用户能够实时了解网格系统资源状态,并且能够动态地加入已授权的新计算资源于整个网格系统中,修改、删除已有的资源信息。
(2)计算管理:实现地震算法选择、计算参数设定、资源选择、环境设定、科学计算执行、计算过程监控及计算结果显示。计算管理是系统的核心功能,该功能可完成科学计算执行和计算结果分析。用户可以动态地选定计算算法、计算参数及计算资源。
(3)用户管理:用户注册、用户删除、用户修改。用户管理实现用户注册、用户信息的修改和删除。
(4)信息浏览:地震计算相关信息。信息浏览帮助用户了解有关科学计算的相关信息,例如算法说明、计算参数解释、计算结果说明等。
本研究通过建立统一的网格资源模型,为网格资源管理提供了一种有效的方法和工具,并在地震减灾仿真科学计算网格应用系统中运用此模型实现具体的地震应用科学计算功能。实验证明此设计思想是可行的,它为地震应用领域科学计算网格化提供了重要的技术基础,下一步的工作是在此研究的基础上解读其他资源模型协议,为更广泛的应用提供有力的支持。
参考文献
1 周 健,戴 梅,王作远等.计算网格资源管理优化技术和相关算法研究.电子技术应用,2004;(10)
2 杨广文,武永卫,朱 晶.一种全局统一的层次化网格资源模型.计算机研究与发展,2003;(12)
3 Foster I,Kesselman C著,金海,袁平鹏,石柯译.网格计算.北京:电子工业出版社,2004
4 都志辉,陈 渝,刘 鹏.网格计算.北京:清华大学出版社,2002
5 徐志伟,冯百明,李 伟.网格计算技术.北京:电子工业出版社,2002
6 肖 侬,任 浩,徐志伟等.基于资源目录技术的网格系统软件设计与实现.计算机研究与发展,2002;(8)
7 Joseph J,Fellenstein C著,战晓苏,张少华译.网格计算.北京:清华大学出版社,2004
8 Foster I,Kesselman C,Nick J et al.The Physiology of the Grid:An Open Grid Services Architecture for Distributed Systems Integration.Globus Project,USA,2002