
摘要:云计算是在网格计算的基础上发展而来的,是一种新兴的计算模型;本文采用文献分析方法简述了云计算的定义、特点和基本结构,介绍了实现云计算的各项相关技术的研究现状,包括虚拟化技术、Web服务技术、编程模型,对已有的几个较有代表性的云计算系统进行了介绍并指出了当前云计算系统亟待解决的问题与下一步的研究方向,可为云计算相关研究提供参考。
关键字:云计算 云计算系统 云计算安全
Abstract:Cloud computing is developed on the basis of grid computing is an emerging computing model.This paper adopted the literature analysis method. First presented the definition,character and system architecture of the cloud computing. Then, reviewed the relevant techniques for building the cloud computing,including virtu2 alization technology,Web service technology and programming mode.l Finally,introduced several recently proposed cloud Computing system. It is an important target to implement the inter2 operation, QoS, and availability and security of cloud com2 putting system. Researchers of related topic can gain useful information about the cloud computing.
Key word: cloud computing; architecture; cloud computing security
引言
随着互联网时代信息与数据的快速增长, 科学、工程和商业计算领域需要处理大规模、海量的数据,对计算能力的需求远远超出自身IT架构的计算能力,这时就需要不断加大系统硬件投入来实现系统的可扩展性。另外,由于传统并行编程模型应用的局限性,客观上要求一种容易学习、使用、部署的新的并行编程框架。在这种情况下,为了节省成本和实现系统的可扩放性,云计算[ 1]的概念被提了出来。云计算是分布式计算、并行处理和网格计算的进一步发展,它是基于互联网的计算,能够向各种互联网应用提供硬件服务、基础架构服务、平台服务、软件服务、存储服务的系统。通常云系统由第三方拥有的机制提供服务,用户只关心云所提供的服务。
Google、IBM和Amazon这几个公司现对云计算( Cloud Computing) 技术进行大力开发,目的是通过终端设备的更加智能和快速,使个人和企业能够处理复杂的计算任务,云是指通过互联网来实现超级计算能力的资源,目前的依赖于个人电脑和服务器的状态将被未来服务信息的存储方式打破,软件和数据将会被存放于网络之中[ 2]; 因为云计算是开放的标准, 所以任何个人和企业用户都能够利用云端的计算和存储能力使自己的应用和数据存储得以完成,而且能在云上进行二次开发[ 3_4]。因此,近年来的云计算赢得了众多厂商和企业的关注并得到了长远发展[ 5]。
云计算的产生有其潜在的背景,随着Internet网络应用技术的发展和普及,尤其是Web2.0的发展导致网络用户和网络数据量高速增长,对数据的处理能力提出了更高的要求。此外,网络资源的需求和利用出现失衡状态,某些应用需要大量的网络资源,而大量的网络资源没有得到充分利用。因此,资源的整合和优化是网络发展的必然趋势,云计算应运而生。
1 云计算的体系简介
1.1云计算的定义
目前关于云计算系统没有统一的定义,云计算供应商根据自己企业业务推出相关的云计算战略。Hewitt[ 4]认为云计算系统主要是将信息永久地存储在云中的服务器上,在使用信息时只是在客户端进行缓存。客户端可以是桌面机、笔记本、手持设备等。WangLi2zhe等人[5]从云计算系统应该具有的功能角度给出了科学云计算系统的定义,指出计算云系统不仅能够向用户提供硬件服务HaaS( hardware as a service)、软件服务SaaS( software as a service)、数据资源服务DaaS( data as a ser2vice),而且还能够向用户提供能够配置的平台服务PaaS( plat2 formas a service)。因此用户可以按需向计算平台提交自己的硬件配置、软件安装、数据访问需求。Buyya等人[ 6]从面向市场的角度认为云计算是由一组内部互连的虚拟机组成的并行和分布式计算系统,系统能够根据服务提供商和客户之间协商好的服务等级协议动态提供计算资源。UCBerkeley[ 7]的观点认为: 云是指数据中心的硬件和系统软件,云分为公共云(对公众开放)和私有云(业务组织自己使用)。在公共云的基础上,云计算系统是指终端用户应用软件通过Internet以服务的形式由SaaS提供商交付,云提供商向SaaS提供商提供数据中心的硬件和软件服务。本文认为云计算系统是以付费使用的形式向用户提供各种服务的分布式计算系统,系统对用户来讲是透明的,其本质是对虚拟化的计算和存储资源池进行动态部署、动态分配/重分配、实时监控的系统,从而向用户提供满足QoS要求的计算服务、数据存储服务以及平台服务。
1.2云计算的原理
云计算(Cloud Computing)是分布式处理(Distributed Computing)、并行处理(Parallel Computing)和网格计算(Grid Computing)的发展,或者说是这些计算机科学概念的商业实现。
如下图1:
云计算的基本原理是,通过使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器中,企业数据中心的运行将更与互联网相似。这使得企业能够将资源切换到需要的应用上,根据需求访问计算机和存储系统。这可是一种性的举措,打个比方,这就好比是从古老的单台发电机模式转向了电厂集中供电的模式。它意味着计算能力也可以作为一种商品进行流通,就像煤气、水电一样,取用方便,费用低廉。最大的不同在于,它是通过互联网进行传输的。云计算的蓝图已经呼之欲出:在未来,只需要一台笔记本或者一个手机,就可以通过网络服务来实现我们需要的一切,甚至包括超级计算这样的任务。从这个角度而言,最终用户才是云计算的真正拥有者。
1.3云计算系统的特征
a)支持虚拟化,云计算系统可以看做是一个虚拟资源池。通过在一个服务器上部署多个虚拟机和应用,从而提高资源的利用率;当一个服务器过载时支持负载的迁移。
b)提供服务质量保证(QoS)。云计算系统能够向用户提供满足QoS要求的服务,能够根据用户的需求对系统作出调整, 如用户需要的硬件配置、网络带宽、存储容量等。
c)高可靠性、可用性和可扩放性。云计算系统必须保证向用户提供可靠的服务,保证用户能够随时随地地访问所需要的服务,并且用户的系统规模变化时,云计算系统能够根据用户的需求自由伸缩。
d)自治性。云计算系统是一个自治系统,系统的管理对用户来讲是透明的,不同的管理任务是自动完成的,系统的硬件、软件、存储能够自动进行配置,从而实现对用户按需提供。
1.4云计算的体系架构
云计算体系架构的五层结构表格如下表所示,其中有五层服务,均可以将Web Services的UI接口提供给用户,所有服务具有可靠、安全、可扩展、按需服务、经济等特点。此外,表中同时列出了五层服务的典型市场产品。云计算体系架构如下图2:
| 架构层次 | 服务形式 | 功能(by web) | 典型市场产品 |
| 应用层 | SaaS by web services | 本层在开发平台上开发各种应用程序,提供各种分布式应用服务 | Google Apps Salesforce CRM System |
| 开发平台层 | PaaS by web services | 本层在资源架构层之上构建开发平台,提供各种分布式开发服务 | Google App Engine Sales force Apex System |
| 资源架构层 | IaaS by web services Cloud DaaS by web services CaaS by web services | 本层在内核层之上构建计算资源架构,提供分布式计算务 本层在内核层之上构建存储资源架构,提供分布式存储服务 本层在内核层之上构建通信资源架构,提供基于局域网或Internet 的分布式通信服务 | AmazonEC2 Enomalism Elastic Cloud AmazonS3 EMC Storage Managed Service Microsoft CSF |
| 核心层 | KaaS by web services | 本层在物理资源层之上实现基本的分布式资源管理,通过各种抽象服务提供分布式应用的部署环境 | Globus Condor |
| 物理层 | HaaS by web services | 本层是构成云骨干的地理分布的局部资源,提供各种局部资源支持 | IBM- Morgan Stanley’s computing Sublease IBM’s Kitty hawk Project |
2.1当前云计算面临的问题
1)随着越来越多的企业将他们的业务或服务移到云端,首席信息官和首席信息安全官面临的一个重大问题就是云计算安全问题。云计算安全问题大致分为三个方面。一是云计算服务提供商的网络是否安全,有没有别人闯进去盗用我们的账号?他们提供的存储是安全的吗?会不会造成数据泄密?这些都需要云计算服务提供商们要解决、要向客户承诺的问题。二是用户在使用云计算提供的服务时也要注意:在云计算服务提供商的安全性和自己数据的安全性上做个平衡,太重要的数据不要放到云里,而是藏在自己的保险柜中;或将其加密后再放到云中,只有自己才能解密数据,将安全性的主动权牢牢掌握在自己手中,而不依赖于服务提供商的承诺和他们的措施。第三是用户要保管好自己的账户,防止他人盗取你的账号使用云中的服务,而让你埋单。
2)随着互联网技术的不断发展以及各种应用的增多,互联网的安全问题也遇到了更多的问题,今天的网络犯罪试图在人们毫无察觉的情况下悄悄窃取数据。他们经常转变成带有偷窃技术的恶意软件,例如 rootkit、加密、隐匿等,以越过当前为操作系统提供保护的安全解决方案。
3)由于云计算为用户带来的信息技术服务成本的显著降低和信息管理的极大便利,所以推动云计算前进的力量将势不可挡。在推动云计算的进程中,另一个广为关注并让客户担忧的问题是云计算的安全风险问题。由于云计算存在的一些新的特征——特别是计算过程发生在“云”端,所以其安全风险涉及到诸多方面,比如数据隔离、数据隐私、用户访问、数据恢复能力、服务商的生存能力等等。
2.2云计算安全关键技术
云安全架构的一个关键特点是云服务提供商所在的等级越低云服务用户自己所要承担的安全能力和管理职责就越多。下面对云计算安全领域中的数据安全、应用安全和虚拟化安全等问题(见下表)的应对策略和技术进行重点阐述。
云安全内容架构
云安全层次 安全内容
数据安全 数据传输、数据隔离、数据残留
应用安全 终端用户安全、SaaS安全、PaaS安全、IaaS安全
虚拟化安全 虚拟化软件、虚拟服务器
3云计算实现的相关技术
3.1虚拟化技术
云计算实现的关键技术是虚拟化技术。通过虚拟化技术, 单个服务器可以支持多个虚拟机运行多个操作系统和应用, 从而大大提高服务器的利用率, 通过虚拟化为应用提供了灵活可变、可扩展的平台服务。虚拟机技术的核心是Hypervi2sor(虚拟机监控程序), Hypervisor在虚拟机和底层硬件之间建立一个抽象层,它可以拦截操作系统对硬件的调用,为驻留在其上的操作系统提供虚拟的CPU和内存。目前VMwareESX[6]和CitrixXenServer[ 7]能直接运行在硬件上, 虚拟的操作系统又运行在Hypervisor之上,从而能够按照用户需求提供IT基础设施。
随着虚拟化技术的应用,对虚拟资源的管理是研究的热点之一。文献[11]提出一种方法将VM提供模型集成到现有的资源管理框架中,采用两级调度的方法将对VM的管理集成到批调度器中, 向用户提供最大努力的调度服务, 但目前不支持虚拟资源的预定服务。
传统的调度器对短期租赁请求调度时,要完成严格的预定资源服务租赁是很困难的。文献[ 12]提出使用虚拟机的无缝挂起和恢复计算的能力来解决这个问题。对于可用性要求不太严格的批量计算任务, 调度器先挂起当前计算任务, 然后去完成具有严格可用性要求的作业,如预定资源的作业。
当前的云计算系统如Scientific Cloud[ 8]、AmazonEC2[ 9]等一般是以虚拟机的形式来满足用户的计算资源需求,但用户需要根据自己的要求将这些虚拟机手动配置成一个工作集群。针对这种情况, 文献[ 10]通过对虚拟集群所需上下文环境的详细分析, 如虚拟机的IP地址、安全信息等, 提出了一种在多个虚拟机之间自动、快速部署上下文环境的机制( one2clickvir2tual clusters)。另外,虚拟专用网络VPN[11]的发展为用户在访问计算云的资源时提供了一个可以定制的网络环境。目前对于虚拟资源管理的研究, 在满足用户对虚拟资源的QoS需求及服务等级协议( service level agreement, SLA)方面还有待进一步研究。
3.2 Web服务与SOA
云服务一般是以Web服务的形式来实现的。在云中服务的组织和协同可以在面向服务的架构中进行管理。在SOA架构下的云服务可以部署在各种分布式平台上,也可以通过网络访问各种服务。近年来SOA得到了相当广泛的关注, 但它并不是一个新概念。早期一些基于网络的SOA的例子有RPC、DCOM和ORBs( object request brokers)等, 近期的网格计算就是基于SOA的架构和解决方案。
在一个SOA环境中,终端用户请求一个IT服务(或一组服务的集合),并希望这些服务满足一定的QoS要求,用户请求可以得到即时服务,或在一特定的延迟后满足。可以预期在未来十年, 基于服务的解决方案将是向个人和机构递交信息和其他IT相关功能的主要手段。例如软件应用、基于Web的服务、个人和商业的桌面机计算等。
3.3并行编程模型
随着Web2. 0的出现,互联网上的信息呈指数级增长,如搜索引擎、在线事务处理等应用系统处理数据的规模越来越大。云计算系统必须给用户提供一个简单易用的编程模型来并行处理用户的数据,从而更好地利用云计算系统的资源。因此研究者提出了一些分布式系统和并行编程模型来支持大规模数据处理。
Google文件系统GFS( Google file system) 被用来满足Google快速增长的数据处理需求。为发挥GFS集群的计算能力, Google提出了Map Reduce并行编程模型。Map Reduce是一个简化的并行编程计算模型,模型采用函数式编程中的函数来实现并行编程, 模型的核心操作是map和reduce。Map操作对每个元素进行操作并生成一组新数据, 原数据保持不变, 数据之间不存在相关, 因此map操作可以高度并行实现;reduce操作对map操作的中间结果进行合并, 并得到最后的输出。只需对map和reduce函数进行并行化处理便得到了MapRe2duce的基本框架。
Zaharia等人针对Map Reduce模型调度建立在系统同构的假设上对Map Reduce模型的调度进行了改进,设计了一种新的调度算法LATE( longest approximate time to end),使Map2Reduce能够在异构环境中高效运行。LiuHuan等人提出了另外一个并行编程模型Grid Batch。Grid Batch也是一个隐藏并行程序复杂性的并行编程模型,主要用来解决在计算云中大规模数据密集型应用的并行化问题。文献的整个工作与Google的Map Reduce模型相似, 但是GridBatch主要针对分析型应用,对Map Reduce模型作了优化,允许用户控制数据的划分, 减少了系统的通信开销。ChristopherMoretti等人[20]针对数据密集型云计算应用系统, 提出为用户提供一个抽象接口来定义任务的计算和存储需求,并以科学领域中的all2pairs问题为例实现了这个抽象接口。
GuYun2hong等人提出了不同于Map Reduce的另一种云编程模型sector and sphere。系统主要分为sector存储云和sphere计算云。与现有的数据云不同的是,sector存储云不仅支持数据在数据中心内存储, 还支持数据跨广域网络存储。Sector存储数据时并不把数据分成块( block)存储在各个节点,而是根据用户要求将大的数据集分成若干文件存储在各个节点上。Sphere是建立在sector和一组编程接口之上的计算服务, sphere没有使用Map Reduce作为计算模型,而是使用在GPU和多核处理器中常见的流数据处理模型( streamproces2singparadigm)。
综上所述, 并行编程模型的发展对云计算系统的推广实现具有极大的推动作用, 现有的云编程模型均是以Map Reduce编程模型为主, 编程模型的适用性方面还存在一定局限性, 还需要进一步的研究和完善。
4 云计算的应用
4.1 IBM云计算
IBM是最早进入中国的云计算服务提供商。中文服务方面做得比较理想,对于中国的用户应是一个不错的选择。07年,IBM公司发布了蓝云(Blue Cloud)计划,这套产品将通过分布式的全球化资源让企业的数据中心能像互联网一样运行。以后IBM的云计算将可能包括它所有的业务和产品线。
4.2微软云计算
目前来看微软的云计算发展最为迅速。微软将推出的首批软件即服务产品包括:Dynamics CRM Online、Exchange Online、Office Communications Online以及Share Point Online。每种产品都具有多客户共享版本,其主要服务对象是中小型企业。单客户版本的授权费用在5,000美元以上。针对普通用户,微软的在线服务还包括:Windows Live、Office Live和Xbox Live等。
4.3谷歌云计算
围绕因特网搜索创建了一种超动力商业模式。如今,他们又以应用托管、企业搜索以及其他更多形式向企业开放了他们的“云”。谷歌推出了谷歌应用软件引(Google App Engine,下称GAE),这种服务让开发人员可以编译基于Python的应用程序,并可免费使用谷歌的基础设施来进行托管(最高存储空间达 500MB)。对于超过此上限的存储空间,谷歌按每CPU内核每小时10至12美分及1GB空间15至18美分的标准进行收费。谷歌还公布了提供可由企业自定义的托管企业搜索服务计划。
4.4红帽云计算服务
红帽是云计算领域的后起之秀。红帽提供的是类似于亚马逊弹性云技术的纯软件云计算平台。它的云计算基础架构平台选用的是自己的操作系统和虚拟化技术,可以搭建在各种硬件工业标准服务器(HP、IBM、DELL等等)和各种存储(EMC、DELL、IBM、NetAPP等)与网络环境之中。表现为与硬件平台完全无关的特性,给客户带来灵活和可变的综合硬件价格优势。红帽的云计算平台可以实现各种功能服务器实例。
4.5亚马逊云计算
亚马逊作为首批进军云计算新兴市场的厂商之一,为尝试进入该领域的企业开创了良好的开端。亚马逊的云名为亚马逊网络服务(Amazon Web Services,下称AWS),目前主要由4块核心服务组成:简单存储服务(Simple Storage Service,S3);弹性计(Elastic Compute Cloud,EC2);简单排列服务(Simple Queuing Service)以及尚处于测试阶段的Simple DB。换句话说,亚马逊现在提供的是可以通过网络访问的存储、计算机处理、信息排队和数据库管理系统接入式服务。
5 云计算亟待解决的问题
实现云计算系统面临着诸多挑战,现有的云计算系统的部署相对分散,各自内部能够实现VM的自动分配、管理和容错等,但云计算系统之间的交互还没有统一的标准。关于云计算系统的标准化工作还需要更进一步的研究,还有一系列亟待解决的问题。首先云计算系统中,用户数据存储在云端,如何保证用户的数据不被非法访问和泄露是系统必须要解决的两个重要问题, 即数据的安全和隐私问题。同时云计算系统本身的可扩展性、可用性、可靠性、可管理性等都是要重点解决的问题。在服务的层次上,云计算系统必须要解决服务的描述及转换问题,如何将用户的业务理念需求转换成对基础设施的需求、如何确定高层的服务需求和度量到基础设施的需求和度量之间的映射、如何保证多级别的QoS,这些都是云计算系统要解决的问题。在云计算系统的管理方面,云系统之间的互操作是必须要考虑的一个问题。当一个云系统需要使用另外一个云系统的计算资源时,要能够提供跨云的管理策略,从而使得云系统之间能够自动交互。同时为了保证SLA,系统必须能够进行SLA的监测,当有服务失败时,自动地进行资源的重新分配。在基础设施层次上,云计算系统要能够进行服务的动态迁移,目前的虚拟机只支持共享存储的迁移[ 9 10],如何将虚拟机迁移到没有共享存储的其他物理主机上也是云计算系统面临的挑战之一。
6结束语
作为一种新型的计算模式,云计算利用高速互联网的传输能力使数据的处理过程由个人计算机或服务器转到互联网上的计算机集群中,给用户带来空前的计算能力。虽然目前的云计算还不能很好地解决所有问题, 但是未来一定会有越多的云计算系统被投入使用,云计算自身也会不断地完善,从而成为工业界和学术界的另一研究热点。云计算系统已经成为下一代IT的发展趋势,但是关于云系统的安全性、自治性、服务QoS、服务描述发现、云间交互等方面的研究仍显不足,仍需要进一步深入研究。
参考文献
[1] Wikipedia. Cloud computing[ EB/OL]. ( 2007203203) [ 2008212220]. http: //en. wikipedia. org/wiki/Cloud_computing.
[2] 陈国良,孙广中,徐云. 并行计算的一体化研究现状与发展趋势[J]. 科学通报, 2009, 54 (8): 1043_1049.
[3] 金海. 漫谈云计算[J]. 中国计算机学会通讯.2009.5 (6):22_25.
[4] Robert LG, Gu YH, Michael S, et al. Compute and storage clouds using wide area high performance networks [ J]. Future Generation Computer Systems, 2009, 25 (2): 179_183.
[5] Gu YH, Robert LG. Sector and sphere: the design and implementation of a high-performance data cloud [ J]. Philosophical Transactions of the Royal Society, 2009 (367): 2429_2445.
[ 6] VMw are virtualization technology[EB/OL]. [2008212215]. http: //www. vmware. com.
[7] BARHAMP, DRAGOVICB, FRASERK, etal. Xen and the art of virtualization[C] //Proc of the19th ACM Symposium on Operating Systems Principles. New York: ACM Press, 2003: 12177
[8] Nimbus Project. Science clouds[EB/OL]. [2008212210]. http: //workspace. globus. org/clouds/.
[9] Amazon elastic compute cloud (Amazon EC2) [ EB/OL]. [ 2008212221]. http: //aws. amazon. com/ec2
[10] KEAHEYK, FREEMANT. Contextualization: providing one2click virtual clusters[ C] //Proc of the4th IEEE International Conference
on e2Science. 2008: 3012308.
[11] GLEESONB, LINA, HEINANENJ, etal. RFC27, A frame work for IP based virtual private networks[ S]. Internet Engineering Task Force, 2000
[12] 王鹏,黄华锋,曹柯.云计算:中国未来IT战略.北京:人民邮电出版社,2010.
[13] 朱近之.智慧的云计算.北京:电子工业出版社,2010
