赵秋云, 魏 乐
(成都信息工程学院计算机学院,四川成都610225)
网格技术是为了满足计算资源、计算能力不断增长的需求而提出的,最终目标是实现网络虚拟环境下的资源共享和协同工作。网格环境中维护的往往是海量数据,且这些数据大多是动态、分布存储的,因此,数据管理技术及方案的选择对网格性能来说至关重要。
副本技术是网格中提高数据访问和处理效率的关键技术之一,通过在本地或者邻近结点创建数据的副本,来改善高延迟网络中数据的访问速度和网格的整体性能。良好的数据副本管理技术可以减轻单个数据网格结点的通信和访问压力,降低远程访问该数据的网络延迟及带宽消耗;可以提高网络的负载均衡度,同时提高数据的安全性、可靠性以及系统的容错性。
Globus项目是目前国际上最有影响的网格计算相关项目之一,发起于20世纪90年代中期,由美国Argonne国家实验室和几十所大学等科研单位研发,也是较早开展副本管理研究的网格项目[1]。Globus项目的一个成果是开发出了开源工具包Globus Toolkit,该工具包提供了简单的副本管理服务和副本定位服务,同时还提供了高速文件传输服务GridFTP。在副本管理服务方面,Globus Toolkit构造了一套底层的副本管理开发工具如复制管理服务、元数据服务、复制选择服务和副本信息服务等组件,这些组件基于最简单的集中式副本目录,提供最基本的副本管理服务,但没有提供副本动态创建、优化选择以及一致性管理等功能。
Globus网格环境的副本管理是静态的、集中的,主要体现在:在副本创建时对数据副本的动态生成没有过多考虑;复制选择中,当存在多个副本满足要求时,仅仅根据存储空间、可用带宽等一些静态或全局参数进行排序、选择,既没有充分利用用户访问数据的历史记录,以便对用户以后的数据访问进行预测,也没有根据用户的请求有针对性地采取不同的选择策略。总之,Globus提供的复制管理服务的灵活性较差,无法满足实际网格应用的需求。
副本策略应该考虑副本的定位、创建、更新及删除等多种任务,在副本管理的诸多任务中,副本的创建是根本,它的解决方案会直接影响其它问题的解决方法,也是副本管理方案性能的主要决定因素。
副本创建策略较多。文献[2]给出了网格领域经典的几种副本创建策略:没有副本或缓存的策略、最佳客户端策略、瀑布复制策略、简单的缓存策略、缓存+瀑布策略和快速扩散策略。6种副本扩展策略中,快速扩散和瀑布策略较其它4种策略可以节省60%的网络带宽和减少60%的延迟。但快速扩展策略对访问特征没有进行任何处理,瀑布策略可以定期识别热度文件,并将文件沿着层次进行副本扩展,非常适合于层次网格拓扑结构,但这种策略着重考虑文件访问次数,对其它文件访问特征处理简单。最佳客户端策略也同样适合层次网格结构,但它只突出了访问特征中的访问次数和访问者。除此之外,还有许多文献提出了各种各样的副本管理策略。由于重点在于副本管理的实现,此处对各种副本策略不再过多介绍。
选择哪种副本创建策略应该根据网格拓扑结构、数据规模、网格环境下单节点存储能力、副本管理的侧重点及网格作业规模等多个方面考虑,从副本管理可扩展的角度考虑,一个设计良好的副本管理方案应该能提供多种副本管理策略。由于课题依据的计算网格是层次网格拓扑结构,本文的副本管理方案中副本创建方面首选瀑布策略。
网格技术在体系结构、标准规范上投入了大量的研究资源,目前最新的是由Globus联盟、IBM和HP于2004年初共同提出的第三代网格体系结构:WSRF(Web Service Resource Framework,Web服务资源框架),WSRF v1.2规范已于2006年4月3日被批准为OASIS(Organization for the Advancement of Structured Information Standards,结构化信息标准促进组织)标准[3]。基于Web服务规范的Web服务资源框架如图1所示。
WSRF采用了与传统网格服务完全不同的定义:资源是有状态的,网格服务是无状态的。它的目的在于定义出一个通用且开放的架构,利用Web服务对具有状态属性的资源进行存取,并包含描述状态属性的机制和如何将机制延伸至Web服务中。利用WSRF,可以使网格服务具有如下特点:
(1)引入Web服务标准,同时更全面地扩展现有的XML标准,在目前的开发环境下,使网格服务的实现更为简单。
(2)OGSI规范(Open Grid Service Infrastructure,开放网格服务基础设施)中的术语和结构让Web服务的标准组织感到困惑,因为OGSI错误地认为Web服务一定需要很多支撑的构建。WSRF通过对消息处理器和状态资源进行分离来消除上述隐患,明确了其目标是允许Web服务操作对状态资源进行管理和操纵。
2005年1月31日发布的Globus Toolkit 4(GT4),实现了WSRF和WSN标准。
图1 Web服务资源框架
Web服务标准的引入,使得目前开发环境下用Web Service实现网格服务更为简单。同时,Web Service也是分布式计算下一步发展的技术趋势,它能使软件以松散耦合、简单和与平台无关的方式与客户、业务伙伴的软件集成[3]。简单地说,Web Service使用一套协议和技术来实现分布式应用程序的创建:用XML描述数据;使用SOAP消息调用访问服务;使用WSDL进行界面描述,并通过 UDDI(Universal Description Discovery and Integration,统一描述、发现和集成)注册中心发布。用Web Service开发网格副本管理服务,能很好地改进Globus中集中管理带来的问题,也能够增加副本管理系统的可扩展性,以及副本管理与其它网格应用的易集成性。
图2 副本管理与调度系统的网格拓扑结构
副本管理系统基于层次网格的拓扑结构,在充分研究这一网格拓扑结构的基础上,提出了副本管理系统所需要的网格拓扑结构,如图2所示。
在图2中,网格拓扑结构的中枢为计算网格副本管理中心服务器,该服务器接受网格用户通过副本管理服务门户发来的副本操作请求,负责全局的副本管理,对文件访问情况进行监控并直接操作数据库服务器,根据文件访问情况的分析结果,调度各节点上的本地副本管理服务。可以将中心服务器抽象为副本监控与调度器(Replica Monitor Scheduler,RMS)。
网格节点服务器包括单机节点和集群节点,每个网格节点都接受中心服务器发送来的副本管理调度命令,提供本节点上具体的副本管理服务。也就是说,各节点分布地完成具体的副本创建、删除等工作。此处将节点服务器抽象为本地副本管理器(Local Replica Manager,LRM)。
数据库服务器作为网格中的文件访问历史和副本信息的存储中心,其中的文件访问历史信息将由网格的作业管理服务获取,该服务器也接受来自副本管理服务门户的用户操作,由网格副本中心服务器直接控制。
副本管理服务门户是副本服务平台与网格用户的交互接口,网格门户设计为Web应用,用户通过副本管理门户进行各种副本操作。
副本管理系统的创建、删除及查询功能模块具有相对平行的操作过程,这些相对平行的过程是通过自动定时器或网格门户、RMS和LRM的相互协作实现,在代码实现时有相同的思路和过程,因此,仅以副本创建来阐述副本管理系统的实现。副本管理系统中和创建功能相关的类结构关系如图3所示。
图3 副本创建相关类结构
图3中虚线上面的RMS运行在网格的中心服务器上。RMS中最主要的任务就是动态检查文件访问历史记录的监控和动态调度副本管理服务。采用一个简单的Java定时器控制,Java定时器(java.util.Timer)有定时触发计划任务的功能,通过设定定时器的间隔时间,可以自动有规律地调用预先安排的任务,比如STask类(继承自java.util.TimerTask)。实际工作时,在工程的配置文件web.xml中加入监听器配置,STask就会在工程启动时自动运行,并在整个工程生命期中处于监听状态。副本监控和调度任务是按照既定的时间间隔去检查访问历史数据表,根据统计结果进行相应的服务调用,具体的统计过程采用了瀑布策略。调用结果返回后清空访问历史数据表,以便于下次统计和调度。
图3中虚线下面部分是提供相同服务的LRM。分布在网格环境中的每个节点上的LRM都是独立Web服务,其功能、服务名称和注册的本地副本管理服务访问名称格式全部相同,仅主机名不同,以便于相互区分。LRM在实现技术上采用了Globus提供的RLS和GridFTP基本服务协议和机制。副本位置服务(RLS)是一个分布式的注册机制,向其它应用提供数据副本的位置,并支持副本的发现和定位,RLS java客户端可以实现副本的注册和位置管理。另外Java CoG工具包中的GridFTP编程接口可以实现具体的传输和安全保证。LRM中的创建和删除服务实现过程类似,查询服务不需要进行文件操作,实现上较副本创建或删除服务更容易。下面以副本创建功能为例,详细给出LRM的实现,其类结构如图4所示。
图4 LRM创建服务实现类结构
从一般用户的角度来看,副本创建与文件下载的操作几乎类似,但实际上两者截然不同:(1)每次在文件复制前,LRM首先要进行用户代理证书的认证。GridFTP支持网格安全体系结构GSI和Kerberos安全机制,在GridFTP中支持灵活可靠的安全鉴别和完整性检查。(2)LRM中的副本创建服务的运行,是以副本管理服务特别是RLS为基础的,在系统完成副本注册后才实施复制。而网络上较普遍的资源下载一般只提供简单下载,不关心资源被下载后的情况,以及被下载资源和其它资源的关系问题。
总的来说,中心服务器用定时器TimerListener控制定时任务STask,在定时任务STask中封装了对数据库服务器上数据的监控功能:读取文件访问历史记录数据,根据瀑布策略进行分析整理后调用创建副本操作。副本在创建过程中,首先读取全局副本目录信息,然后通过副本创建服务的客户端CreateClient来调用由某主机local-Host上的LRM 副本创建服务即可,服务路径格式为 http://″+localHost+″:8080/ws/services/CreateLocalReplica。
在深入研究GT4提供的网格副本管理服务特点、WSRF框架特性以及副本动态复制策略的基础上,设计了一个开发副本管理服务的方案;并基于此方案,利用Web Service技术实现了分布式网格副本管理系统。在Globus网格环境下,副本管理系统被启动后,能够通过其中的副本监控与调度器(RMS)和本地副本管理器(LRM),初步地对计算网格中的文件及副本按照瀑布策略进行分布式动态管理。
已设计与实现的网格副本管理系统功能还不够完善,如需要增加副本更新、一致性维护等功能;创建策略虽然使用了瀑布策略,但副本创建所使用的瀑布策略的效率仍有优化的空间;另外系统中的副本选择使用的是Globus工具包提供的选择方案,在实际应用中还需进一步优化,这些问题将在进一步的副本技术研究中逐步解决。
[1]都志辉,陈渝,刘鹏.网格计算[M].北京:清华大学出版社,2002.
[2]D.G.Feitelson,L.Rudolph.Metrics and Benchmarking for Parallel Job Scheduling[M].Springer Berlin/Heidelberg Publishers,2004.
[3]张文斌,叶红云,陈恩红.基于Web Service的B2B电子商务环境构建技术[J].计算机工程,2002,9(11):77-79.