APP下载

云计算技术探秘及应用研究

2011-02-27高贵升

电脑与电信 2011年4期
关键词:应用程序虚拟化客户端

高贵升

(成都理工大学信息科学与技术学院,四川 成都 610059)

1.引言

云计算技术的出现是并行计算技术、软件技术、网络技术发展的必然结果。云计算是一种动态的易扩张的且通常是通过互联网提供虚拟化资源的计算方式,用户不需要了解云计算的内部细节,只需要通过与浏览器交互便可以得到自己想要的信息。

当今,很多国际大公司都推出了自己的“云计划”,比如亚马逊的AWS(Amazon Web Services)、故宫和IBM的“蓝云”计划等。可见云计算的发展已经步入了商业模式。云计算作为一种全新的网络服务方式,将传统的以桌面为核心的任务处理转变为以网络为核心的任务处理,利用互联网完成自己要实现的一切任务,使网络成为传递服务、计算力和信息的综合媒介,真正实现按需计算,多人协作。

2.云计算体系结构

云计算是一个强大的“云”网络,承载着众多并发的网格计算和服务,然后利用虚拟化技术扩展到每台服务器,将各自的资源整合起来提供超级计算和储存能力。如图1所示:

客户端:客户端是用户通过请求来获取服务的界面,这里就是云的入口,用户可以通过浏览器像常规一样经过注册、登录等取得服务和管理相关信息。打开实例与本地操作一样。

服务节点:该节点是用户操作的集合,用户根据自己的权限选择相应的服务,对服务可以在权限内进行各种操作。

管理系统和部署工具:提供管理和服务,管理用户并对用户授权、认证登录进行管理,以及管理可用的计算资源和服务,接受用户发送请求,根据用户请求转发到相应应用程序,调度资源和自动部署资源和应用,动态部署、配置和回收资源。

监控:监控和计算系统的资源使用情况,并迅速做出反应,完成节点同步部署,负载均衡和资源监控,确保资源能分配给合适的用户。

服务集群:虚拟的或物理的服务器,有管理系统管理,负责高并发量的请求处理、大运算量的计算处理,用户web应用服务,云数据存储时采用相应的数据切割算法用并行方式上传和下载大容量数据。

3.云计算服务的组成

云计算的服务可以划分成4个层次:应用层,平台层,基础服务层和虚拟化层。云计算的层次结构是可以分割的,每层都可以单独完成一项用户请求,不需要其它层次提供必要的服务和支持。

应用层对应 SaaS软件即服务,如:Goole APPS,SoftWare+Services。通过浏览器将程序传给要服务的用户,这些服务可能通过访问其它计算机的部件,比如软件,直接和最终用户通信,具体应用如亚马逊简单排列服务(Simple Queuing Service),谷歌地图(Google Maps)。

平台层对应PaaS平台即服务,如:Goole APPEngine。这种形式是提供开发环境、服务器平台、硬件资源等服务给用户,用户可以在服务商提供的基础架构上开发程序并可以通过互联网和其它服务器传给其他用户。

基础设施层对应IaaS基础设施即服务,如:Amazp EC2,IBM Blue。提供计算的基础设施平台,通常是虚拟化的环境作为一项服务。

虚拟化层对应硬件即服务,结合PaaS提供硬件服务,包括服务集群即硬件检测等服务。

4.云计算的核心技术

云计算作为一种超级计算方式,是一种以数据为中心的密集型计算技术。

4.1 典型的云计算平台

云计算作为一种商业化趋势,已经从理论产生出不同的架构。如亚马逊利用虚拟化技术提供的云计算服务,推出S3 (Simple Storage Service)提供可靠、快速、可扩展的网络存储服务,而弹性可扩展的云计算服务器EC2(Elastic Compute Clould)采用Xen虚拟化技术,提供一个虚拟的执行环境,让用户可以通过网络执行自己的程序。IBM将包括Xen和PowerVM虚拟的linux操作系统镜像与hadoop并行工作负载调度。下面将以Google公司的云计算核心技术和架构来讲解。

4.2 云计算核心技术

谷歌的云计算框架是“Google文件系统”,“BigTable大表”,“MapReduce算法”,谷歌公司的MapReduce和GFS (Google File System)是该公司的保密技术,而开源社区Apache的Hadoop项目则是此思想的克隆版。下面先看一下Google云的执行过程。如图2所示:

首先,系统把需要执行的程序复制到hadoop中的master和每台节点节worker中。然后master选择节点机来执行map和reduce程序,分配所有的数据块到执行map程序的节点机中执行,将map后的结果放入节点机中,执行reduce机器的节点机,远程读取每个map结果,整合汇总后执行reduce程序,最后把结果返回给用户端。

4.2.1 Google的GFS(Google File System)

GFS作为一种分布式文件系统与以前的分布式系统有类似的地方,比如性能、可扩展性、可靠性和可用性,应用于对大量数据进行访问。GFS隐藏下层负载均衡、冗余复制等细节,对上层程序提供一个统一的文件系统API接口。Google根据自己的需求对它进行了特别优化,尽量在普通的PC上运行,但它可以给大量用户提供高性能的服务。Google文件系统为分布式结构,它是一个高度容错的网络文件系统,主要 chunkserver由一个 Master和多个chunkserver构成,体系结构如图3所示。

