基于网格的资源共享技术体系分析,本文主要内容关键词为:网格论文,资源共享论文,体系论文,技术论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
中图分类号 G203文献标识码 A文章编号 1007-7634(2004)01-0118-05
1 网格技术介绍及背景
“Grid”(网格)一词的英文原意是“电力网”。20世纪90年代中期,“网格”这一术语出现并用来表示用于支持科学与工程领域中所需的分布式计算的底层结构。人们希望借助这一底层结构可以像在电力网上使用电力一样方便地使用分布的计算机资源。在这之后,针对这一底层结构的研究取得了长足的进展,网格成为了一个全新重要的研究领域。是什么推动了网格技术的产生和发展?网格技术的自身特征和适用领域又是什么?在众多网格研究小组纷纷推出自己的网格技术解决方案时,能否为网格技术定义一个通用的基础体系结构呢?
从本质上讲网格是为了满足虚拟组织内部资源共享和解决问题而产生的一系列技术。这里的共享并不只是指文件和信息交换,而是对整个计算资源、软件资源、存储资源及其它资源的共享。在商业计算、工业、科学和工程领域内这种共享模式被广泛使用,用来合作解决各种复杂的问题。这种共享模式是高度受控的,资源的提供者和消费者、共享内容、共享发生的条件都被严格清晰地定义。简单地说这些共享规则中所定义的个人和机构组成了一个虚拟组织(Virtual organizations,VOs)。
虚拟组织通常是为了完成复杂计算或解决某一复杂问题而进行合作的个人或机构。尽管各个虚拟组织在任务、规模、周期、结构上存在着相当大的差异,但这类合作中总伴随有巨大的运算任务和海量的数据。在这种含有丰富的运算和数据的环境中合作,需要在用户间建立高度灵活的共享关系;需要对各种类型资源的共享提供支持;需要对共享操作进行复杂地高层地控制;还需要适应各种不同的用户模式并解决由此带来的服务质量、安排协调等问题。
目前的分布式计算技术并未涉及到以上的概念,因而不能满足虚拟组织的需求。例如,Internet技术着重于解决计算机间的通讯和信息交换问题,但不能协调利用各个站点的计算机资源。应用企业分布式计算技术,如CORBA、J2EE等虽然可以将共享内容最终扩展到应用程序和物理设备,但这种共享却只能限制在企业内部。应用服务提供商(Application service providers,ASPs)和存储服务提供商(Storage service providers,SSPs)能对存在应用和存储需求的企业提供外包(outsource)服务,但这些服务商通常是通过铺设静态的虚拟私有网络(Virtual private network,VPN)实现对客户的服务。还有一种被称为“Internet Computing”的公司,这种公司在整个Internet范围内搜索闲置的计算机,利用这些计算机提供运算服务,但在服务过程中运算数据却是被高度集中处理的,不能用来完成需要合作的复杂任务。总之,目前的技术既不支持虚拟组织所需的对多种类型资源的共享,也不能支持虚拟组织下高度灵活却严格控制的共享关系。
为了解决在建立可伸缩的虚拟组织时出现的问题,在过去的几年中开发和制定出了许多网格协议、服务和工具包。它们包括安全解决方案,用来对跨机构运算时出现的验证和规则事宜进行管理;资源管理协议和服务,用来支持对计算资源和数据资源的远程共享,并用来协调多种资源的同时使用;信息查询协议和服务,用来提供网格下资源、组织和服务的配置及状态信息;数据管理服务等,用来定位和传输存储系统和具体应用之间的数据集。
2 网格技术支持下的虚拟组织
近几年虚拟组织概念被广泛地应用于各种领域,它极大地改变人们使用计算机解决问题的方式。目前虚拟组织主要存在于科研机构和制造企业中,用来共享运算资源,管理分布数据,整合应用程序。典型的例子有:
(1)英国国家网格计算计划(UK National Grid)。该计划利用网格技术将英国主要大学的高性能计算机通过宽带网络连接起来,从而使得用户不再被局限于使用单一机构的计算机资源。英国政府还进一步打算将这一网格向制药厂、化工厂及工程设计等企业开放。
(2)宾州大学乳腺癌诊治计划。这项计划由宾州大学主持,北美上百个医学中心与诊所参与。该计划首先将诊断乳腺癌所用的X光照片数字化,通过网格将存有这些资料的医疗机构连接起来,这样就不再需要像传统的信息存储技术一样将资料集中管理,大幅度地节省了信息设备、管理和人力成本。
(3)波音公司。设计飞机是复杂严谨的工作,需要各个设计与制造团队紧密地协同合作。波音公司利用网格技术将位于不同地区的设计团队连接起来,各个成员使用自己的软件组件进行设计和模拟,产生的数据和结果能被其他成员方便地使用。
上述的虚拟组织间存在很大的差异,但确实存在共同之处。虚拟组织的成员为了完成特定的任务而共享资源,共享方式也不再是单纯的文档交换,而涉及到了对远程的计算机、软件、数据和其他资源的利用。以看到虚拟组织中的资源共享有如下特点:
(1)虚拟组织中资源的共享是有条件的。资源的拥有者对资源的使用权进行严格和强制的控制。实现这种约束需要一种规则和表达机制,用来建立对用户和资源的认证、判断操作的权限等。
(2)虚拟组织中存在的共享关系是随时间而发生变化的。这种动态关系的建立难以通过对虚拟组织中的每个个体命名来实现。需要建立一种机制,用来及时地发现成员的特征,根据这些特征来确立适用于该成员的规则。
(3)虚拟组织中的共享关系不再是简单的客户——服务器关系。在虚拟组织中资源的提供者同时也是资源的消费者。这时的共享涉及到了对不同资源的协调使用,而资源本身却又属于虚拟组织内不同的成员。在这种情况下,就需要有一种授权能力和协同操纵各种资源的能力。
(4)同一资源可能由于各种限制或是不同的使用目的而以不同的方式被使用。比如,在一种共享安排下用户只被允许用某台计算机运行某一小段软件,而在另一情况下却可以让这台计算机提供更为一般的运算服务。因为在使用过程中不可能获得有关资源被如何使用的先验知识,因此在共享过程中就不免要考虑到性能、用户期望、使用限制等方面的问题。
上述的特征和需求描绘了一个虚拟组织的基本概念。总之,虚拟组织允许不同的组织和个人在受控方式下共享各种计算机资源,从而完成某个被分工好了的复杂任务。
3 网格技术体系结构分析
一个通用的网格技术体系结构可以满足虚拟组织的全部要求,如图1所示这个通用的体系结构是一个多层结构,整个结构由一组协议、服务、APIs(Application Programming Interfaces)和SDKs(Software Development Kits)组成。
图1 网格技术体系结构
(1)构造层。构造层基本地控制的按口。一旦网格协议允许,构造层就用来提供资源。这些资源包括计算资源、软件资源、存储资源、网络资源、目录资源等。在这里“资源”可以是一个逻辑实体,例如一个分布式文件系统、一组计算机。构造层的组件针对特定的资源在本地执行特定的操作,操作所得的结果供更高层使用。构造层所能实现的功能和它所支持的共享操作的类型存在着紧密的联系,如果定义在构造层单元上的需求少,那么整个网格的基础结构就简单。
(2)连接层。连接层用来实现方便安全的通信。它定义了网格网络下传输所需的核心的通信和验证协议。通信协议实现构造层资源之间的数据交换。验证协议为通信服务提供安全机制,用来鉴定用户身份和资源标识。通信时需要传输、路由和命名支持,在实际情况下通信协议通常是扩展自TCP/IP协议族。连接层中的安全问题相当复杂,解决方案通常也是在现存的标准基础上提出的。和通信一样,许多安全标准发展自Internet协议中的相关内容。
(3)资源层。资源层建立在连接层的通信和验证协议之上。它定义了一组协议、APIs和SDKs,用来初始化,监视和控制施加于单个资源上的共享操作。资源层通过调用构造层的函数获取和控制本地资源以执行本层协议。资源层的协议都只关注单个资源而不考虑资源集合的全局状态。资源层的协议包括信息协议和管理协议两个基本类别。信息协议用来获取资源结构和状态方面的信息,例如资源的配置信息和适用规则等。管理协议用来协调共享资源的获取、监视和控制(建立进程、获取数据、终止操作等)共享操作。
(4)集合层。集合层包含了一些面向全局的协议和服务,对资源集合进行操作。例如:目录服务使得成员可以发现资源并了解资源特性。协调和日程服务允许成员协调使用多个资源或是安排任务日程以使用合适的资源。监控和诊断服务用来监控虚拟组织的资源,对资源调度失败、外来攻击、超载等异常情况作出反应。数据复制服务用于支持虚拟组织的存储管理,使存储系统达到响应时间、可靠性等方面的最大性能。
实际上集合层提供的协议和服务是相当多样的,有的具有通用性,而有的却只在一些高级应用或是特殊领域中才会出现。集合层的功能可以通过建立架构于相关协议上的服务来获得,也可以使用SDKS为特定的应用设计开发获得。无论哪种情况这些功能的执行都是建立在资源层的协议和服务上的。
(5)应用层。网格体系结构的最上层是应用层,它包含了运行于网格环境下的用户应用程序。图2从应用层角度出发描述网格体系结构。应用程序建立在其它层定义的服务之上。从图2可知其它各层都有定义完好的协议,由这些协议提供有用的服务,如:资源管理、数据获取、资源搜索等,而每一层中的APls则负责完成提供服务所需的各个操作。
图2 从应用层角度描述网格技术体系
欧美有多个网格计算的研究项目在进行,它们的实现方法各不相同,针对性也不一样。最具代表性的有Globus、Legion、Webflow、Ninf等。
以Globus为例,它是一个由美国众多机构提出的网格研究项目,它以单一虚拟机的方式处理分布的异构计算资源。Globus的核心是Globus Metacomputing Toolkit(GMT)。通过这个工具包提供建设一个网格所需的基本服务,如安全,资源定位、管理和调度,通信服务等。Globus采用多层体系结构,它的高层全局服务建立在低层的本地服务之上,基本上涵盖了网格体系结构的5层。2002年2月,IBM与Globus共同发表了OGSA(Open Grid Services.Architecture),如图3所示。OGSA最主要的成功在于纳入了Web Services、数据库存取、J2EE等技术规范。
图3 Open Grid Services Architecture
4 网格技术与相关技术的比较
(1)World Wide Web。
Web技术主要由IETF和W3C制定的标准协议(TCP/IP,HTTP,SOAP等)和标记语言(HTML、XML)组成。它能很好的支持Web服务器和客户端浏览器之间的交互,但是它却不能成为建立虚拟组织及其应用的平台,因为它缺乏对虚拟组织中更为丰富的交互模型的支持。
(2)企业运算系统。
CORBA、EJB、J2EE和DCOM技术规范都是用来开发企业级的分布式应用的。它们都提供了标准的资源调用接口,远程请求机制和资源搜索服务以方便在企业内部共享资源。但这些机制没有一项是专门用来满足VOs需要的。它们提供的共享机制一般是静态并且受诸多限制的,一般采用客户——服务器形式进行交互,不能用来实现多种资源的协调使用。
而网格技术可以在企业运算中扮演重要的角色。例如,在使用CORBA时可以使用网格技术中的GSI(Grid Security Infrastructure)机制来创建ORB(Object Request Broker)以解决跨组织间共享的安全问题。还可以建立网格下的命名和交换服务,利用网格的信息服务协议查询分布在大型VOs内的信息源。上述的例子中均使用了网格协议以获得更高级的功能,同时网格也使得用CORBA创建的企业运算系统能和非CORBA客户端进行交互。在利用JAVA和JINI构建企业系统时情况也一样。例如,JINI的协议族及其服务都是针对小型设备集合的,而“网格下的JINI”则集成了网格协议和服务,因而可以被应用在多个企业的大规模合作环境中。
(3)应用和存储服务提供商(ASPs & SSPs)。
应用和存储服务提供商以合同方式向企业提供部分或全部的信息功能。企业和提供商之间达成协议,规定服务级别,之后就可以使用指定的硬件和软件资源。企业使用VPN技术扩展自己的内部网络并且按自身的需求使用受ASP和SSP操纵的资源。一些存储服务提供商还利用HTTP、FTP技术提供文件共享服务,向用户提供用户名和密码并规定权限。
从虚拟组织的角度出发,这些技术仍然是初级的。虚拟组织的共享模式是用VPN和静态配置所难以达到的。比如,一个由应用服务提供商的应用程序就不能从另一个存储服务提供商那里获得所需的数据;而想对单个ASP及SSP所拥有的资源进行动态配置也难以实现。根本的问题在于VPN不是VOs,服务商不可能对VPN进行动态的扩展以使用所需的资源,也不允许由其它服务商远程的控制本地的共享资源。
ASPs和SSPs集成了网格技术则能扩大自身的服务范围,例如,应用标准的网格服务和协议可以有效的减小软硬件资源间的差别,由网格协议动态的提供硬件来运行用户的特定应用程序。用户的应用程序可以在应用服务提供商的计算机上运行,同时这些程序还直接、高效、安全的使用存储服务提供商的存储设备。
(4)Internet和点对点计算(Peer—to—Peer Computing)。
Internet和点对点计算是更符合VOs特性的共享模型和计算结构,这类技术和网格技术有着相当多的共同点。然而应用于Internet和点对点计算的技术在数据处理上和网格技术有很大的不同。点对点和Internet计算的开发者制定的是一套垂直的整合解决方案,而不是寻求和定义一组通用的协议,用以建立一个支持共享的有协同工作能力的底层结构。此外在同时对各种不同的应用提供服务时,点对点的共享模式就显示出其局限性了。例如,不能对文件共享进行控制,只能使用集中的服务器进行运算来达到计算共享。当实际应用变得越来越复杂并且需要成员协同工作时,Internet和点对点计算技术与网格技术的结合就显得非常必要了。
5 网格技术带来的影响
(1)网格技术将是对现有信息技术的一种补充。有人认为“网格”将成为下一代的Internet,从而彻底改变人们利用网上资源的方式。然而目前看来网格技术只是一组建立在现有协议和服务基础上的附加协议和服务,被用来支持大运算量和海量数据环境。
(2)网格下的资源共享是受控的,网格计算并不意味着对资源无限制的获取,也就是说网格环境下资源的获取不是免费的。资源的拥有者可以执行一系列的规则,限制用户对资源的获取并实现计费。在具体实施中,通过资源层协议和集合层协议之间的合作来查询、交换和利用资源使用信息及费用信息。不过对于用户而言他们可以在网格环境下像使用水电一样使用计算机资源而不去理会这些资源的来源地。
(3)网格技术将增加对高性能计算机的需求。通过合理的使用网格技术,一个虚拟组织可以提供成百上千甚至百万计的处理器,这将是一个非常重要而且强大的计算资源。但这些并不意味着传统的高性能计算机因此变得多余。许多问题的解决仍需使用高度紧置的高性能计算机以获得足够的带宽保证。同时网格技术使得人们可以更为方便地获取高性能计算资源,这反而大大增加了对高性能计算机的需求。
当前网格计算的研究项目及方法相当的多,网格技术本身发展迅速。网格技术的发展和数据密集,大规模应用的发展是相吻合的。我国并没有参与Internet核心技术的创新工作,而正在发展中的网格技术则是一个历史性的机遇,目前网格技术的一些重要标准即将或已经在制定中,这些技术很可能主导未来几十年内信息技术领域的发展趋势。因此,值得实际上也迫使我国对其投入大量的研究。