APP下载

云计算概念的产生、定义、原理及前景分析

2011-08-15斯琴其木格

赤峰学院学报·自然科学版 2011年12期
关键词:数据管理虚拟化编程

斯琴其木格

(赤峰学院 计算机与信息技术学院,内蒙古 赤峰 024000)

云计算概念的产生、定义、原理及前景分析

斯琴其木格

(赤峰学院 计算机与信息技术学院,内蒙古 赤峰 024000)

本文简述了云计算概念的产生、定义,简单介绍了云计算核心技术,并分析了云计算技术面临的问题和需要研究的方向,同时对云计算技术的前景进行了分析.

云计算;网络;虚拟化;数据存储

1 引言

在传统模式下,企业建立一套IT系统不仅需要购买硬件等基础设施,还要买软件的许可证,并需要专门人员维护.当企业的规模扩大时又要继续升级各种软硬件设施以满足需求.对于企业来说,计算机硬件和软件本身并非他们真正需要的,而只是完成工作、提供效率的工具而已.对个人来说,正常使用电脑需要安装许多软件,但是,对不经常使用该软件的用户来说这似乎有些浪费.能不能有一个这样的服务,给我们提供可以租用的软硬件资源?

这就是引用云计算概念的最初想法.云计算的想法可以追溯到20世纪60年代,John McCarthy曾经提到“计算迟早有一天会变成一种公用基础设施”.这就意味着计算能力可以作为一种商品进行流通,就像煤气、水电一样,取用方便、费用低廉.云计算最大的不同在于它是通过互联网进行传输的.从最根本的意义来说,云计算就是数据存储在云端,应用和服务存储在云端,充分利用数据中心强大的计算能力,实现用户业务系统的自适应性.

2007年10月IBM和Google宣布在云计算领域的合作后,云计算吸引了众多人的关注,并迅速成为产业界和学术界研究的热点[1].

2 云计算的概念

云计算(Cloud Computing)是由分布式计算(Distributed Computing)、并行处理(Parallel Computing)、网格计算(Grid Computing)发展来的,是一种新兴的商业计算模型.目前,对于云计算的认识在不断的发展变化,云计算仍没有普遍一致的定义.号称“网格之父”的美国Argonne国家实验室的资深科学家、Globus项目的领导人Ian Foster在“Cloud Computing and Grid Computing 360-Degee Compared”一文中这样定义云计算:“云计算是由规模经济拖动,为互联网上的外部用户提供一组抽象的、虚拟化的、动态可扩展的、可管理的计算资源能力、存储能力、平台和服务的一种大规模分布式计算的聚合体”.中国网格计算、云计算专家刘鹏给出如下定义:“云计算将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和各种软件服务”[2].

通俗的理解是,云计算的“云”就是存在于互联网上的服务器集群上的资源,它包括硬件资源(服务器、存储器、CPU等)和软件资源(如应用软件、集成开发环境等),本地计算机只需要通过互联网发送一个需求信息,远端就会有成千上万的计算机为你提供需要的资源并将结果返回到本地计算机,这样,本地计算机几乎不需要做什么,所有的处理都在云计算提供商所提供的计算机群来完成.

3 云计算的核心技术

云计算系统运用了许多技术,其中以编程模型、数据管理技术、数据存储技术、虚拟化技术、云计算平台管理技术最为关键.

3.1 编程模型

MapReduce是Google开发的java、Python、C++编程模型,它是一种简化的分布式编程模型和高效的任务调度模型,用于大规模数据集(大于1TB)的并行运算.严格的编程模型使云计算环境下的编程十分简单.MapReduce模式的思想是将要执行的问题分解成映射(Map)和化简(Reduce)的方式,先通过Map程序将数据切割成不相关的区块,分配(调度)给大量计算机处理,达到分布式运算的效果,再通过Reduce程序将结果汇总整合并输出.

3.2 海量数据分布存储技术

云计算系统由大量服务器组成,同时为大量用户服务.因此,云计算系统采用分布式存储的方式存储数据,用冗余存储的方式保证数据的可靠性.云计算系统中广泛使用的数据存储系统是Google的GFS和Hadoop团队开发的GFS的开源实现HDFS(Hadoop Distributed File System).GFS即Google文件系统(Google File System)是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用.GFS的设计思想不同于传统的文件系统,是针对大规模数据处理和Google应用特性而设计的.它运行于廉价的普通硬件上,但可以提供容错功能.它可以给大量的用户提供总体性能较高的服务.一个GFS集群由一个主服务器(master)和大量的块服务器(chunkserver)构成,并被许多客户访问.主服务器存储文件系统所有的元数据,包括名字空间、访问控制信息、从文件到块的映射以及块的当前位置.它也控制系统范围的活动,如块租约(lease)管理,块的垃圾收集,块服务器间的块迁移.主服务器定期通过HeartBeat消息与每一个块服务器通信,给块服务器传递指令并收集它的状态.GFS中的文件被切分为64MB的块并以冗余存储,每份数据在系统中保存3个以上备份.客户与主服务器的交换只限于对元数据的操作,所有数据方面的通信都直接和块服务器联系,这种机制大大提高了系统的效率,防止主服务器负载过重.

