1、云计算的关键技术(数据存储技术、 数据管理技术、编程模型)云计算的关键技术(数据存储技术、 数据管理技术、编程模型)云计算系统运用了许多技术,其中以编程模型、数据管理技术、数据存储技术、虚拟化技术、云计算平台管理技术最为关键。1.1 编程模型MapReduce 是 Google 开发的 java、Python、C+编程模型,它是一种简化的分布式编程模型和高效的任务调度模型,用于大规模数据集(大于 1TB)的并行运算。严格的编程模型使云计算环境下的编程十分简单。MapReduce 模式的思想是将要执行的问题分解成Map(映射)和 Reduce(化简)的方式,先通过 Map 程序将数据切割成不相关
2、的区块,分配(调度)给大量计算机处理,达到分布式运算的效果,再通过 Reduce 程序将结果汇整输出。海量数据分布存储技术云计算系统由大量服务器组成,同时为大量用户服务,因此云计算系统采用分布式存储的方式存储数据,用冗余存储的方式保证数据的可靠性。云计算系统中广泛使用的数据存储系统是 Google 的 GFS 和 Hadoop 团队开发的 GFS 的开源实现HDFS。 GFS 即 Google 文件系统(Google File System) ,是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。GFS 的设计思想不同于传统的文件系统,是针对大规模数据处理和 Goog
3、le 应用特性而设计的。它运行于廉价的普通硬件上,但可以提供容错功能。它可以给大量的用户提供总体性能较高的服务。一个 GFS 集群由一个主服务器(master)和大量的块服务器(chunkserver)构成,并被许多客户(Client)访问。主服务器存储文件系统所以的元数据,包括名字空间、访问控制信息、从文件到块的映射以及块的当前位置。它也控制系统范围的活动,如块租约(lease)管理,孤儿块的垃圾收集,块服务器间的块迁移。主服务器定期通过 HeartBeat 消息与每一个块服务器通信,给块服务器传递指令并收集它的状态。GFS 中的文件被切分为 64MB 的块并以冗余存储,每份数据在系统中保存
4、 3 个以上备份。客户与主服务器的交换只限于对元数据的操作,所有数据方面的通信都直接和块服务器联系,这大大提高了系统的效率,防止主服务器负载过重。海量数据管理技术瑭锦云计算需要对分布的、海量的数据进行处理、分析,因此,数据管理技术必需能够高效的管理大量的数据。云计算系统中的数据管理技术主要是 Google 的 BT(BigTable)数据管理技术和 Hadoop 团队开发的开源数据管理模块 HBase。 BT 是建立在 GFS, Scheduler, Lock Service 和 MapReduce 之上的一个大型的分布式数据库,与传统的关系数据库不同,它把所有数据都作为对象来处理,形成一个巨
5、大的表格,用来分布存储大规模结构化数据。Google 的很多项目使用 BT 来存储数据,包括网页查询,Google earth 和 Google 金融。这些应用程序对 BT 的要求各不相同:数据大小(从 URL 到网页到卫星图象)不同,反应速度不同(从后端的大批处理到实时数据服务) 。对于不同的要求,BT 都成功的提供了灵活高效的服务。虚拟化技术通过虚拟化技术可实现软件应用与底层硬件相隔离,它包括将单个资源划分成多个虚拟资源的裂分模式,也包括将多个资源整合成一个虚拟资源的聚合模式。虚拟化技术根据对象可分成存储虚拟化、计算虚拟化、网络虚拟化等,计算虚拟化又分为系统级虚拟化、应用级虚拟化和桌面虚拟
6、化。云计算平台管理技术云计算资源规模庞大,服务器数量众多并分布在不同的地点,同时运行着数百种应用,如何有效的管理这些服务器,保证整个系统提供不间断的服务是巨大的挑战。云计算系统的平台管理技术能够使大量的服务器协同工作,方便的进行业务部署和开通,快速发现和恢复系统故障,通过自动化、智能化的手段实现大规模系统的可靠运营。1.2 云计算与传统超级计算技术、网格技术的区别一家票务公司要销售滚石乐队的告别演出门票,IT 部门经理担心,开始网上售票后,公司的服务器和软件会不会不堪重负?但实际上该公司并没有增加数十个服务器和存储系统,有关 IT 人员只是拧开开关,将公司的骨干网与一个“网格”相联。结果公司在
7、 3 分钟内销售了 90 万张门票,没有一个顾客因系统处理能力不足而被拒之门外。上述情景并非可望而不可及。网格作为一种能带来巨大处理、存储能力和其他 IT 资源的新型网络,可以应付临时之用。网格计算通过共享网络将不同地点的大量计算机相联,从而形成虚拟的超级计算机,将各处计算机的多余处理器能力合在一起,可为研究和其他数据集中应用提供巨大的处理能力。有了网格计算,那些没有能力购买价值数百万美元的超级计算机的机构,也能利用其巨大的计算能力。 20 世纪后半期,全世界范围掀起第三次产业革命的浪潮,人类开始迈入后工业社会信息社会。在信息经济时代,其先进生产力及科技发展的标志就是计算技术。时至今日,计算科
8、学,尤其是以超级计算机(或高性能计算机)为基础的计算科学已经与理论研究、实验科学相并列,成为现代科学的三大支柱之一。 现代超级计算基于先进的集群技术构建,即常说的网格计算技术。网格计算是伴随着互联网发展起来的,专门针对复杂科学计算的新型计算模式。这种计算模式利用互联网把分散在不同地理位置的电脑组织成一个虚拟的“超级计算机” ,其中每一台参与计算的计算机就是一个“节点” ,而整个计算是由成千上万个“节点”组成的“一张网格” ,所以称之为网格计算。这种“超级计算机”有两个优势,一个是数据处理能力超强,另一个是能充分利用网上的闲置处理能力。实际上,网格计算是分布式计算的一种。需要说明的是,网格计算是
9、一种传统的、更加专业化的定义方式,而超级计算则是更加通俗化的概念。两者从本质上是一致的。超级计算中心(即超算中心)是指基于超级计算机系统对外提供计算资源、存储资源以及技术咨询等服务的机构或单位。瑭锦超级计算在一个国家的发展中,特别是一些尖端科技的发展中,发挥着不可替代的作用,生物科技、石油勘探、气象预报、国防技术、工业设计、城市规划等经济、社会发展的关键领域都离不开超级计算。各个国家,尤其是经济、科技水平比较发达的国家,都把促进超级计算的发展作为重要的规划内容。超级计算与云计算如本刊前文所述,云计算是一种将全球范畴、高度可扩展、灵活的服务通过互联网进行发布与消费,采取按需求和实际使用付费的商业
10、模式。云计算代表着全新的价值:它可以让企业获得高度可扩展和灵活的互联网服务;SaaS 的瘦客户端应用减轻了软件的采购和维护成本;所有的功能都以服务的方式提供给用户。云计算是从网格计算演化而来,能够随需应变地提供资源。网格计算可以在云中,也可能不在,这取决于什么样的用户在使用它。如果用户是系统管理员和集成商,他们就会关心如何维护云,如升级、安装和虚拟化服务器与应用程序等;如果用户是消费者,就不必关心系统是如何运行的。网格计算与云计算有很多相似之处,两者都能够被看成是分布式计算所衍生出来的概念,都是为了让 IT 资源能够对用户透明,为了让IT 资源能够达到更好的使用率。从这个提高资源利用率的角度出
11、发,逐渐诞生了 WEB 服务的概念。网络公司通过部署数以万计的服务器构成庞大的计算资源,得以提供此前无法完成的新服务。企业或者个人能够通过互联网利用那些大网络公司所释放出来的计算资源,进行应用部署或者向外提供服务。这就是从网格计算到云计算的历史过程。网格计算和云计算的意义就在于:无论是用户还是企业开发者,都能够通过互联网来获得数据或者进行计算,尽管本地资源有限,但是能够通过网络进行复杂的运算,其数据的计算过程对于用户来说就像互联网网络对于本地网络用户一样。超级计算与云计算的相同点从定义上来说,网格计算和云计算都试图将各种 IT 资源看成一个可以对外提供相应服务的虚拟资源池。云计算试图让“用户透明地使用资源” ,而网格计算诞生的初衷就是“使用 IT 资源像使用水电一样简单” 。云计算是一种宽泛的概念,它允许用户通过互联网访问各种基于 IT资源的服务,并且用户无需了解底层 IT 基础设施架构就能够享受到作为服务的“IT 相关资源” 。而网格的内涵包括两个方面,一方面是所谓的效用计算或者随需计算,在这一点上,网格计算跟云计算是非常相似的,都是通过资源池或者分布式的计算资源来提供在线的计算、存储等服务;另外一方面就是所谓的“虚拟超级计算机” ,以松耦合的方式将大量的计算资源连接在一起,提供单个计算资源所无法完成的超级计算能力。从对外提供服务这一角度来看,网格计算跟云计算是非常类似的。