Globus是1996年由美国Argonne国家实验室与南加州大学信息科学学院合作开发的技术,是一种研究网格环境中互操作的中间件技术,是一种基于开放结构、开发源码的社团服务的集合。Globus Toolkit是网格计算领域著名的网格软件系统,为科学和工程上的网格计算应用程序提供基本的支撑环境。Globus Toolkit定义了构建计算网格的一组基本服务和功能,包括安全、资源管理、通信、目录管理等基本服务,被许多网格项目所采用。
Globus开发项目组于2002年2月提出了框架模型OGSA,OGSA是Globus Toolkit 2.2的自然进化。OGSA不仅满足科学计算的需要,而且满足电子商务的需要。其中的许多基本概念,服务生成、注册及可靠安全的请求等在Globus Toolkit 2.2中都存在,OGSA进一步抽象了这些单元,以便能被用于任何级别的虚拟资源中。
Globus项目以提供工具包的形式支持基于网格的应用。Globus提供的工具包包括:资源管理、信息服务、数据管理3个主要模块,以及网格安全架构(GSI)、通信、故障检测等功能。下面简单介绍资源管理、信息服务和数据管理等模块。
1)资源管理
Globus中,如何由信息服务来管理可用资源,如何按照应用程序和用户的要求找到可用资源,如何使用这些资源,是资源管理关心的问题。Globus的资源管理主要侧重解决在异构网每个资源提供者自治的环境下,支持多资源管理策略、多个资源的联合分配和对资源的动态在线控制。其他资源管理软件如Condor、Legion、Gallop都只能提供5大功能中的部分功能。
资源规格说明语言(RSL)描述资源管理各个成员之间交换的资源申请,它的句法是基于轻量目录访问协议(LDAP)和元计算目录服务(MDS)的过滤句法。句法的主要构成是一些关系表达式,描述资源的某个参数和需要的条件。参数表示与信息服务MDS统一。
资源管理成员包括:应用程序和资源代理单元、资源协作分配单元、资源管理单元。它们之间的关系如图1所示。
图1:资源管理成员间关系示意图
资源代理单元接收高层(应用程序或用户)的请求,如抽象资源规格请求,并翻译成更具体的、资源管理成员能识别的规格。资源代理使用的抽象资源信息有3个来源:从MDS获得、本地维护和由规格带来。资源代理把抽象资源信息映射到一个包含更多信息的内部资源申请中。多个代理可能参与处理一个请求,其中特定应用代理单元把应用程序的需求转换成具体的资源需求,其他资源中介被用来定位需求的资源。资源中介提供的结果是包括资源所在地点的详细申请,这个申请被传送给协作分配单元。
资源代理的处理结果是包括所需资源所在地点的RSL表达式,资源协作分配单元和资源管理单元能够直接理解。如果表达式只包含对一个资源的申请,则直接提交给该资源管理单元;如果表达式同时要申请几个资源,由协作分配来处理。资源协作分配把这类申请拆分成几个组成部分,每个部分发给相应的资源管理单元,提供一个对一组资源进行控制的方法。
本地资源管理单元主要负责处理代表资源申请的RSL规格(处理的方法是拒绝申请或创建满足申请要求的一个/多个进程或作业),允许远程监视和管理这些作业。根据所管理资源的情况,本地资源管理单元定时修改MDS的相关信息。
本地资源管理单元可以设置成管理一个或几个计算资源。本地资源管理单元的实现方式可以是自己调度资源,也可以与现有的本地资源分配机制(如Condor、EASY、Fork、LL、LSF、NQE)映射,把资源映射到相应的申请上。
2)信息服务
信息服务负责资源信息的管理。Globus Toolkit中的信息服务MDS主要由两类基本元素:信息提供者(Information Provider)和聚合目录服务(Aggregate Directory Services)构成,它们之间的通信采用网格注册协议(GRRP)和网格信息协议(GRIP)。
信息服务体系结构中包括多个分布的IP,每个IP提供本地资源的一般性的、与虚拟组织(VO)无关的信息,它可以是关于一个或多个实体的信息。信息的组织采用LDAP结构,每个实体由一组对象描述。实体信息不需要存储,可以动态生成,只有在收到对某个实体的查询后,信息服务体系才访问相应的实体,获取实体信息,提供给查询者,这样实体的个数是可变的。目前已实现的信息源有:静态主机信息(操作系统版本、CPU类型、进程数等)、动态主机信息(平均负载、队列项等)、存储系统信息(可用磁盘空间、总磁盘空间等)、网络信息(通过网络气象服务获得,包括已测得的和预计的网络带宽和延迟)。
聚合目录服务(ADS)是更高层的服务,负责收集、管理、对一个或多个IP提供的信息建立索引或提供应答。该服务与VO有关,提供对资源的综合使用。ADS把IP和其他ADS提供的信息合并到一个统一的信息空间,提供给用户访问。一个ADS包括3部分:通用GRRP句柄、索引结构和搜索处理,后两者可选GRRP和GRIP。
信息服务各成员间交换信息采用这两个协议。这两个协议主要把查询和发现分开,根据不同的发现策略,构造不同的ADS。每个ADS通过不同的方式使用GRRP和GRIP。
GRRP是一个通知,信息服务成员采用它向其他成员推(PUSH)简单信息。如IP通过该协议通知ADS可用,ADS邀请某IP加入某虚拟组织。GRRP是一个软状态注册协议。这意味着在远处创建的状态必须被不断更新才能存活。
GRIP是一个查询协议,可用于用户或ADS向IP索取更详细的实体信息。该协议同时支持发现:一种向IP查询,寻找满足某个条件的实体的操作。GRIP中采用了LDAP定义的数据模型(层次结构)、查询语言(查询、查找等)和在线协议。
GRRP和GRIP可以用来构造层次化的ADS,还可以构造其他服务和应用,比如代理、监视、对应用程序的适应、故障解决、性能诊断等。这些应用主要与监视实体有关。
3)数据管理
数据管理是对数据的传输和存储进行管理。它主要包括两个基本的数据管理服务:网格文件传输协议(GridFTP)和数据复制管理。
网格文件传输协议是一个安全、可靠、高效的数据传输协议,主要面对广域环境下的数据传输。该协议的使用包括两方面:存储系统间传送大量数据,应用程序/用户访问大量数据。目前,GridFTP使用的存储系统包括:分布式并行存储系统(DPSS)、高性能存储系统(HPSS)、分布式文件系统(DFS)、存储资源代理(SRB)等。GridFTP扩展了FTP标准,是以上及其他多个存储系统的超集,主要支持GSI和Kerberos,提供数据传输的第三方控制,采用多个TCP流支持并行数据传输,支持一个源和多个目的间的条带(Striped)数据传输,支持部分文件传输,可协调传输控制协议缓冲/窗口(TCP Buffer/Window)大小,从容错方面考虑支持可靠和可重新开始的数据传输。
数据复制管理提供注册并查找同一数据集的多个拷贝的能力。包括创建数据集的全部/部分拷贝,在复制目录中注册新拷贝,提供用户/应用程序查询复制目录来找到所有拷贝,根据存储和信息服务提供的网络性能预测选择最好的数据复制。数据复制管理是一个分层次的结构,下层的复制目录维护文件名到存储位置(一个/多个)的映射;上层的复制管理在存储系统中创建/删除复制,并调用复制目录,修改相应的项。
资源管理、信息服务和数据管理模块是Globus的核心,也是其他服务的基础。为了适应广域的异构环境,该项目在安全传输、安全存储和安全认证方面提供了一整套方法,在通信方面设计了多方法通信策略,以保证对不同服务提供不同的通信保证,同时设计了故障检测等方法来实时监视高层应用的底层支持是否正常。各种努力的目标是为网格上不同的用户提供不同的服务质量保证。目前公布的2.2版本的Globus主要服务对象还是科学计算,但对于真正的科学计算工作者来讲,Globus的结构过于复杂,对很多具体的计算要求,如对每次计算的完成时间控制在一定的时间范围等具体要求不提供支持。