网格技术基本概念:
一家票务公司要销售滚石乐队的告别演出门票,IT部门经理担心,开始网上售票后,公司的服务器和软件会不会不堪重负?但实际上该公司并没有增加数十个服务器和存储系统,有关IT人员只是拧开开关,将公司的骨干网与一个“网格”相联。结果公司在3分钟内销售了90万张门票,没有一个顾客因系统处理能力不足而被拒之门外。
上述情景并非可望而不可及。网格作为一种能带来巨大处理、存储能力和其他IT资源的新型网络,可以应付临时之用。网格计算通过共享网络将不同地点的大量计算机相联,从而形成虚拟的超级计算机,将各处计算机的多余处理器能力合在一起,可为研究和其他数据集中应用提供巨大的处理能力。有了网格计算,那些没有能力购买价值数百万美元的超级计算机的机构,也能利用其巨大的计算能力。
计算的“乌托邦”?
Gartner公司的Rob Batchelder认为,网格的构想一直是计算领域的“乌托邦”,在科技应用上虽有巨大前景,但最大的缺陷是缺乏明显的商业应用。自20世纪90年代在欧美出现以来,网格主要被用于帮助分散的大学研究人员分析粒子加速器和巨型望远镜的数据。但在过去的两年中,网格的概念和GlobusToolkit已在研究和教育领域得到广泛应用,数十项全球性的大项目采用这些技术,以挑战科学计算中的海量计算问题。
目前网格技术虽主要为学术机构所控制,但企业也在陆续跟进。事实上,全球网格论坛(GlobalGridForum)的主要赞助企业就包括Unilever——一家以经销肥皂、冰淇淋著称的企业。与许多正在研究和评估网格技术的企业一样,Unilever自己对于如何利用此技术仍秘而不宣。而Johnson&Johnson与Merck等制药公司、BMW与波音等制造企业却已利用这一技术的处理能力和存储空间进行仿真试验,例如药品能否保护细胞免受病毒侵袭?飞机机翼是否会在暴风雨中折断?
基因研究是网格技术的自然应用,这一领域所需的投资很难由一家企业来承担,生物科技企业可用网格技术来分析基因数据;医生可以用网格技术制作出病人器官的三维模型,作为诊断疾病的辅助手段;网格可以处理来自商店现金记录或金融市场的数据流。其他行业,如航空、保险、运输和国防,也会从中受益。如此看来,网格计算并非是可望不可及的乌托邦,其商业应用的广阔前景就在眼前。
争夺控制权
网格计算被誉为继Internet和Web之后的“第三个信息技术浪潮”,有望提供下一代分布式应用和服务,对研究和信息系统发展有着深远的影响。主要IT厂商早就为获得网格计算的控制权展开了竞争。
Sun公司日前发布了“网格引擎”企业版5.3的测试版,使企业内部的计算机网格更容易联接,提供更好的管理和资源分配。网格引擎软件提供了开放源代码版本,自2000年发布到目前为止,共被下载了1.2万次,共有11.8万个CPU利用该软件进行管理。Sun公司技术产品营销经理PeterJeffcock认为,网格计算有明显的三个阶段:群集网格、校园网格和全球网格,目前发布的GridEngine企业版5.3使Sun向功能校园网格迈进了一步。Sun还与竞争对手一起支持AVAKI与Globus等行业组织,积极参与网格计算开放标准的建立。
Microsoft的研究部门也参与了各项
分布式计算研究项目,包括容错远程文件系统Farsite,以及建设分布式系统的Millenium;HP也表示将提供Coolbase软件,使用户可以通过Internet共享各种计算设备;Compaq宣布正在制定一个全球性的网格计算解决方案计划,向寻求网格计算系统的客户提供软硬件和技术支持。为此,Compaq与加拿大PlatformComputing结盟,充分利用该技术,以及CompaqTru64UnixAlpha服务器系统和运行Linux的CompaqProLiant服务器,为用户提供完整的、集成的、开放的网格解决方案。Compaq还建立了网格计算高级研究中心,继续对该技术进行研究。日本的企业在网格计算方面也跃跃欲试。NTT宣布将于2002年中期开展为期6个月的网格计算试验,参与者包括了Intel、SGI等。
今年8月,IBM宣布在网格计算领域投资40亿美元,在全球建设40家
数据中心,正式进入网格计算领域。IBM被英国政府选中,负责NationalGrid(国家网格)项目,这项预算达2500万美元的网格会把8所大学的计算机相连。IBM目前正与美国的宾夕法尼亚大学合作,将数家医院联接,构建一个复杂的计算网格。参与的医院可快速利用远方的医疗数据,并共享分析程序。日前,IBM还宣布了一项名为北卡罗来纳生物信息科学网格的项目,涉及60家企业、大学和生物医学研究公司,这是全球第一个主要由私营行业参与的网格项目。而此时距IBM进入网格计算领域仅仅3个月。看来IBM是要立志做网格技术的“领头羊”。
那么,这一项目的实施是否标志网格计算已开始进入商业应用呢?
标准是成功关键
就像TCP/IP协议是Internet的核心一样,构建网格计算也需要对标准协议和服务进行定义。目前,包括Global Grid Forum、研究模型驱动体系结构(Model Driven Architecture)的对象管理组织(OMG)、致力于网络服务与语义WWW研究的W3C,以及Globus.org等标准化团体蠢蠢欲动。
今年7月,OMG、W3C、Grid Forum等标准化组织与来自学术、商业领域的人士出席了“软件服务网格研讨会”,加快全球大网格(GGG)标准的制定。接着,另一开放源代码网格标准组织——Globus也集会研究通过广域网联接的
高性能计算的基础设施问题。Globus目前正致力于开发标准的网格架构和其他技术。
迄今为止,网格计算还没有正式的标准,但在核心技术上,相关机构与企业已达成一致:由美国Argonne国家实验室与南加州大学信息科学学院(ISI)合作开发的Globus Toolkit已成为网格计算事实上的标准,包括Entropia、IBM、Microsoft、Compaq、Cray、SGI、Sun、Veridian、Fujitsu、Hitachi、NEC在内的12家计算机和软件厂商已宣布将采用Globus Toolkit。作为一种开放架构和开放标准基础设施,Globus Toolkit提供了构建网格应用所需的很多基本服务,如安全、资源发现、资源管理、数据访问等。目前所有重大的网格项目都是基于Globus Tookit提供的协议与服务建设的。
除了标准以外,安全和可管理性、IT人才的缺乏也是网格计算亟待解决的一个问题,否则将无法成为企业的商业架构。在内部系统环境中常常视而不见的问题,如安全、认证和可靠性,在任何分布式环境下都必须得到解决。研究咨询公司StencilGroup的合伙人Brent Sleeper认为:“这要求具有高层次的架构技能,而不是简历上列出的编程语言。”如果把全球的网格都联在一起,那么就能借用彼此未用的资源,网格就会更强大和灵活。虽然这也是网格的最终目标,但把网格联在一起也会带来政治问题。IBM为大学建设网格或Unilever建设内部的网格都只是单纯的IT决策,而将私有网格联接,形成能力更大的共享网格,其中的风险却大得多。在客户需要时,相互竞争的网格提供商是否愿意出售彼此多余的资源?此外,网格应用常涉及大量的数据和计算,需要在各组织间共享安全资源,这不是当前的Internet和网络基础设施所能做到的。看来在网格计算实现商业应用之前,还有很多的问题需要解决。
然而,设想一下运用前所未闻的计算能力所能完成的工作,我们都会明白,构建全球网格的前景几乎是无法抗拒的。美国Argonne国家实验室的科学家Rick Stevens指出:“就像最初的Arpanet成为Internet的中心一样,就把Teragrid看做是形成全球网格中心的雏形吧!”
网格的商业应用
生物医学:网格可提供药品开发人员所需的计算能力,用以研究药物和蛋白质分子的形态与运动。
工程:波音、福特、bmw公司都在尝试用网格计算进行复杂的仿真与设计。
数据搜集/分析:制造、石油加工、货物运输、甚至零售企业都要维护昂贵的设备,时常会出现问题,造成不好的结果。同无线传感器一样,网格能够存储和处理所有交易。
娱乐产业:特殊效果设计。
网格作为一个集成的计算与资源环境,能够吸收各种计算资源,将它们转化成一种随处可得的、可靠的、标准的且相对经济的计算能力,其吸收的计算资源包括各种类型的计算机、网络通信能力、数据资料、仪器设备甚至有操作能力的人等各种相关资源。
网格是借鉴电力网的概念提出的,网格的最终目的是希望用户在使用网格计算能力解决问题时像使用电力一样方便,用户不用去考虑得到的服务来自于哪个地理位置,由什么样的计算设施提供。也就是说,网格给最终的使用者提供的是一种通用的计算能力。
电力网中需要有大量的变电站等设施对电网进行调控,相应的网格中也需要大量的管理站点来维护网格的正常运行。网格的结构及资源的调控将更复杂,需要解决的问题也更多。因为网格所关心的问题不再是文件交换,而是直接访问计算机、软件、数据和其他资源。这就要求网格具备解决资源与任务的分配和调度、安全传输与通信实时性保障、人与系统以及人与人之间的交互等能力。网格提供的资源是随时间动态变化的,原来拥有的资源或者功能,在下一时刻可能就会出现故障或者拒绝被使用,而原来没有的资源,可能随着时间的进展会不断加入进来。
一、网络的典型体系结构
网格技术不断地发展使人们逐渐地意识到了网格体系结构的重要性。网格体系结构用来划分系统的基本组件,指定系统组件的目的和功能,说明组件之间如何相互作用,规定了网格各部分相互的关系与集成的方法。可以说,网格体系结构是网格的骨架和灵魂,是网格技术中最核心的部分。
1.五层沙漏结构
五层沙漏结构是一种早期的抽象层次结构,以“协议”为中心,强调协议在网格的资源共享和互操作中的地位。通过协议实现一种机制,使得虚拟组织的用户与资源之间可以进行资源使用的协商、建立共享关系,并且可以进一步管理和开发新的共享关系。这一标准化的开放结构对网格的扩展性、互操作性、一致性以及代码共享都很有好处。图1为五层沙漏结构的典型结构图。
五层结构之所以形如沙漏,是由各部分协议数量的分布不均匀引起的。考虑到核心的移植、升级的方便性,核心部分的协议数量相对比较少 (例如Internet上的TCP和HTTP),对于其最核心的部分,要实现上层协议(沙漏的顶层)向核心协议的映射,同时实现核心协议向下层协议(沙漏的底层)的映射。按照定义,核心协议的数量不能太多,这样核心协议就成了一个协议层次结构的瓶颈。在五层结构中,资源层和连接层共同组成这一核心的瓶颈部分,它促进了单独的资源共享。
2. 开放网格服务结构
开放网格服务结构OGSA是Global Grid Forum4的重要标准建议,是目前最新也最有影响力的一种网格体系结构,被称为是下一代的网格结构。OGSA的目的就是要将Grid的一些功能,更确切的说是Globus的一些功能融合到Web Service这个框架中。与前期网格不同的是,OGSA是面向服务的结构,将所有事务都表示成一个Grid服务,计算资源、存储资源、网络、程序、数据等都是服务,所有的服务都联系对应的接口,所以,OGSA被称为是以服务为中心的“服务结构”,通过标准的接口和协议支持创建、终止、管理和开发透明的服务,其发展象征着Web Service的一个进步,结合目前的Web Service技术,支持透明安全的服务实例,OGSA有效地扩展了Web Service架构的功能。五层模型与OGSA都相当重视互操作性,但OGSA更强调服务的观点,将互操作性问题转化为定义服务的接口和识别激活特定接口的协议。这一面向服务模型具有很多优点,环境中的所有组件都是虚拟化的,通过提供一个所有Grid服务实现基础的一致接口的核心集,可以使得分级的、更高级别的服务的构建能够跨多个抽象层以一种统一的方式进行处理。虚拟化还促使从多个逻辑资源实例到同一物理资源的映射,不考虑实现的服务组合,以及一个VO内的基于低级资源组合的资源管理。正是Grid服务的虚拟化加强了通用服务语义行为无缝地映射到本地平台设施的能力。
二、网格协议Globus工具包
由于现在的互联网结构并不是针对网格计算设计的,为了使网格计算和现有的结构兼容,一个可扩展的中间件是必需的,也就是基于操作系统之上的网格管理软件。在网络化应用成为主流的时代,单机操作系统如NT、Windows等的地位已经降低,网格管理软件实际上是更高层次的网格操作系统,其核心技术主要是一体化的信息平台、语义网站、智能代理和知识本体技术等。建立网格服务的协议与标准是网格发展的重点和难点。Globus项目是目前国际上最有影响力的与网格计算相关的项目之一,是来自世界各地关注网格技术的研究人员和开发人员共同努力的成果。它是围绕四种主要活动来组织的:研究、软件工具、实验台和应用程序。Globus对资源管理安全、信息服务及数据管理等网格计算的关键技术进行研究,开发能在各种平台上运行的网格计算工具软件,帮助规划和组建大型的网格实验平台,开发适合大型网格系统运行的大型应用程序。Globus工具包是Globus最重要的实践成果,它是一个开放源码的关键Grid协议的参考实现,支持大量的主要的电子科学项目。该工具包基于开放结构、开放服务资源和软件库并支持网格和网格应用,致力于安全、信息发现、资源管理、数据管理、通信错误诊断等问题。Globus的网格计算协议是建立在互联网协议之上的,以互联网协议中的通信、路由、名字解析等功能为基础。Globus的协议分为5层:构造层、连接层、资源层、汇聚层和应用层。上层协议可调用下层协议的服务。网格内的全局应用都通过协议提供的服务来调用操作系统。Globus工具包包括网格安全、网格信息获取与分布、网格资源管理及网格远程传输等内容,这些都是网格开发中的关键技术和必须解决的重要问题。
三、网格核心技术
为解决不同领域复杂科学计算与海量数据服务问题,人们以网络互连为基础构造了不同的网格,有代表性的如计算网格、拾遗网格、数据网格等,它们在体系结构和需要解决的问题类型等方面不尽相同,但都需要共同的关键技术,主要有如下几种:
高性能调度技术 在网格系统中,大量的应用共享网格的各种资源,如何使得这些应用获得最大的性能,这就是调度所要解决的问题。网格调度技术比传统高性能计算中的调度技术更复杂,这主要是因为网格具有一些独有的特征,例如,网格资源的动态变化性、资源的类型异构性和多样性、调度器的局部管理性等。所以网格的调度需要建立随时间变化的性能预测模型,充分利用网格的动态信息来表示网格性能的波动。在网格调度中,还需要考虑移植性、扩展性、效率、可重复性以及网格调度和本地调度的结合等一系列问题。
资源管理技术 资源管理的关键问题是为用户有效地分配资源。高效分配涉及到资源分配和调度两个问题,一般通过一个包含系统模型的调度模型来体现,而系统模型则是潜在资源的一个抽象,系统模型为分配器及时地提供所有节点上可见的资源信息,分配器获得信息后将资源合理地分配给任务,从而优化系统性能。
网格安全技术 网格计算环境对安全的要求比 Internet的安全要求更为复杂。网格计算环境中的用户数量、资源数量都很大且动态可变,一个计算过程中的多个进程间存在不同的通信机制,资源支持不同的认证和授权机制且可以属于多个组织。正是由于这些网格独有的特征,使得它的安全要求性更高,具体包括支持在网格计算环境中主体之间的安全通信,防止主体假冒和数据泄密;支持跨虚拟组织的安全;支持网格计算环境中用户的单点登录,包括跨多个资源和地点的信任委托和信任转移等。
网格研究最初的目标是希望能够将超级计算机连接成为一个可远程控制的元计算机系统(MetaComputers),现在,这一目标已经深化为建立大规模计算和数据处理的通用基础支撑结构,将网络上的各种高性能计算机、服务器、PC、信息系统、海量数据存储和处理系统、应用模拟系统、虚拟现实系统、仪器设备和信息获取设备(例如传感器)集成在一起,为各种应用开发提供底层技术支撑,将Internet变为一个功能强大、无处不在的计算设施,最终实现资源共享和分布协同工作。网格的这种概念可以清晰地指导行业和企业中各个部门的资源进行行业或企业整体上的统一规划、部署、整合和共享,而不仅仅是行业或大企业中的各个部门自己规划、占有和使用资源。这种思想的沟通和认同对行业和企业是至关重要的,将提升或改变整个行业或企业信息系统的规划部署、运行和管理机制。