sunny_ck博客
期待黎明

   文章出处:Grid computing Environments Workshop,GCE'08,PP.1-10,2008.

   翻译稿来源:《数字通信》2010,(3):32~36  由重庆邮电大学计算机学院莎莎  刘宴兵(重庆邮电大学软件学院常务副院长)翻译。

   转贴内容来自 国研网

网格计算和云计算360度比较
2010-8-3

  0  引言

 

  随着科技的发展,人们将不再满足于在本地机器上执行运算工作,而更多关注的是由第三方提供计算和存储能力的集中式计算,云计算因此应运而生的。毋庸置疑,这并不是一个新想法,因为早在1961年,计算机领域的先驱人物曾预测计算能力会被设计组织成一个公共服务。早在上个世纪九十年代中期,网格计算就被定义为能够让用户动态地按需获取计算能力的一种技术。Ian Foster认为如果能够定义一个获取计算能力的标准协议,就能够刺激网格计算的发展,使其成为类似于电力网的公共服务。在这种思想的指引下,研究者们设计了一系列的大规模集成系统,例如,TeraGrid,Open Science Grid,caBIG,EGEE,Earth System Grid,这些系统不仅能提供计算能力,而且能按照用户需求提供相应的数据服务和软件服务。国际标准组织如OGF,OASIS也定义了相关的标准,网格计算甚至被认为是集群计算的市场化。但是至今为止,依然没有商业的网格计算服务供应商出现。在这样的背景下,云计算是否是网格计算的新名字?在信息高速发展的今天,各种新技术互相交织互相影响并行发展,因此对这样的问题没有一个确切的答案。对此疑问持肯定观点的学者认为云计算和网格计算两者的目标都是相同的,通过第三方提供计算能力来降低成本,同时也保证了可扩展性和可靠性。持否定观点的学者认为现在的环境与10年前已不同了。如今对大规模数据处理提出了新的需求,同时进行大规模集群计算的成本相对较高。因此,云计算采用了低成本的虚拟化技术。诸如亚马逊、谷歌、微软等国际大公司已在此领域投入了几十亿的资金,建成了由数千台计算机构成的大规模的云计算系统。在不远的将来,普通用户只需用较少的花费就能快速获得所需的计算、存储等资源。虽然云计算和网格计算在细节上还存在许多差异,但就需要解决的核心问题而言,还是有相似之处的。两者均需要处理大规模设备,重新定义用户请求,运用计算中心提供的资源以及在这些资源上实现用户需求的并行处理等。 

  1.1  云计算的定义 

  由于没有明确的云计算的定义,因此我们采用了学术界目前普遍认同的对云计算概念的描述。云计算是一种由大规模商业需求驱动的计算模式,它能够根据外部用户需求,从一个抽象的虚拟的可动态增长的资源池中动态地提供用户需求的计算能力、存储能力和服务等其他请求。由此我们可以看出云计算包括5个核心部分:1)云计算是构建在分布式计算基础之上的;2)云计算是一种大规模计算模式;3)云计算能给用户提供不同级别的服务;4)云计算是由大规模商业计算需求驱动的;5)云计算提供的服务可很好地适应用户的动态需求,即提供按需所求的服务。 

  当今政府部门、研究所以及工业界普遍寄希望于云计算来解决在互联网时代遇到的各种问题。云计算能够获得众人关注的原因有以下三点:第一是硬件的发展,具体包括多核技术的诞生和伴随着成本的下降普通PC存储计算能力的提升;第二是互联网上越来越大的数据量业务需求;第三是服务计算和web2.0计算的广泛采用。 

  1.2  云计算、网格计算和分布式计算 

  读者会注意到云计算的定义与网格计算、效用计算、服务计算、分布式计算等有概念上的重叠。我们要说明的是云计算不仅是从网格计算演化来的,而且网格计算还为云计算提供了基本的框架支持。网格计算仅仅关注于提供计算能力和存储能力,而云计算侧重于在此基础上提供抽象的资源和服务,这就是网格计算向云计算的演变过程。和效用计算相比,云计算是一个新的商业模型而不是计算模型。如同发电厂提供可度量的电力资源给用户一样,云计算将其提供的抽象的资源打包成可度量的服务提供给用户。因此,云计算可以像效用计算一样由供应厂商给用户提供打包好的服务。 

  图1显示了云计算和其他相关领域的关系以及概念相互重叠的部分。web2.0几乎涵盖了面向服务的应用的所有内容,而云计算只包含了大部分;超级计算和集群计算更关注于传统的非面向服务的计算;网格计算和这4个领域都有联系。

  

  10年前,Foster给出三点辨别网格的标准:1)协调不属于同一集中管理的资源;2)使用标准的、开放的协议和接口;3)提供高质量的服务。虽然云计算符合第三点的要求,但是第一点和第二点已不满足。云计算和网格计算的愿景是相似的,两者都要解决很多相似的问题,但是在细节和技术层面存在差异。 

  2  云计算和网格计算的比较 

  本节旨在从基础架构、安全模型、应用等方面,对云计算和网格计算进行比较。 

  2.1  基本架构 

  网格计算始于20世纪90年代中期,其出现旨在利用网络资源共享的优势解决大规模计算问题。由于专用的高性能计算硬件资源成本较高,且不易得到,人们试图将分布在不同地理位置的资源通过网络连接起来,完成原来由特定的高性能计算机才能完成的工作。由于这些普通资源通常是异构的,且处于动态变化的环境中,因此需要有专门的机制来完成资源的分配和调度,网格计算由此诞生。虚拟组织就是一个由可共享的分布式资源构成的结构,网格计算定义并且提供了一系列标准的协议、中间件以及工具包。由于资源可能来自于不同的领域,具有不同的硬件软件配置,在可用性和容量方面有差异,因此交互性和安全性是网格计算需要考虑的首要问题。 

  如图2所示,网格计算分别在五层体系框架上提供不同的协议和服务。在基础架构层,网格提供对不同资源的接入控制,例如计算资源、存储资源、网络资源等。网格计算通常依赖于已存在的组件,如本地资源管理等。

   和网格计算的某些假设不同,云计算着重处理基于互联网的问题。云通常被认为是一个大的资源池,池内的资源可通过抽象的接口和通用的标准访问。云可以在如WSDL,SOAP等基本web2.0技术和诸如REST,RSS,AJAX等高级web2.0协议上构建。 

  云计算的架构体系也有多种定义,我们采用普遍认同的4层体系架构与网格的5层体系架构相比较。这4层架构分别是:1)架构层;2)统一资源层;3)平台层;4)应用层。如图3所示。

 

 

 

  架构层指单纯的硬件资源,包括计算资源、存储资源和网络资源。统一资源层是指能封装或抽象化的资源,因此能够作为整体提供给上层应用服务,通常包括逻辑文件管理系统和数据库系统等。平台层在同一资源层上增加了针对特定服务的工具包、中间件和接口。因此能为上层提供更为丰富的应用和部署。应用层包括在云体系上运行的各种具体应用。 

  云计算能提供IaaS,PaaS和SaaS三个基本级别的服务:IaaS主要基于硬件层次提供硬件支持和软件运行环境,基础设施可根据用户需求动态增长,PaaS提供了高级别的集成环境来构建普通应用,SaaS提供用户可通过互联网远程登录的专用的软件。 

  虽然云计算提供了三个不同级别的服务(IaaS,PaaS,SaaS),然而这些级别的标准还未建立,这导致不同云之间在交互方面存在问题。随着云计算日趋成熟,更多更复杂的基于云的应用和服务的出现,将促使这方面标准的提出和修订。同时,云计算的市场也将会变得越来越丰富。

 

  2.2  资源管理 

  云计算和网格计算的资源管理对比主要包括计算模型、数据模型、虚拟化和监控几个方面。 

  2.2.1  计算模型 

  大多数网格采用批量计算模型,客户提交批量任务在网格点由诸如PBS,Condor、和SGE完成本地资源管理。很多网格对于批量任务有严格的管理措施,出于安全考虑,需要通过身份认证来明确任务在某一合法的机器上执行,同时也需要明确任务需要执行的时间和需要的处理器数目。由于资源管理和调度的成本比较高,所以虽然此方案比较有效,但在实际应用中没有得到广泛使用。和网格计算模型不同,云计算中的资源能同时被多个用户共享。这将使得一些无法接受传输延迟的网络应用可以在云计算环境中实现。在这种情况下,如何保证服务质量将成为云计算研究的一个方向。 

  2.2.2  数据模型 

  尽管有人认为,未来的网络计算将是云计算的天下,计算能力、存储能力和其他资源都将由云提供。但笔者认为未来网络计算主要将会采用图4所用的三角模型,即由数据、云计算和客户端计算集中构成。云计算和客户端计算将同步发展,共同演变,同时,随着数据集中式应用的发展,数据管理将会扮演越来越重要的角色。

 

 

  云计算的重要性毋庸置疑,而客户端计算的重要作用主要从以下三个方面体现出来:1)出于安全考虑,客户不会选择将重要数据上传到云中进行处理和存储操作;2)客户要求能在网络出现故障的时候依然能正常执行相应任务;3)随着多核技术的发展,未来的个人超级计算机的性能会大大提升。 

  从网格时代开始,数据的重要性就没有被忽视过。在网格环境下有专门的数据网格用来处理数据集中式应用。数据网格中出现了虚拟数据的概念,虚拟数据描述了数据、程序和计算能力之间的关系,同时定义了一些数据网格中能出现的抽象概念,比如位置透明性、分布式元数据目录等。 

  2.2.3  数据局部性 

  随着CPU技术的发展和数据集规模的与日俱增,如今影响大规模应用程序的执行效率的瓶颈就是传输数据的带宽,这是由于数据存放位置和执行位置不同造成的。从本地磁盘读取数据和从网络获取数据的速度是不同的,因此会影响应用程序的执行效果。谷歌的MapReduce是一个运行在谷歌文件系统之上的编程模型,在这种体系结构中,数据被分割成许多块,分别存储在不同的物理位置。当需要执行某一任务时,任务调度程序会尽量满足在该数据块所在的本地节点上执行map进程,因此是会高效地利用数据的局部性策略。在网格环境下,数据存储依赖于共享的文件系统,因此达不到利用数据局部性优势的要求。 

  2.2.4  虚拟化 

  为了提供抽象性和封装性,虚拟化已成为云计算中的一项核心技术。在计算机系统中,通过映入进程的概念实现任务的并行处理,即在用户的眼中,多个线程能共享资源,提供高效的服务。和线程类似,云计算中虚拟化的引入使多个应用程序共享资源和并行处理成为?叮能。通过虚拟化技术,可实现应用程序的单独配置、部署、启动和停止等,因此能提供更好的安全性、易管理性和隔离性。

  云计算采用虚拟化技术的原因很多,主要包括:1)通过虚拟化可以使得一台服务器运行多个应用程序,充分利用资源;2)由于各个应用程序对资源的需求不同,有些侧重于计算能力,有些则侧重于存储能力,虚拟化能达到动态配置和绑定资源的要求;3)虚拟环境很容易进行备份和实现不间断服务,因此能提高系统的可用性和可靠性;4)所有资源都是动态分配的,能提高系统的灵敏度。总之,虚拟化可看作是实现了IT资源向商业需求的映射。和云计算相比,网格计算的虚拟化程度则相对比较低。 

  2.2.5  系统监控 

  虚拟化技术的发展,带来了对系统资源监控难度的增加。和云计算相比,网格计算的资源抽象化程度和虚拟化程度比较低,同时用户可通过可信机制完成身份认证,进而获得相应资源。因此,网格计算对可提供的服务有严格的限制。在云计算领域,终端用户只能根据所需的服务等级查询预先提供的API,发布和部署自己的应用程序,而更底层的资源信息对用户是透明的。在这种情况下,用户很难对系统进行全方位监控。云计算中基本的监控应包括:商业应用监控、企业服务器监控、虚拟机监控和硬件设施监控等。由于虚拟化技术和云计算系统良好的封装性使得云计算中的监控变得相对困难。 

  2.3  应用模型 

  网格支持的应用比较广,从高性能计算到高吞吐量计算都能在网格环境中运行。在网络环境较好,即低延迟的局域网环境中,高性能计算能很好地处理紧耦合的并行作业,这种并行作业通常使用MPI进行互联和通信。MPMD(多程序多数据流)、容量计算、效用计算、密集并行运算等具有松耦合性质的应用则属于高吞吐量计算。这些松耦合的应用由很多小模块构成,每个模块可以跨多重管理边界在不同的物理资源上运行。另一方面,云计算能处理和网格计算类似的数据集,不过由于网络环境的不确定性,在高性能计算方面,云计算稍逊一筹。云计算的研究尚处于不成熟的阶段,因此对云端的应用暂时没有合理的定义。笔者认为,这种应用应具有松耦合、面向事务处理和交互式等基本特征。 

  2.4  安全模型 

  云通常是由硬件和软件平台类似的、属于同一组织的数据中心构成的,在这样的背景下,跨领域、跨数据中心的资源操作可交互性就成为一个重要的研究课题。网格是在资源异构和动态变化的基础上构建的,同时每个网格网点都拥有独特的自治系统和管理机制,因此,安全被设计在网格基础架构部分。网格安全的核心内容包括:单一登录,用户只需登录一次,就可以接入多个网格网点;代理服务,用户可对特定程序授权以访问资源;数据私有性,数据只能被授权用户访问,同时在转移过程中也不能被随意篡改。通过基于GSI协议公钥,可以提供委托服务、授权服务、认证服务和审核服务等。 

  同网格计算相比,云计算的安全模型相对比较简单,云计算采用网络管理为用户创建账户的方式来进行安全管理,同时允许通过邮件的形式更改密码。因此对于新客户,只要通过邮件就能方便容易地使用云服务。综上所述,云安全将成为未来研究中最重要的课题,普通云用户将会面临的安全风险主要体现在以下几个方面:1)授权的用户接入:企业敏感数据要求只有特权用户才能访问以保证其机密性;2)数据隔离性:保证不同用户之间的数据达到完全隔离,以免引起混淆和错误;3)数据恢复:有良好的容错机制以保证系统出错时数据不丢失。 

  3  结论 

  可以看出,网格计算和云计算虽然有相似的地方,但是在安全性、编程模型、商业模型、计算模型、数据模型和应用方面还是有很多区别。大胆预测未来的IT资源将类似水电等物理资源一样方便易用,未来的物理资源网和IT资源网均将发生极大的变化,两者会在各自的领域走向融合,即形成更大规模的资源服务型网络。在构建云计算环境或者网格环境时最重要的部分就是需要保证能依据用户需求动态地提供资源,同时应该有相应的协议保证能将将服务从一个云平台方便地转移到另一个云平台,而在此过程中,不会损害普通用户的利益。然而,目前的出现的云平台还没有很好地达到以上要求,特别是针对不同云平台之间的交互性方面的研究更是稀少。

   后记: 

  互联网的广泛应用推动了并行计算与分布式计算的发展,由分布式计算又衍生出网格计算。3种技术的核心思想都在于将大任务转化为小任务来处理,不过网格计算的优势在于将网内所有的计算资源组成一个超级处理器提供给特定的用户使用,而云计算则是这三种技术的发展。当分布式处理(distributed computing)、并行处理(parallel Computing)和网格计算(grid computing)发展到一定阶段的时候,云计算(cloud computing)出现了,或者说云计算是这些计算机科学概念的商业实现。 

  云计算是虚拟化、效用计算、IaaS(基础设施服务)、PaaS(平台即服务)、SaaS(软件即服务)等概念混合演进并跃升的结果。它是一种全新的网络服务方式,将传统的以桌面为核心的任务处理转变为以网络为核心的任务处理,利用互联网实现自己想要完成的一切处理任务,使网络成为传递服务、计算力和信息的综合媒介,真正实现按需计算、多人协作。“云”不是漂浮在天空中的云,而是由成千上万的计算机和服务器组成,通过互联网实现网络服务。

  网格计算是在互联网的推动下产生的利用互联网上计算机的剩余计算资源进行计算,而云计算是利用互联网中的计算系统,来支持互联网各类应用的系统。从网格计算和云计算的定义上来说二者都试图将各种IT资源看成一个虚拟的资源池,然后向外提供相应的服务。云计算试图让“用户透明地使用资源”,而网格计算当初的口号就是让“使用IT资源像使用水电一样简单”。二者的意义就在于,无论是用户还是企业开发者,都能够通过互联网来获得数据或者进行计算,尽管本地资源有限,但是能够通过网络进行复杂的运算,其数据的计算过程对于用户来说就像互联网网络对于本地网络用户一样,后端的实现是透明的。云计算是网格计算的一种简化形态,云计算的成功也是网格的成功。网格不仅要集成异构资源,还要解决许多非技术的协调问题,也不像云计算有成功的商业模式推动,所以实现起来要比云计算难度大很多。但对于许多高端科学或军事应用而言,云计算是无法满足需求的,必须依靠网格来解决。

   云计算结合了计算的终极梦想和现实条件,成为当前最具技术和商业吸引力的计算模式发展方向。

  

posted on 2010-09-18 09:58  sunny_ck  阅读(355)  评论(0编辑  收藏  举报