1.3 云计算与网格计算
1.3.1 网格计算
网格计算的概念反映的是一种理念框架,而不是指一个物理上存在的资源。网格所采用的方法是,利用位于分散管理域内的资源完成计算任务。网格技术的焦点在于对超出本地管理域的计算资源需求的灵活提供。
网格和互联网的演化一样,都是为了应对大型计算的需求。互联网是为了满足各大型计算中心之间的普通通信需求而开发的。这些通信连接不仅实现了计算中心之间的资源和信息共享,并最终为额外用户提供了访问。
网格技术可以被看做是互联网框架的扩展,目的是为了创建一个更为通用的资源共享环境。网格环境的创建是为了满足资源共享的需求,而各种资源(如CPU周期、磁盘存储空间、数据、软件程序、外围设备等)取决于该资源在本地管理域之外是否可用。这种“外部提供”的方法的不足使我们迫切需要创建一个新的管理域:虚拟组织。每个虚拟组织有各自独立和分离的管理政策(本地管理政策+外部资源管理政策=虚拟组织管理政策)。“任务执行”所需要的环境是根据该任务在本地管理域之外执行时的需求所区分的。网格技术是用来规范化的,以保证应用程序执行时所关联的网格环境具有统一的规范并且遵守之。
SETI@home是第一个非营利性的科学项目,其目的是为了对空闲的CPU周期加以回收利用。该项目所设计的程序通常是在计算机没有被用户使用或是使用极少的情况下在后台运行或作为屏幕保护程序。其后的同类项目致力于增加投入控制和返回结果延迟。
欧洲核子研究组织(the European Organization for Nuclear Research,CERN)把网格计算定义为“通过互联网来共享强大的计算能力和数据储存能力。”
网格计算通过利用大量异构计算机(通常为桌面)的未用资源(CPU周期和磁盘存储),将其作为嵌入在分布式电信基础设施中的一个虚拟的计算机集群,为解决大规模的计算问题提供了一个模型。区别于传统的计算机集群或分布式计算,网格计算侧重于支持跨管理域计算的能力。
网格计算有以下两个目标。
①解决对于任何单一的超级计算机来说,仍然大得难以解决的问题,并同时保持解决多个较小问题的灵活性。这样,网格计算就提供了一个多用户环境。
②更好地利用可用计算力,迎合大型计算练习的断断续续的需求。
网格计算包括共享异构资源(基于不同平台、硬件/软件体系结构,以及计算机语言),这些资源位于不同的地理位置,属于一个使用公开标准的网络上的不同管理域,即虚拟化计算资源。
基于功能,网格分为两类:计算网格和数据网格。网格计算在企业内外部迅速发展,发挥其计算价值。
(1)外部网格(external grids) 网格计算对分布在世界各地的、非营利性质的研究机构颇有吸引力,进而造就了美国国家超级电脑应用中心计算生物学网格,如生物学和医学信息学研究网格。
(2)内部网格(internal grids) 网格计算对那些需要解决复杂计算问题的商业公司有着非同一般的吸引力,其目标是将企业内部的计算能力最大化。
全球网格论坛(GGF)为网格计算定义相关的规范。而Globus联盟通过Globus工具包实现了这些标准,该工具包已成为网格中间件的标准。同时,Globus还提供了一些工具,使网格计算平台更加健壮,更适用于高性能计算的需要。
2000年以来,商业机构提供网格解决方案,网格提供了解决Grand Challenge problem的办法,如蛋白质折叠、金融建模、地震模拟、气象模型等。网格还为组织内部如何优化使用大量的信息技术资源提供了解决途径,也作为公用事业机构为商业和非商业客户提供信息技术提供了一种方法,这些客户可以只为他们所需要的服务付费,就像电和自来水一样。目前能提供网格运算方案的主要商家有IBM、Sun、甲骨文、惠普等。
1.3.2 云计算与网格技术的互补关系
刘鹏分析了云计算与网格技术的互补关系:云计算主要解决计算力和存储空间的集中共享使用问题,而网格技术主要解决分布在不同机构的各种信息资源的共享问题。提出两者终将融为一体,并将云计算的未来定义为云格(Gloud=Grid+Cloud)。
①从平台统一角度看,目前云计算还没有统一的标准,不同厂商的解决方案风格迥异、互不兼容,未来一定会朝着形成统一平台的方向发展;而网格技术生来就是为了解决跨平台、跨系统、跨地域的异构资源动态集成与共享的,而且国际网格界已经形成了统一的标准体系并成功应用。网格技术能够在云计算平台之间实现互操作,从而达成云计算设施的一体化,使得未来的云计算不再以厂商为单位提供,而构成一个统一的虚拟平台。因而,云和云之间的协同共享离不开网格的支持。
②从计算角度看,云计算管理的是由PC和服务器构成的廉价计算资源池,主要针对松耦合型的数据处理应用,对于不容易分解成众多相互独立子任务的紧耦合型计算任务,采用云计算模式来处理效率很低,因为节点之间存在频繁的通信;网格技术能够集成分布在不同机构的高性能计算机,它们比较擅长处理紧耦合型应用,而有许多应用都属于紧耦合应用,如数值天气预报、汽车模拟碰撞试验、高楼受力分析等。这类应用并不是云计算所擅长的,如果云计算与网格技术能够一体化,则可以充分发挥各自特点。
③从数据角度看,云计算主要管理和分析商业数据;网格技术已经集成了海量的科学数据,如物种基因数据、天文观测数据、地球遥感数据、气象数据、海洋数据、药物数据、人口统计数据等。如果将云计算与网格技术集成在一起,则可以大大扩大云计算的应用范畴。目前Amazon在不断征集供公众共享使用的数据集,包括人类基因数据、化学数据、经济数据、交通数据等,这充分说明云计算对于这些数据集的需求,同时也反映出这种征集的方法过于原始。
④从资源集成角度,要使用云计算,就必须将各种数据、系统、应用集中到云计算数据中心,而很多现有信息系统要改变运行模式、迁移到云计算平台上的难度和成本是很高的。还有些系统的数据源与数据中心可能距离较远,且数据源的数据是不断更新的(物联网就具有此种特性),如果要求随时随刻将这些数据传送到云计算中心,则对网络带宽的消耗是不经济的。因此还会有大量的应用系统处于分散运转状态,而不会集中到云计算平台上;而网格技术可以在现有资源上实现集成,达到“物理分散、逻辑集中”的效果,可以巧妙地解决这方面的问题。
⑤从信息安全角度看,许多用户担心将自己宝贵的数据托管到云计算中心,就相当于丧失了对数据的绝对控制权,存在被第三方窥看、非法利用或丢失的可能,从而不敢采用云计算技术;而在网格环境中,数据可以仍然保存在原来的数据中心,仍然由其所有者管控,但对外界提供数据访问服务,是一种“可以用,但不能全部拿走”的模式,不会丧失数据的所有权,但数据资源的使用范围扩大了、利用率提高了。由于数据源头分别由不同所有者控制,他们可以决定每一种数据是否共享和在什么范围共享,较之将所有数据都放进云计算数据中心进行共享更有利于避免敏感数据的扩散。
1.3.3 云计算与网格技术的结合
云计算与网格技术结合的基准是面向服务的体系结构SOA(Service Oriented Architecture)。SOA最早是Gartner公司于1996年正式提出的。SOA架构模型的本质是业务建模——将一切信息资源封装成服务,以服务形式来解决业务间的互操作问题。目前,无论是网格技术,还是云计算,基本上都符合Web Services规范。Web Services是SOA的实现机制之一。Web Services是由URI(Uniform Resource Identifier)标识的软件应用。该应用的接口和绑定可通过基于XML的语言进行定义、描述和发现。同时,该应用可通过基于互联网的XML消息协议与其他软件应用直接交互。Web Services之所以受欢迎,主要是因为它是简单的、标准的、跨平台的且与厂商无关的,可以大幅度降低构架耦合度,可以提供服务层次的集成。
在SOA框架下,无论是网格服务,还是云计算服务,或其他的Web Services服务,都能够非常容易地共存、共用、互操作。在这样一个环境中,用户只要关心自己需要哪些服务,是数据处理服务、高性能计算服务,还是企业管理服务、电子商务服务等即可。