理财

云计算的关键技术有哪些

  云计算近年来特别受欢迎,今天的编辑谈云计算的重要技术。

  云计算系统运用了很多技术,其中编程模型、数据管理技术、数据存储技术、虚拟化技术、云计算平台管理技术是最重要的。

  (1)编程模型

  MapReduce是Google开发的java、Python、Chop编程模型,是简化的分布式编程模型和高效的任务调度模型,用于大规模数据集(1TB以上)的并行运算。严格的编程模型使云计算环境下的编程非常简单。MapReduce模式的思想是将要执行的问题分解为Map(映射)和Reduce(简化)的方式,首先通过Map程序将数据切割成不相关的块,分配(调度)进行大量的计算机处理,达到分布式运算的效果,然后通过Reduce程序将结果汇总输出。

  (2)大量数据分布存储技术

  云计算系统由大量的服务器成,同时为大量用户服务,因此云计算系统采用分布式存储的方式存储数据,并通过冗余存储的方式保证数据的可靠性。云计算系统中广泛使用的数据存储系统是谷歌GFS和Hadoop团队开发的GFS开源实现HDFS。

  GFS即谷歌文件系统。

  System)是一种可扩展的分布式文件系统,用于大型、分布式、访问大量数据。GFS的设计思想与传统的文件系统不同,是为了大规模的数据处理和谷歌的应用特性而设计的。运行在廉价的普通硬件上,但可以提供容错功能。可以为广大用户提供整体性能较高的服务。

  一个GFS集群由一个主服务器和大量的区块服务器组成,并被许多客户访问。主服务器存储文件系统的元数据包括姓名空间、访问控制信息、从文件到块的映射和块的当前位置。也控制系统范围的活动,如块租赁(lease)管理、孤儿块垃圾收集、块服务器之间的块转移。主服务器定期通过HeartBeat信息与各个块服务器通信,向块服务器发出指令,收集其状态。GFS中的文件分为64MB块,用冗馀存储,每个数据在系统中存储3个以上的备份。

  客户与主服务器的更换仅限于元数据的操作,所有数据方面的通信都直接与区块服务器联系,这大大提高了系统的效率,防止主服务器负载过重。

  (3)大量数据管理技术

  云计算需要处理和分析分布的大量数据,因此数据管理技术必须能够有效地管理大量数据。云计算系统中的数据管理技术主要是谷歌BT(BigTable)数据管理技术和Hadoop团队开发的开源数据管理模块HBase。

  BT以GFS、Scheduler、Lock

  Service和MapReduce上的大型分布式数据库与传统的关系数据库不同,以所有数据为对象进行处理,形成巨大的表格,用于大规模结构化数据的分布。

  谷歌的许多项目都使用BT来存储数据,包括网页查询和谷歌

  earth和谷歌金融。这些应用程序对BT的要求各不相同:数据大小(从URL到网页到卫星图像)不同,反应速度也不同(从后端的大量处理到实时数据服务)。对于不同的要求,BT提供了灵活高效的服务。

  (4)虚拟化技术

  通过虚拟化技术可以实现软件应用与基础硬件的隔离,包括将单个资源分为多个虚拟资源的分裂模式,将多个资源整合成虚拟资源的分裂模式。虚拟化技术根据对象分为存储虚拟化、计算虚拟化、网络虚拟化等,计算虚拟化分为系统级虚拟化、应用级虚拟化和桌面虚拟化。

  (5)云计算平台管理技术

  云计算资源规模庞大,服务器数量众多,分布在不同场所,同时运行数百种应用程序,如何有效管理这些服务器,保证整个系统提供持续服务是一个巨大的挑战。

  云计算系统的平台管理技术可以与大量服务器合作,方便业务配置和开通,迅速发现和恢复系统故障,通过自动化、智能化的手段实现大规模系统的可靠运营。