浅谈云计算及其发展
毛麾民
【摘 要】 近几年来,伴随着多核处理器、虚拟化、分布式存储、宽带互联网和自动化管理等技术的发展,云计算技术也成为了IT领域的研究热点及继Web 2.0之后的又一个流行词。在网络飞速发展的今天,云计算仍然有着极大的发展空间。本文将和大家一起探讨云计算的技术和发展趋势。 【期刊名称】技术与市场 【年(卷),期】2011(018)010 【总页数】2
【关键词】云计算;网格计算;编程模型
云计算作为一项技术手段,是分布式计算技术的一种具体表现形式,其透过网络将庞大的计算处理程序自动分拆成无数个较小的子程序,再交由多部服务器所组成的庞大系统,经搜寻、计算分析之后将处理结果回传给用户。透过这项技术,网络服务提供者可以在数秒之内,达成处理数以千万计甚至亿计的信息,达到和“超级计算机”同样强大效能的网络服务。当然,云计算作为一种时尚的概念,它的目标是把一切都拿到网络上。
1 云计算的特点
云计算的核心思想是将大量用网络连接的计算资源统一管理和调度,构成一个计算资源池为用户按需服务。相应的,它具备如下特点:
(1)虚拟化技术:这是云计算最强调的特点,包括资源虚拟化和应用虚拟化。云计算系统提供的是服务,其实现机制对用户透明,用户无需了解云计算的具体机制,就可以获得需要的服务。
(2)动态可扩展:通过动态扩展虚拟化的层次达到对应用进行扩展的目的,可以实时将服务器加入到现有的服务器机群中,增加“云”的计算能力。 (3)按需部署:用户运行不同的应用需要不同的资源和计算能力,云计算平台可以按照用户的需求部署资源和计算能力。
(4)高灵活性:软件、硬件、操作系统、存储网络等所有要素通过虚拟化,放在云计算虚拟资源池中进行统一管理。同时,能够兼容不同硬件厂商的产品,兼容低配置机器和外设而获得高性能计算。
(5)高可用性:通过集成海量存储和高性能的计算能力,能够提供较高的服务质量。云计算系统可以自动检测失效节点,并将失效节点排除,不影响系统的正常运行。
(6)高可靠性:虚拟化技术的用户的应用和计算分布在不同的物理服务器上面,即使单点服务器崩溃,仍然可以通过动态扩展功能部署新的服务器作为资源和计算能力添加进来,保证应用和计算的正常运转。
(7)高性价比:云计算采用虚拟资源池的方法管理所有资源,对物理资源的要求较低。可以使用廉价的PC组成云,而计算性能却可超过大型主机。
2 云计算的编程模型
云计算大部分采用Map—Reduce的编程模式。Map-Reduce不仅仅是一种编程模型,同时也是一种高效的任务调度模型。Map—Reduce这种编程模型并不仅适用于云计算,在多核和多处理器、cell processor以及异构机群上同样有良好的性能。
Map—Reduce是一种处理和产生大规模数据集的编程模型,程序员在Map函数中指定对各分块数据的处理过程,在Reduce函数中指定如何对分块数据
处理的中间结果进行归约,用户只需要指定map和reduce函数来编写分布式的并行程序。当在集群上运行Map-Reduce程序时,程序员不需要关心如何将输入的数据分块、分配和调度,同时系统还将处理集群内节点失败以及节点间通信的管理等。执行一个Map-Reduce程序需要五个步骤:输入文件、将文件分配给多个worker并行地执行、写中间文件(本地写)、多个Reduce workers同时运行、输出最终结果。本地写中间文件在减少了对网络带宽的压力同时减少了写中间文件的时间耗费。执行Reduce时,根据从Master获得的中间文件位置信息,Reduce使用远程过程调用,从中间文件所在节点读取所需的数据。
Map—Reduce模型具有很强的容错性,当worker节点出现错误时,只需要将该worker节点屏蔽在系统外等待修复,并将该worker上执行的程序迁移到其他worker上重新执行,同时将该迁移信息通过Master发送给需要该节点处理结果的节点。Map-Reduce使用检查点的方式来处理Master出错失败的问题,当Master,出现错误时,可以根据最近的一个检查点重新选择一个节点作为Master,并由此检查点位置继续运行。
3 云计算和网格计算的比较
提起云计算,就不得不提到它的一个同胞——网格计算。网格计算即分布式计算,是一门计算机科学。它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终结果。其目的是,通过任何一台计算机都可以提供无限的计算能力,可以接入浩如烟海的信息。这种环境将能够使各企业解决以前难以处理的问题,最有效地使用他们的系统,满足客户要求并降低他