3.3 海量数据管理技术

云计算需要对分布的、海量的数据进行处理、分析.因此,数据管理技术必需能够高效的管理大量的数据.云计算系统中的数据管理技术主要是Google的BT(BigTable)数据管理技术和Hadoop团队开发的开源数据管理模块HBase.BT是建立在GFS,Scheduler,Lock Service和MapReduce之上的一个大型的分布式数据库.与传统的关系数据库不同,它把所有数据都作为对象来处理,形成一个巨大的表格,用来分布存储大规模结构化数据.Google的很多项目使用BT来存储数据,包括网页查询,Google earth和Google金融.这些应用程序对BT的要求各不相同:数据大小(从URL到网页到卫星图象)不同,反应速度不同(从后端的大批处理到实时数据服务).对于不同的要求,BT都成功地提供了灵活高效的服务.

3.4 虚拟化技术

通过虚拟化技术可实现软件应用与底层硬件相隔离,它包括将单个资源划分成多个虚拟资源的分裂模式,也包括将多个资源整合成一个虚拟资源的聚合模式.虚拟化技术根据对象可分成存储虚拟化、计算虚拟化、网络虚拟化等,计算虚拟化又分为系统级虚拟化、应用级虚拟化和桌面虚拟化.

3.5 云计算平台管理技术

云计算资源规模庞大,服务器数量众多并分布在不同的地点,同时运行着数百种应用,如何有效的管理这些服务器,保证整个系统提供不间断的服务是巨大的挑战.云计算系统的平台管理技术能够使大量的服务器协同工作,方便地进行业务部署和开通,快速发现和恢复系统故障,通过自动化、智能化的手段实现大规模系统的可靠运营.

4 云计算技术发展面临的主要问题

实现云计算系统面临着诸多挑战,现有的云计算系统的部署相对分散,各自内部能够实现虚拟内存的自动分配、管理和容错等,但云计算系统之间的交互还没有统一的标准.关于云计算系统的标准化工作还需要更进一步的研究.还有一系列亟待解决的问题.

首先云计算系统中,用户数据存储在云端,如何保证用户的数据不被非法访问和泄露是系统必须要解决的两个重要问题,即数据的安全和隐私问题.同时云计算系统本身的可扩展性、可用性、可靠性、可管理性等都是要重点解决的问题.在服务的层次上,云计算系统必须要解决服务的描述及转换问题,如何将用户的业务理念需求转换成对基础设施的需求、如何确定高层的服务需求和度量到基础设施的需求和度量之间的映射、如何保证多级别的QoS,这些都是云计算系统要解决的问题.在云计算系统的管理方面,云系统之间的互操作是必须要考虑的一个问题.当一个云系统需要使用另外一个云系统的计算资源时,要能够提供跨云的管理策略,从而使得云系统之间能够自动交互.同时为了保证SLA(Service-Level Agreement),系统必须能够进行SLA的监测,当有服务失败时,自动地进行资源的重新分配.在基础设施层次上,云计算系统要能够进行服务的动态迁移,目前的虚拟机只支持共享存储的迁移,如何将虚拟机迁移到没有共享存储的其他物理主机上也是云计算系统面临的挑战之一[1].

5 结论

云计算的最终目标是将计算、服务和应用作为一种公共设施提供给公众,使人们能够像使用水、电、煤气和电话那样使用计算机资源.云计算模式即为电厂集中供电模式.在云计算模式下,用户的计算机会变的十分简单,或许不大的内存、不需要硬盘和各种应用软件,就可以满足我们的需求.因为用户的计算机除了通过浏览器给“云”发送指令和接受数据外基本上什么都不用做便可以使用云服务提供商的计算资源、存储空间和各种应用软件.这就像连接“显示器”和“主机”的电线无限长,从而可以把显示器放在使用者的面前,而主机放在远到甚至计算机使用者本人也不知道的地方.云计算把连接“显示器”和“主机”的电线变成了网络,把“主机”变成云服务提供商的服务器集群.在云计算环境下,用户的使用观念也会发生彻底的变化:从“购买产品”到“购买服务”转变,因为他们直接面对的将不再是复杂的硬件和软件,而是最终的服务.

〔1〕张建勋,古志民,郑超.云计算研究进展综述[J].计算机应用研究,2010,27(2):429,433.

〔2〕申丽君 杨兰娟 赵华.云计算与网格计算的比较研究[J].Computer Know ledge and Technology电脑知识与技术,Vol.7,No.17,June 2011,pp,4032-4034,4037.

TP183

A

1673-260X(2011)12-0030-02

猜你喜欢

数据管理虚拟化编程
企业级BOM数据管理概要
定制化汽车制造的数据管理分析
海洋环境数据管理优化与实践
编程,是一种态度
元征X-431实测:奔驰发动机编程
CTCS-2级报文数据管理需求分析和实现
编程小能手
纺织机上诞生的编程
基于OpenStack虚拟化网络管理平台的设计与实现
对基于Docker的虚拟化技术的几点探讨