1、分布式计算
所谓分布式计算是一门计算机科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。最近的分布式计算项目已经被用于使用世界各地成千上万位志愿者的计算机的闲置计算能力,通过因特网,您可以分析来自外太空的电讯号,寻找隐蔽的黑洞,并探索可能存在的外星智慧生命;您可以寻找超过1000万位数字的梅森质数;您也可以寻找并发现对抗艾滋病病毒的更为有效的药物。这些项目都很庞大,需要惊人的计算量,仅仅由单个的电脑或是个人在一个能让人接受的时间内计算完成是决不可能的。
分布式计算是利用互联网上的计算机的中央处理器的闲置处理能力来解决大型计算问题的一种计算科学。在两个或多个软件互相共享信息,这些软件既可以在同一台计算机上运行,也可以在通过网络连接起来的多台计算机上运行。
2、网格计算
首先网格计算也是一种分布式计算。
网格计算通过利用大量异构计算机(通常为桌面)的未用资源(CPU周期和磁盘存储),将其作为嵌入在分布式电信基础设施中的一个虚拟的计算机集群,为解决大规模的计算问题提供了一个模型。网格计算的焦点放在支持跨管理域计算的能力,这使它与传统的计算机集群或传统的分布式计算相区别。
网格计算的设计目标是解决对于任何单一的超级计算机来说仍然大得难以解决的问题,并同时保持解决多个较小的问题的灵活性。这样,网格计算就提供了一个多用户环境。它的第二个目标就是:更好的利用可用计算力,迎合大型的计算练习的断断续续的需求。
有了网格计算技术,您可以将服务器、存储系统和网络联合在一起,组成一个大的系统,从而为用户提供功能强大的多系统资源来处理特定的任务。对于最终用户或应用程序来说,数据文件、应用程序和系统看起来就像是一个巨大的虚拟计算系统。
网格计算与其他所有的分布式计算范例都有所区别:网格计算的本质在于以有效且优化的方式来利用组织中各种异构松耦合资源,来实现复杂的工作负载管理和信息虚拟化功能。
参考资源:
网格观点: 网格计算 —— 下一代分布式计算
网格计算: 关键组件是什么?
3、云计算
概念
云计算(Cloud Computing)是分布式处理(Distributed Computing)、并行处理(Parallel Computing)和网格计算(Grid Computing)的发展,或者说是这些计算机科学概念的商业实现。
云计算的基本原理是,通过使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器中,企业数据中心的运行将更与互联网相似。这使得企业能够将资源切换到需要的应用上,根据需求访问计算机和存储系统。
这可是一种革命性的举措,打个比方,这就好比是从古老的单台发电机模式转向了电厂集中供电的模式。它意味着计算能力也可以作为一种商品进行流通,就像煤气、水电一样,取用方便,费用低廉。最大的不同在于,它是通过互联网进行传输的。
云计算的蓝图已经呼之欲出:在未来,只需要一台笔记本或者一个手机,就可以通过网络服务来实现我们需要的一切,甚至包括超级计算这样的任务。从这个角度而言,最终用户才是云计算的真正拥有者。
云计算的应用包含这样的一种思想,把力量联合起来,给其中的每一个成员使用。
云计算的几大形式
SAAS(软件即服务)
这种类型的云计算通过浏览器把程序传给成千上万的用户。在用户眼中看来,这样会省去在服务器和软件授权上的开支;从供应商角度来看,这样只需要维持一个程序就够了,这样能够减少成本。Salesforce.com是迄今为止这类服务最为出名的公司。SAAS在人力资源管理程序和ERP中比较常用。 Google Apps和Zoho Office也是类似的服务
实用计算(Utility Computing)
这个主意很早就有了,但是知道最近才在Amazon.com、Sun、IBM和其它提供存储服务和虚拟服务器的公司中新生。这种云计算是为IT行业创造虚拟的数据中心使得其能够把内存、I/O设备、存储和计算能力集中起来成为一个虚拟的资源池来为整个网络提供服务。
网络服务
同SAAS关系密切,网络服务提供者们能够提供API让开发者能够开发更多基于互联网的应用,而不是提供单机程序。
平台即服务
另一种SAAS,这种形式的云计算把开发环境作为一种服务来提供。你可以使用中间商的设备来开发自己的程序并通过互联网和其服务器传到用户手中。
MSP(管理服务提供商)
最古老的云计算运用之一。这种应用更多的是面向IT行业而不是终端用户,常用于邮件病毒扫描、程序监控等等。
商业服务平台
SAAS和MSP的混合应用,该类云计算为用户和提供商之间的互动提供了一个平台。比如用户个人开支管理系统,能够根据用户的设置来管理其开支并协调其订购的各种服务。
互联网整合
将互联网上提供类似服务的公司整合起来,以便用户能够更方便的比较和选择自己的服务供应商。
云计算与网格计算的深入比较
在写这篇文章之前,曾经有很多人问过记者类似的问题,比如说:“云计算跟网格计算到底什么关系”、“它们两个的区别到底在哪里”、“能不能简单地讲一下其中的区别”?
其实,一下子很难讲清楚其中的具体区别。记者此前曾经在首次接触云计算概念时,将云计算看成“网格2.0”,这一点得到了一些业内人士的认可;后来记者也曾经翻译了美国《Network World》的一篇文章,澄清了有关云计算的一些定义(参见:云计算的五种定义考)。
不过,记者认为这些都似乎还比较空泛。在采访过网格计算相关的技术专家和云计算方面的技术专家之后,记者尝试着给出一些自己的看法。
当然,从定义上来说,二者都试图将各种IT资源看成一个虚拟的资源池,然后向外提供相应的服务。云计算试图让“用户透明地使用资源”,而网格计算当初的口号就是让“使用IT资源像使用水电一样简单”。
根据维基百科所提供的定义,云计算是一种宽泛的概念,它允许用户通过互联网访问各种基于IT资源的服务,这种服务允许用户无需了解底层IT基础设施架构就能够享受到作为服务的“IT相关资源”。
而网格的内涵包括两个方面,一个方面是所谓的效用计算或者随需计算,在这一点上面,网格计算跟云计算是非常相似的,都是通过一个资源池或者分布式的计算资源来提供在线的计算或者存储等服务;另外一个方面就是所谓的“虚拟超级计算机”,以松耦合的方式将大量的计算资源连接在一起提供单个计算资源所无法完成的超级计算能力,这也是狭义上的网格计算跟云计算概念上最大的差别,也是本文要讨论的出发点。
目标不同
一般来说,谈到网格计算大家都会想到当年风靡一时的搜寻外星人项目,也就是说通过在本机安装一个屏幕保护软件,就能够利用大家每个人的PC闲暇时候的计算能力来参与搜寻外星人的计算。
这也说明了网格的目标,是想要尽可能地利用各种资源。它通过特定的网格软件,将一个庞大的项目分解为无数个相互独立的、不太相关的子任务,然后交由各个计算节点进行计算。即便某个节点出现问题,没有能够及时返回结果,也不影响整个项目的进程,甚至即便某一个计算节点突然崩溃,其所承担的计算任务也能够被任务调度系统分配给其他的节点继续完成。应该说,从这一点来说,作业调度是网格计算的核心价值。
现在谈到云计算的时候,我们就能够立刻想到通过互联网将数据中心的各种资源打包成服务向外提供。一般来说,尽管云计算也像网格计算一样将所有的资源构筑成一个庞大的资源池,但是云计算向外提供的某个资源,是为了完成某个特定的任务。比如说某个用户可能需要从资源池中申请一定量的资源来部署其应用,而不会将自己的任务提交给整个网格来完成。
从这一点来看,网格的构建大多为完成某一个特定的任务需要,这也是会有生物网格、地理网格、国家教育网格等各种不同的网格项目出现的原因。而云计算一般来说都是为了通用应用而设计的,没有专门的以某种应用命名的网格。
分配资源方式的不同
对于网格计算来说,其资源虽然也已经被池化,在外界看来就是一个巨大的资源池。对于要提交特定任务的用户来说,他并不知道自己的任务将会在哪些网格的物理节点上运行。他只是按照特定的格式,将作业任务提交给网格系统,然后等待网格返回结果。
而网格作业调度系统自动找寻与该任务相匹配的资源,然后寻找出空闲的物理节点,将任务分配过去直至完成。虽然网格能够实现跨物理机进行并行作业处理,但是需要用户先将并行算法写好,并且通过调度系统将作业分解到各个不同的物理节点进行,这个过程相对比较复杂,这也是很多网格计算被建设用来完成特定需求的原因。
国家教育网格项目组负责人金海教授曾经对记者表示,现阶段的教育网格还只能实现将某一个特定任务派往特定的某一个节点,也就是说网格可以监控某一个节点是空闲的,然后分派任务,但是如果没有合适的节点能够达到任务完成所需要的配置,那么任务就必须等待其他任务将资源释放出来,不能利用分散的配置。
而云计算是通过虚拟化将物理机的资源进行切割,从这个角度来实现资源的随需分配和自动增长,并且其资源的自动分配和增减不能超越物理节点本身的物理上限。尽管从控制端来看,云计算也将所有的IT资源看成是一个资源池,但是不同芯片的物理机会被归类到不同的资源池中。
比如说可以呼应某一个应用的请求,而给其分配一颗x86 CPU或者Power CPU、安腾CPU,分配内存和硬盘空间,再给其安装Linux系统、相关的应用,但是不能同时分配一颗x86 CPU和一颗其他的CPU以构成一个异构的环境。而且,如果节点中的物理机最高CPU数量是4颗的话,那么即使由10台这样的节点构成一个40CPU的资源池,也不能为某一个应用分配8颗CPU的虚拟节点。
从这种角度来说,Amazon在2006年所推出的EC2项目(Elastic Compute Cloud,弹性计算云)的确算得上是云计算项目,只不过那个时候云计算概念未兴起,而网格计算的概念方兴未艾,Amazon在那个时候依然用网格的概念向外推销该项目。
殊途同归
其实就像很多人大致了解的那样,网格计算与云计算的确有很多的相似之处,这两者都能够被看成是分布式计算所衍生出来的概念,都是为了让IT资源能够对用户透明,为了让IT资源能够达到更好的使用率。
从这个提高资源利用率的角度出发,逐渐诞生了Web服务的概念,然后网络公司通过部署数以万计的服务器构成庞大的计算资源,得以提供此前无法完成的新服务。企业或者个人能够通过互联网利用那些大网络公司所释放出来的计算资源,进行应用部署或者向外提供服务。这就是从网格计算到云计算的历史过程。
二者的意义就在于,无论是用户还是企业开发者,都能够通过互联网来获得数据或者进行计算,尽管本地资源有限,但是能够通过网络进行复杂的运算,其数据的计算过程对于用户来说就像互联网网络对于本地网络用户一样,正如大家所记得那个网络云,后端的实现是透明的。
所谓分布式计算是一门计算机科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。最近的分布式计算项目已经被用于使用世界各地成千上万位志愿者的计算机的闲置计算能力,通过因特网,您可以分析来自外太空的电讯号,寻找隐蔽的黑洞,并探索可能存在的外星智慧生命;您可以寻找超过1000万位数字的梅森质数;您也可以寻找并发现对抗艾滋病病毒的更为有效的药物。这些项目都很庞大,需要惊人的计算量,仅仅由单个的电脑或是个人在一个能让人接受的时间内计算完成是决不可能的。
分布式计算是利用互联网上的计算机的中央处理器的闲置处理能力来解决大型计算问题的一种计算科学。在两个或多个软件互相共享信息,这些软件既可以在同一台计算机上运行,也可以在通过网络连接起来的多台计算机上运行。
2、网格计算
首先网格计算也是一种分布式计算。
网格计算通过利用大量异构计算机(通常为桌面)的未用资源(CPU周期和磁盘存储),将其作为嵌入在分布式电信基础设施中的一个虚拟的计算机集群,为解决大规模的计算问题提供了一个模型。网格计算的焦点放在支持跨管理域计算的能力,这使它与传统的计算机集群或传统的分布式计算相区别。
网格计算的设计目标是解决对于任何单一的超级计算机来说仍然大得难以解决的问题,并同时保持解决多个较小的问题的灵活性。这样,网格计算就提供了一个多用户环境。它的第二个目标就是:更好的利用可用计算力,迎合大型的计算练习的断断续续的需求。
有了网格计算技术,您可以将服务器、存储系统和网络联合在一起,组成一个大的系统,从而为用户提供功能强大的多系统资源来处理特定的任务。对于最终用户或应用程序来说,数据文件、应用程序和系统看起来就像是一个巨大的虚拟计算系统。
网格计算与其他所有的分布式计算范例都有所区别:网格计算的本质在于以有效且优化的方式来利用组织中各种异构松耦合资源,来实现复杂的工作负载管理和信息虚拟化功能。
参考资源:
网格观点: 网格计算 —— 下一代分布式计算
网格计算: 关键组件是什么?
3、云计算
概念
云计算(Cloud Computing)是分布式处理(Distributed Computing)、并行处理(Parallel Computing)和网格计算(Grid Computing)的发展,或者说是这些计算机科学概念的商业实现。
云计算的基本原理是,通过使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器中,企业数据中心的运行将更与互联网相似。这使得企业能够将资源切换到需要的应用上,根据需求访问计算机和存储系统。
这可是一种革命性的举措,打个比方,这就好比是从古老的单台发电机模式转向了电厂集中供电的模式。它意味着计算能力也可以作为一种商品进行流通,就像煤气、水电一样,取用方便,费用低廉。最大的不同在于,它是通过互联网进行传输的。
云计算的蓝图已经呼之欲出:在未来,只需要一台笔记本或者一个手机,就可以通过网络服务来实现我们需要的一切,甚至包括超级计算这样的任务。从这个角度而言,最终用户才是云计算的真正拥有者。
云计算的应用包含这样的一种思想,把力量联合起来,给其中的每一个成员使用。
云计算的几大形式
SAAS(软件即服务)
这种类型的云计算通过浏览器把程序传给成千上万的用户。在用户眼中看来,这样会省去在服务器和软件授权上的开支;从供应商角度来看,这样只需要维持一个程序就够了,这样能够减少成本。Salesforce.com是迄今为止这类服务最为出名的公司。SAAS在人力资源管理程序和ERP中比较常用。 Google Apps和Zoho Office也是类似的服务
实用计算(Utility Computing)
这个主意很早就有了,但是知道最近才在Amazon.com、Sun、IBM和其它提供存储服务和虚拟服务器的公司中新生。这种云计算是为IT行业创造虚拟的数据中心使得其能够把内存、I/O设备、存储和计算能力集中起来成为一个虚拟的资源池来为整个网络提供服务。
网络服务
同SAAS关系密切,网络服务提供者们能够提供API让开发者能够开发更多基于互联网的应用,而不是提供单机程序。
平台即服务
另一种SAAS,这种形式的云计算把开发环境作为一种服务来提供。你可以使用中间商的设备来开发自己的程序并通过互联网和其服务器传到用户手中。
MSP(管理服务提供商)
最古老的云计算运用之一。这种应用更多的是面向IT行业而不是终端用户,常用于邮件病毒扫描、程序监控等等。
商业服务平台
SAAS和MSP的混合应用,该类云计算为用户和提供商之间的互动提供了一个平台。比如用户个人开支管理系统,能够根据用户的设置来管理其开支并协调其订购的各种服务。
互联网整合
将互联网上提供类似服务的公司整合起来,以便用户能够更方便的比较和选择自己的服务供应商。
云计算与网格计算的深入比较
在写这篇文章之前,曾经有很多人问过记者类似的问题,比如说:“云计算跟网格计算到底什么关系”、“它们两个的区别到底在哪里”、“能不能简单地讲一下其中的区别”?
其实,一下子很难讲清楚其中的具体区别。记者此前曾经在首次接触云计算概念时,将云计算看成“网格2.0”,这一点得到了一些业内人士的认可;后来记者也曾经翻译了美国《Network World》的一篇文章,澄清了有关云计算的一些定义(参见:云计算的五种定义考)。
不过,记者认为这些都似乎还比较空泛。在采访过网格计算相关的技术专家和云计算方面的技术专家之后,记者尝试着给出一些自己的看法。
当然,从定义上来说,二者都试图将各种IT资源看成一个虚拟的资源池,然后向外提供相应的服务。云计算试图让“用户透明地使用资源”,而网格计算当初的口号就是让“使用IT资源像使用水电一样简单”。
根据维基百科所提供的定义,云计算是一种宽泛的概念,它允许用户通过互联网访问各种基于IT资源的服务,这种服务允许用户无需了解底层IT基础设施架构就能够享受到作为服务的“IT相关资源”。
而网格的内涵包括两个方面,一个方面是所谓的效用计算或者随需计算,在这一点上面,网格计算跟云计算是非常相似的,都是通过一个资源池或者分布式的计算资源来提供在线的计算或者存储等服务;另外一个方面就是所谓的“虚拟超级计算机”,以松耦合的方式将大量的计算资源连接在一起提供单个计算资源所无法完成的超级计算能力,这也是狭义上的网格计算跟云计算概念上最大的差别,也是本文要讨论的出发点。
目标不同
一般来说,谈到网格计算大家都会想到当年风靡一时的搜寻外星人项目,也就是说通过在本机安装一个屏幕保护软件,就能够利用大家每个人的PC闲暇时候的计算能力来参与搜寻外星人的计算。
这也说明了网格的目标,是想要尽可能地利用各种资源。它通过特定的网格软件,将一个庞大的项目分解为无数个相互独立的、不太相关的子任务,然后交由各个计算节点进行计算。即便某个节点出现问题,没有能够及时返回结果,也不影响整个项目的进程,甚至即便某一个计算节点突然崩溃,其所承担的计算任务也能够被任务调度系统分配给其他的节点继续完成。应该说,从这一点来说,作业调度是网格计算的核心价值。
现在谈到云计算的时候,我们就能够立刻想到通过互联网将数据中心的各种资源打包成服务向外提供。一般来说,尽管云计算也像网格计算一样将所有的资源构筑成一个庞大的资源池,但是云计算向外提供的某个资源,是为了完成某个特定的任务。比如说某个用户可能需要从资源池中申请一定量的资源来部署其应用,而不会将自己的任务提交给整个网格来完成。
从这一点来看,网格的构建大多为完成某一个特定的任务需要,这也是会有生物网格、地理网格、国家教育网格等各种不同的网格项目出现的原因。而云计算一般来说都是为了通用应用而设计的,没有专门的以某种应用命名的网格。
分配资源方式的不同
对于网格计算来说,其资源虽然也已经被池化,在外界看来就是一个巨大的资源池。对于要提交特定任务的用户来说,他并不知道自己的任务将会在哪些网格的物理节点上运行。他只是按照特定的格式,将作业任务提交给网格系统,然后等待网格返回结果。
而网格作业调度系统自动找寻与该任务相匹配的资源,然后寻找出空闲的物理节点,将任务分配过去直至完成。虽然网格能够实现跨物理机进行并行作业处理,但是需要用户先将并行算法写好,并且通过调度系统将作业分解到各个不同的物理节点进行,这个过程相对比较复杂,这也是很多网格计算被建设用来完成特定需求的原因。
国家教育网格项目组负责人金海教授曾经对记者表示,现阶段的教育网格还只能实现将某一个特定任务派往特定的某一个节点,也就是说网格可以监控某一个节点是空闲的,然后分派任务,但是如果没有合适的节点能够达到任务完成所需要的配置,那么任务就必须等待其他任务将资源释放出来,不能利用分散的配置。
而云计算是通过虚拟化将物理机的资源进行切割,从这个角度来实现资源的随需分配和自动增长,并且其资源的自动分配和增减不能超越物理节点本身的物理上限。尽管从控制端来看,云计算也将所有的IT资源看成是一个资源池,但是不同芯片的物理机会被归类到不同的资源池中。
比如说可以呼应某一个应用的请求,而给其分配一颗x86 CPU或者Power CPU、安腾CPU,分配内存和硬盘空间,再给其安装Linux系统、相关的应用,但是不能同时分配一颗x86 CPU和一颗其他的CPU以构成一个异构的环境。而且,如果节点中的物理机最高CPU数量是4颗的话,那么即使由10台这样的节点构成一个40CPU的资源池,也不能为某一个应用分配8颗CPU的虚拟节点。
从这种角度来说,Amazon在2006年所推出的EC2项目(Elastic Compute Cloud,弹性计算云)的确算得上是云计算项目,只不过那个时候云计算概念未兴起,而网格计算的概念方兴未艾,Amazon在那个时候依然用网格的概念向外推销该项目。
殊途同归
其实就像很多人大致了解的那样,网格计算与云计算的确有很多的相似之处,这两者都能够被看成是分布式计算所衍生出来的概念,都是为了让IT资源能够对用户透明,为了让IT资源能够达到更好的使用率。
从这个提高资源利用率的角度出发,逐渐诞生了Web服务的概念,然后网络公司通过部署数以万计的服务器构成庞大的计算资源,得以提供此前无法完成的新服务。企业或者个人能够通过互联网利用那些大网络公司所释放出来的计算资源,进行应用部署或者向外提供服务。这就是从网格计算到云计算的历史过程。
二者的意义就在于,无论是用户还是企业开发者,都能够通过互联网来获得数据或者进行计算,尽管本地资源有限,但是能够通过网络进行复杂的运算,其数据的计算过程对于用户来说就像互联网网络对于本地网络用户一样,正如大家所记得那个网络云,后端的实现是透明的。
[错误报告] [推荐] [收藏] [打印] [关闭] [返回顶部]


已有