首先,客户端使用固定大小的块将应用程序制定的文件名和字节偏移转化成文件的一个小块索引,向Master发送包含文件名和索引的请求。然后Master收到客户端的请求,向服务器发出命令,同时监控其它 chunkserver状态,chunkserver缓存Master从客户端收到的文件名和索引等信息。Master和 chunkserver通过交互,向客户端发送chunk-handle和副本位置,其中文件被分成若干个块,每个块都是一个全局的固定不变的唯一64位句柄标识。Handle是有Master再创建时分配的,一般每个文件默认会复制3次,以便在某个节点发生故障时可以从其它节点获取。客户端向其中一个副本发请求,请求中包含chunk handle和块内的一个字节空间。最后客户端就从chunkserver获取到块数据。

Google的文件系统是可以被多个用户访问的,一般应用程序和chunkserver是可以在同一台机器上的,主要的数据流量是通过应用程序和chunkserver之间,数据访问的本地性极大减少了应用程序与Master的交互,从而减少master的负荷,提高文件系统的性能。

Google文件系统总体上提供了高性能的服务,它有以下优势。首先Google采用的是低成本的大量分散的普通服务器作为存储方式,而且对大文件数据存取速度快。其次GFS容错能力强,一式多份,保证了系统的安全性,并且它容易扩展支持动态插入节点。再次GFS是相对HDFS稳定性较好的系统,它通过bigtable实现,支持高效访问。

4.2.2 MapReduce编程模型

MapReduce作为一种编程模型,不仅使用户能轻松享受到云带来的服务,更让用户能通过此模型来设计自己的程序。

这种模型的思想是将要执行的任务分成map和reduce的方式进行,先通过map程序将数据切割成不相关的块,分配给大量计算机出来来达到分布式效果,然后通过reduce汇总整合,返回最终结果。MapReduce实现的是一个map函数,把键值对(key/value)映射成新的键值对(key/value),形成一系列中间形式的key/value对,然后把它们传给reduce函数,把具有相同中间形式key的value合并到一起,map和reduce函数具有一定的关联性。

其中value1、value2可以是简单数据或者是一组数据,对应不同的映射函数规则。在map里把数据并行,也就是映射到函数规则分开,在reduce把分开的数据用函数合并到一起。MapReduce应用广泛,包括海量计算的数据输入、集群计算等。

4.2.3 分布式数据表BigTable

作为分布式平台的MapReduce自然不可缺少其对应的存储表,这就是BigTable,BigTable是一个有序稀疏多维的映射表,有良好的伸缩性和高可用性,用来将数据存储并部署到各个计算节点上。它把所有数据作为对象来处理,形成一个巨大表格,被设计用来存储海量数据。

5.云计算的应用

云计算的快速发展现在已经初见规模,其应用有Google的文档、Google App Engine和Amazon的网络服务等。

Google文档是谷歌推出的在线办公软件,它是开源的、基于web的字处理、电子表格和演示文稿程序。Google文档是Google实践软件即服务(SaaS)的云架构思想典范,作为云集成的一项应用,实现传统办公软件的同时,又引入云计算的诸多技术,多人协作办公而且不受地域限制。App Engine是在Google的基础架构上运行自定义的网络应用程序。可以根据用户的访问量和存储需要的增长进行扩展,其服务器的维护工作由Google负责,用户只需上传应用程序就可以立即为互联网用户服务。用户也可以使用GoogleApps从用户自己的域提供服务,应用程序可以设定通过互联网共享,也可以限制为只有用户组织内的成员可以访问。

6.我国云计算的应用

2010年5月,中搜在科博会云计算分论坛上高调推出了国内首个云应用平台,中搜以云计算为核心技术,结合中搜特有的微件技术以及垂直搜索引擎技术,面向细分化、垂直化市场为用户孵化创新应用的云服务,实现企业上下线资源整合、信息采集、无限扩展等个性化定制,帮助企业最大限度的拓展经营渠道。

浪潮集团在前不久也发布了“云海In-Cloud”战略,浪潮表示将重点发展高端服务器、海量储存等云硬件产品和云计算中心操作系统,并提及浪潮正积极的部署“行业云”以及云计算操作系统。而后,东软集团也与日本NEC公司签署合作协议,宣布将面向国内市场共同进军云计算领域。

7.结束语

目前云计算的发展方兴未艾,其各项技术都在不断完善和发展,许多国际大公司都在这方面投入了很多,我国云计算也初见端倪。云计算的发展也面临很多困难,比如数据的安全和隐私,数据访问和存储模型,缺乏标准和厂商锁定等等,这既是机遇也是挑战,不过相信不久的将来这些困难终会被克服,会有更多的云计算投入实用,推动更多科学技术的发展。

[1]张健.云计算概念和影响力解析[J].电信网技术,2009,(1):15-18.

[2]陈全,邓倩妮.云计算及其关键技术[J].计算机应用,2009,(9):2562-2567.

[3]李艳华. 云计算技术研究现状综述 [J]. 电脑知识与技术,2009,5(22):6314-6315.

[4]王鹏,董静宜.一种云计算架构的实现方法研究[J].计算机工程与科学,2009,31(A1):11-13.

猜你喜欢

应用程序虚拟化客户端
删除Win10中自带的应用程序
如何看待传统媒体新闻客户端的“断舍离”?
基于OpenStack虚拟化网络管理平台的设计与实现
谷歌禁止加密货币应用程序
对基于Docker的虚拟化技术的几点探讨
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
H3C CAS 云计算管理平台上虚拟化安全防护的实现
存储虚拟化还有优势吗?