赞
踩
引言:
近年来, 业界对高级计算能力的需求的日益增长,导致了信息技术的突破和数据科学的崛起。其中,云计算作为分布式计算中的一种高效率的架构方案,引起了产业界、学术界和政府部门的高度关注。云计算以对海量数据的处理技术优势,推动当今高新技术的变革和产业结构的升级。本文介绍了云计算诞生的背景和基本概念,并详细介绍了核心技术概况,并对云计算未来的发展趋势进行了展望。
关键词:云计算,大数据,分布式计算
一、云计算背景:
早在20世纪60年代, 美国科学家约翰·麦卡锡 (John Mc Carthy) 就提出将计算能力作为一种公共设施提供给公众, 使人们能够像使用水、电那样使用计算资源。针对此问题, 可以通过将所有的计算资源集中起来, 采用类似“效用计算”和“软件即服务”的分布式计算技术为人们提供“随需随用”的计算资源。在此背景下, 用户的使用观念会发生彻底的改变, 即从“购买产品”到“购买服务”转变, 因为他们直接面对的不再是复杂的硬件和软件, 而是最终的服务。用户不需要拥有看得见、摸得着的硬件设施, 也不需要为机房配置专门维护人员等, 只需要把钱汇给服务的提供商, 就会得到所需的服务。
伴随着互联网技术的发展和普及, 特别是Web2.0的飞速发展, 各种媒体数据呈现指数增长, 逐步递增的海量异构媒体数据以及数据和服务的Web化趋势使得传统的计算模式在进行大数据处理时, 其表现有些力不从心。比如传统计算模型至少在以下两个方面已经不能适应新的需求:一是计算速度上受限于内核性能和个数;二是待处理数据量受限于内存和磁盘容量。对此, 人们很容易想到, 能否将数量可观的计算机连接起来以获得更快的计算速度、更强大的处理能力和存储能力?
针对上述构思的解决方案,在谷歌(Google)、亚马逊(Amazon)等著名IT企业大力推动下,为实现资源和计算能力的共享以及应对互联网上各种媒体数据高速增长的势头,提出了- -种以数据为中心的新的商业计算模式一云计算 (Cloud Computing)。
二、云计算概述:
云计算(Cloud Computing)是由分布式计算(Distributed Computing)、并行处理(Parallel
Computing)、网格计算(Grid Computing)发展来的,是一种新兴的商业计算模型。目前,对于云计算的认识在不断的发展变化,云计算没仍没有普遍一致的定义。中国网格计算、云计算专家刘鹏给出如下定义 :“云计算将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和各种软件服务”。
计算并不是一个全新的概念。 它是并行计算、分布式计算和网格计算的发 展,或者说是虚拟化、效用计算、软件即服务等概念混合演进并跃升的结果。 计算为人们描绘出了一个诱人的蓝图。在云环境下,通过虚拟化技术建立的功能强大的、具有可伸缩性的数据和服务中心,为用户提供足够强的计算能力和足够大的存储空间。在任何时间和任何地点,户只要拥有一个可以上网的终端比如手机,就可以访问云,实现随需随用。为了实现这一宏伟蓝图, 诸多关键性的技术或理论问题亟需解决,比如支撑云计算的是大规模的集群计算系统,当系统规模增大后,可靠性和稳定性就成为最大的挑战之一;云计算在发展过程中也会面临着各种挑战,比如在云计算环境下,绝大多数应用软件和数据信息都被转移到了云服务提供商的云数据中心,而最终享受云服务的用户对其所操作和产生的数据的物理存在状态是完全未知的,因此,如何确保用户数据的安全性和云服务提供商不泄露用户的隐私是云计算所面临的挑战之一。
云计算还处于萌芽阶段,有庞杂的各类厂商在开发不同的云计算服务。云计算的表现形式多种多样,简单的云计算在人们日常网络应用中随处可见,比如腾讯QQ空间提供的在线制作Flash图片,Google的搜索服务,Google Doc, Google Apps等。目前,云计算的主要服务形式有:SaaS(Software as a Service),PaaS(Platform as a Service),IaaS(Infrastructure as a Service)。
(1) 软件即服务 (SaaS)
SaaS服务提供商将应用软件统一部署在自己的服务器上,用户根据需求通过互联网向厂商订购应用软件服务,服务提供商根据客户所定软件的数量、时间的长短等因素收费,并且通过浏览器向客户提供软件的模式。
(2) 平台即服务 (PaaS)
即把开发环境作为一种服务来提供。这是一种分布式平台服务,厂商提供开发环境、服务器平台、硬件资源等服务给客户,用户在其平台基础上定制开发自己的应用程序并通过其服务器和互联网传递给其他客户。
PaaS能够给企业或个人提供研发的中间件平台,提供应用程序开发、数据库、应用服务器、试验、托管及应用服务。Google App Engine, Salesforce的force.com平台,八百客的800APP是PaaS的代表产品。以Google App Engine为例,它是一个由python应用服务器群、BigTable数据库及GFS组成的平台,为开发者提供一体化主机服务器及可自动升级的在线应用服务。用户编写应用程序并在Google的基础架构上运行就可以为互联网用户提供服务,Google提供应用运行及维护所需要的平台资源。
(3) 基础设施服务 (IaaS)
IaaS即把厂商的由多台服务器组成的“云端”基础设施,作为计量服务提供给客户。它将内存、I/O设备、存储和计算能力整合成一个虚拟的资源池为整个业界提供所需要的存储资源和虚拟化服务器等服务。这是一种托管型硬件方式,用户付费使用厂商的硬件设施。例如Amazon Web服务(AWS), IBM的BlueCloud等均是将基础设施作为服务出租。
IaaS的优点是用户只需低成本硬件,按需租用相应计算能力和存储能力,大大降低了用户在硬件上的开销。
三、云计算核心技术:
云计算是一种以数据为中心的数据密集型计算模式, 它是多种分布式计算技术及其商业模式演进的产物。其中,推进云计算产业发展的核心技术列举如下。
3.1 虚拟化技术
虚拟化技术由于其在提高基础设施可靠性和提升资源利用效率等方面的巨大优势,应用领域越来越广泛。特别是新兴起的云计算,更需要虚拟化技术的支撑。
虚拟化技术的起源最早可以追溯到1959年,克里斯托弗(Christopher Strachey)发表了一篇名为"Time Sharing in Large Fast Computers"的学术论文,这篇文章被认为是虚拟化技术的最早论述。随后的十几年,虚拟化技术过了初始发展阶段。20世纪60年代,国际商业机器公司IBM为期型机发明了一种虚拟机监控器技术。20世纪70年代后, IBM、HP和SUN等公司将虚拟化技术引入各自的高端精简指令集服务器和小型计算机中。由于不同厂商的产品和技术不能很好地兼容,使得虚拟化技术的发展进程有所减慢。1999年, 威睿(VM-ware)公司提出了一套似虚拟机监控器为中心的软件解决方案, 在全虛拟化模式中使PC服务器平台实现虚拟化。这是x86架构上的第一款虚拟化商用软件。 虚拟机技术从此进入个人计算机领域并重新得到快速发展。2003年, 用最新半虚拟化技术实现的开源虚拟监视器Xen推出,并在数据中心用户群体中流行开来。Xen的推出使得 虚拟化技术的研究和应用更加普及。在2005年和2006年,两大CPU生产商英特尔(Intel)和超微半导体公司AMD对硬件进行修改,分别推出支持硬件虚拟化技术的产品。这项技术改变了x86架构对虚拟化支持的效能,x86架构由此成为了虚拟化技术发挥作用的重要平台之一。
随着云计算的兴起,虚拟化技术走进了一个全面鼎盛的发展时期。虛拟机技术是云计算系统中的核心关键技术之- ,它是可以将各种计算及存储资源充分整合和高效利用的关键技术。过虚拟化手段将系統中的各种异构的硬件资源转换成为灵活统一的虚拟资源池, 从而形成云计算基础设施,为上层云计算平台和云服务提供相应的支撑。但是,虚拟化技术也会引入比物理主机更多的安全风险,因为同一物理主机上的虚拟机之间可以不经过防火墙与交换机设备相互访问。因此,使用虚拟技术的云计算平台须向其用户提供安全性和隔离保证。目前,已有很多研究者针对虚拟化系统和虚拟化管理的安全问题进行探讨,有学者提出基于嵌套虚拟化技术的可信基构建方法、基于现有硬件特性的安全监控和基于高权限虚拟机的数据隔离机制,为河信云服务提供了新的途径。
3.2 编程模式
高性能计算机的发展促使高效能程序设计环境的产生与发展。然而,基于传统并行编程模型的高效并行程序的编写并不容易。同时,随着领域中数据高速的增长,传统并行计算编程模型在处理大数据集时也存在性能瓶颈。针对. 上述2个问题, Google公司研发了-种新的并行编程模型Map Reduce。作为一种解决方案, Map Reduce计算模型有效地解决了传统算法处理大数据集时的性能瓶颈问题,同时它以易使用和易理解的方式简单高效地解决了传统并行计算编程效率不高的问题。
伴随着应用范围的扩大, Map Reduce的不足越来越明显。很多学者进行了相关的研究,对Map Reduce进行了改进。改进的Map Reduce模型,对Map和Reduce过程进行了优化,适应多核的Map Reduce并行编程支撑平台HPMR。针对Map Reduce计算框架不适合迭代计算和交互式计算的问题,加州伯克利大学的研究者开发了一个基于内存的计算框架Spark,它将数据尽可能放到内存中以提高迭代应用和交式应用的计算效率。针对Map Reduce不适合进行流式计算、实时分析等问题,人们开发了实时性要远好于Map Reduce的计算框架Storm[10]。
研究者还针对多核、多处理器等不同平台实现了Map Reduce模型。比如为了在多核平台.上高效地执行程序,斯坦福大学的科尔比(Colby)等人实现了一个基于多核平台的Map Reduce的系统Phoenix。针对GPU,香港科技大学与微软使用英伟达(NVIDIA)公司的CUDA技术,在GPU上实现了一个Map Reduce系统Mars[12]。
3.3 数据存储管理技术
云计算系统底层需要大数据的存储支持,可以对外提供云存储服务。云存储克服了传统存储系统在容量和性能扩展上存在的瓶颈,以其扩展性强、性价比高、容错性好等优势得到了业界的广泛认同。
为保证用户所存储数据的高可用和高可靠,云计算的分布式文件系统多采冗余的存储方式,即为同一份数据存储多个副本,比如Google的GFS和阿帕奇(Apache)的HDFS都是采用三副本来保证数据的冗余。这是一个简单有效但不是最优的方法。针对此问题,研究者一直在探讨能否使用类似的策略在不降低存储可靠性的前提下降低存储副本数目。比如二代Google分布式文件系统Colossus, 即GFS2中使用里德-所罗门擦除码(Reed Solomon Erasure Code)实现成本更低的可靠存储。微软的Azure平台采用擦除码技术来降低存储成本。脸书(Facebook)在开源Hadoop的基础上实现了一套基于擦除码的RAID方案。实验表明,对同样的数据,此方案能够节约25%- -30%的HDFS集群的存储空间。
由于云计算对大数据的读操作频率远大于数据的更新频率,因此,计算的数据管理通常会采用分布式列存储技术。列存储模型最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者几列的查询应用有着非常大的/O优势。当前比较典型的基于列存储模型的分布式数据存储系统是Google公司的BigTable和Apache的HBase。
3.4 节能技术
在云计算环境中, 数据中心是云计算硬件架构底层的独立计算单位。数据中心的基础设施通常由数以万计的计算机构成,随之而来的一个亟待解决的问题是数据中心巨大的能源消耗。针对此问题,国内外学者及相关机构已经对诸多节能技术进行研究,很多降低能耗的方法被提出。
3.5 云计算平台管理技术
云计算资源规模庞大,服务器数量众多并分布在不同的地点,同时运行着数百种应用,如何有效的管理这些服务器,保证整个系统提供不间断的服务是巨大的挑战。云计算系统的平台管理技术能够使大量的服务器协同工作,方便的进行业务部署和开通,快速发现和恢复系统故障,通过自动化、智能化的手段实现大规模系统的可靠运营。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。