云计算研究综述
2015-05-29刘玮陈苗
刘玮+陈苗
摘要:云计算能够提供给用户可靠的,安全的,自定义的,分布式计算与存储服务,是未来最大化的利用计算机资源的重要途径。阐述了云计算的基本概念,剖析了云计算的体系结构相关服务模型。综述了实现云计算的主要关键技术,包括虚拟化技术,分布式数据处理与存储技术以及云计算安全技术。最后指出了云计算在实际应用的前景和挑战,为云计算的下一步研究提供参考。
关键词:云计算;体系结构;虚拟化;分布式;安全
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)10-0005-03
近年来,随着数据的快速增长以及用户对计算和存储能力的要求越来越高,计算模式由最初的把任务集中交付给大型处理机模式,到后来基于网络的分布式处理模式,再到近年来的按需处理的云计算(cloud computing)模式(图1)。从技术上来讲,云计算是一种融合了分布式计算、虚拟化技术、WEB服务和网格计算的新技术。它可以最大限度的降低用户端的软硬件采用费用,为用户提供及时的、安全的、可靠的服务,用户使用这些资源能够像使用水、电、天然气一样简单,可靠,因此云计算服务是当前信息技术领域最热门的话题之一,也是未来计算服务的重要趋势[1]。目前,国外各个IT巨头如IBM,Google,Sun,Microsoft,Amazon都推出了自己研发的云计算平台,国内云计算厂商BAT也在积极部署自己的云计算存储和处理平台。学术界也从不同方面探索云技术的相关理论和应用,这些研究和探索都从不同方面推动着云计算向纵深发展。例如文献[2]从云计算的体系架构上定义云计算的服务模式并划分服务类型。文献[3]则从云计算的安全出发,重点分析云计算安全风险理论研究现状,给出降低云计算安全风险的对策。但是这些更多的是停留在应用服务层讨论,缺少对云计算的主要关键的整体比较。本文首先综述了云计算的定义,然后给出了云计算的服务结构和体系模式,并且根据服务模式对服务进行划分。接着针对云计算的关键技术:虚拟化技术,分布式存储技术和安全可靠性问题进行深入研究。最后展望了云计算服务的应用和挑战,为相关研究提供参考。
1 云计算的定义和特点
对于云计算的定义,不同的文献给出了不同的表述,大致有以下几种代表性的定义。
定义1:云计算(cloud computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。
定义2:云计算(cloud computing),由位于网络上的一组服务器把其计算、存储、数据等资源以服务的形式提供给请求者以完成信息处理任务的方法和过程。在此过程中被服务者仅需提供需求并获取所需服务结果,对于需求被服务的过程并不知情。同时服务者以最优利用的方式动态地把资源分配给众多的服务请求者,以求达到最大效益。
定义3:云计算是一种并行的、分布式的系统,由虚拟化的计算资源构成。这些资源可以根据负载动态的重新配置,已达到最优化使用的目的。服务提供上能根据和用户事先商定好的服务等级协议,给用户提供有偿付费服务。
根据云计算的定义可以看出,云计算具有虚拟化、异构化、可扩展化、容错化、可自治及可度量化等特点。这些特点都为研究云计算服务平台提供了不同的方向。文献[3]从云计算的服务资源,可扩展性,宽带网络调用,可度量性和可靠性对云计算的特点做了概括说明。同时对比了云计算,网格计算和web服务三者的不同。这种概括基于应用层来分析,主要从服务的提供和使用方面来研究云计算服务。它没有说明如何度量云计算服务的质量,如何划分云计算的服务粒度以及适合应用云计算的软件的属性等。文献[4]简述了云计算的定义,并介绍了实现云计算各项技术的研究现状,并且对目前几个具有代表性的云计算系统进行了研究。文献缺少对云计算的服务质量,服务安全等重要关键技术的探讨。文献[5]以谷歌的云计算为例,总结了云计算的关键技术:数据存储技术(Google File System),数据管理技术(Bitable),编程模型和任务调度模型等,分析了云计算和传统网格计算及超级计算的区别。针对特定平台的云计算服务研究很难适用所有云计算的平台。为了能够更全面深入的理解云计算的特征和云服务的分类,必须首先对云计算进行解构,抽象出云计算的体系结构。然后根据云计算的体系结构划分云计算所提供的服务和相关层次的关键技术。
2 云计算的体系结构及服务模式
通过研究现有的各种云计算系统的内部体系结构,云计算可以按照服务层次和系统结构分为三层(图2):
1) 基础设施层(Iaas)。这层包括了所有的计算资源和存储资源,是云计算向用户提供服务的硬件实体。它可以给用户提供虚拟化的计算资源和存储资源。在这一层上提供服务的主要有亚马逊的弹性云(Amazon,EC2)[6]和Apache的开源项目Hadoop[7]
2) 平台服务层(Paas)。平台服务层是整个云计算系统的核心层,主要包括软件程序开发环境,海量数据的存储管理和分布式文件系统以及其他实现云计算的管理系统。在这一层上提供服务的主要有Google App Engine[8]和Microsoft Azure[9]
3) 应用服务层(Saas)。这是一种软体交付模式,用户通过浏览器就可以访问响应的应用程序,不必要了解其背后支持运作的系统结构,硬件设施或者网络拓扑。服务提供商通过网络提供给用户应用软件服务来收费。
根据云计算体系结构进行服务模式划分是目前业界的主要方式。除此之外,也有的文献将云计算按照提供服务的对象和服务的范围进行划分,按照这种思想可以将云服务可以划分为专为某部门或行业服务的私有云,为社区提供社区云,为所有用户提供的公共云和同时为特别用户和公共用户提供的混合云。
云计算通过浏览器提供给用户按需分配的数据处理技术和数据存储能力,而用户不必要关心系统内部如何实现。系统的实现过程对用户是透明的,提供给用户的操作是简单可靠的。这些服务都是基于云计算的三大关键技术:虚拟化技术,分布式计算与存储技术,可扩展和可管可控的安全性技术。
3 云计算的关键技术
3.1 云计算中的虚拟化技术
虚拟化技术是云计算中的重要技术,通过虚拟化技术实现了资源的逻辑抽象和统一标示,可以对规模化的用户需求进行精心配置。虚拟主机的动态配置是解决这个问题的关键。文献[10]提出了通过优化虚拟机的调度策略和数据的迁移算,实现共享存储和广域网环境下的全系统实时迁移,目前这种方法能否真正实现自动触发迁移和负载均衡,还需要进一步的实践验证。文献[11]利用XenServer技术设计云桌面平台,这种平台将服务器虚拟化,组成庞大的服务器集群,提供海量的计算能力和灵活的资源调配机制,可以通过增加虚拟服务器来扩展系统性能,实际上也是一种动态主机的虚拟配置。这种设计通过将虚拟机桌面推送给使用客户,提供给用户安全稳定的程序推算服务。文献[12]也研究了利用虚拟机动态迁移的方法来解决负载均衡的问题,并且分析了传统的资源分配的服务算法,研究建立基于开源云平台OpenStack环境下的相关算法的迁移模型,设计了用户衡量虚拟机动态迁移评价标准。这种迁移标准仅仅能够衡量迁移的时间代价和宽带,不能量化迁移的质量和安全。
虚拟机的动态迁移是解决虚拟动态配置的核心,实现虚拟机动态迁移包括了内存迁移,设备迁移和存储迁移。目前云计算虚拟机动态迁移最经典的实现机制是Xen虚拟机动态实现架构(图3),大多数文献都是基于Xen 虚拟架构提出研究动态迁移技术或者通过改进Xen虚拟架构并提出虚拟机动态迁移优化的框架。由于动态迁移技术不仅要考虑服务时间和负载均衡,也要考虑迁移质量和安全可靠。因此关于迁移的策略逐步成为问题的核心,很多文献针对这个问题提出了不同的解决方法,但是这些动态迁移策略还需要进一步通过实践的检验。
3.2 云计算环境下的分布式存储技术
云计算提供给众多用户可靠的,按需的服务,就需要对分布的,海量的数据进行处理和存储,因此高效的数据管理技术是实现云计算的另一个关键技术。目前云计算系统中的数据管理技术主要是Google的GFS, BigTable,MapReduces数据和亚马逊的Dynamo。文献[13]针对云数据库管理的概念,分析了GFS, Big Table ,Dynamo等当前互联网主流云数据管理的基本原理,并针对未来云数据管理架构进行分析。由于云计算要处理的数据具有海量,异构和非确定的特点,因此如何确定数据的变化和预载信息,能够最大程度的利用已有的存储资源实现存储优化,还是目前要进一步讨论的话题。文献[14]在研究Apache下的开源分布式计算平台Hadoop的基础上,通过构建基于HDFS的云存储服务系统来解决海量数据的存储问题。文献[15]在基于分布式文件系统HDFS的基础上,通过信息分散存储的改进文件块存放策略提高存储的负载均衡能力,并且通过增加口令认证技术结合HDFS认证相结合来提高HDFS的安全性。云计算中数据主要是分布式存储在各个数据中心节点上,这些数据中心是云计算的核心基础设施,由百万级以及以上的节点组成,尤其是一些核心节点,其上存储的数据规模往往达到了PB以及EB级,因此数据失效成为了一种常态,极大的影响云计算的应用,增加了云计算的成本。文献[16]从提高可扩展性和容错性,降低成本的角度研究了云计算分布式环境下的若干关键技术,首先对比介绍了当前典型的数据中心网络结构的优缺点,其次介绍对比了当前两种分布式存储容错技术,即基于复制的容错技术和基于纠删码的容错技术,然后介绍了当前的分布式存储节能技术,对比了各项技术的优缺点。
3.3 云计算的安全问题
云计算使得信息技术向着集约化,规模化和高效化的方向发展,但它在提高使用效率的同时也面临着用户信息的安全和隐私保护的巨大挑战。安全成了云计算领域需要重要解决的问题,也是衡量云计算性能的一个重要指标。文献[17]根据云计算面临的挑战,提出了构建包括云计算安全服务体系,云计算安全标准及其评测体系的云计算安全框架,并且集中概括了云计算安全的几个关键技术,如可信访问控制,密文检索与处理,数据隐私保护,虚拟安全技术,云资源访问控制及可信云计算等方面。云计算安全不仅仅是技术问题,它也涉及监管模式和法律法规等方面,因此在这方面还需要进一步的研究,制定相关的标准。文献[18]根据云计算的服务特点,面临的安全性挑战,给出了云计算安全服务框架,在此基础上给出了可管、可控、可度量的云计算安全架构(图4)。这种架构将云计算的安全划分成不同的层次,然后根据安全目标的不同实现方式,研究相应的安全机制,分析比较各种机制及相互的关系,提出一种基于多队列多服务器云安全模型的分析思路。这种安全服务架构既给出了安全设计的要求,也给出现有机制的适用范围。云计算的任务和环境是不断变化的,如何使现有的安全机制能够适应不断变化的环境,并且精确描述安全规模的增长还需要深入研究。
4 云计算的应用和挑战
云计算能够将计算资源和存储资源都集中在云端,客户端变得精简,用户的操作变得简单。这种资源集中,按需分配的方式可以大大降低资源的浪费,是建立资源节约型社会的主要方式之一。相关的服务商能够更敏捷的部署应用,调整业务,从而具有极大的可伸缩性。云计算能否快速响应用户的需求,并且提供高质的服务是云计算推广的一个方面,同时个人用户信息都存储在云端,保证用户的个人信息安全是云计算面临的另一个重要挑战。因此在这两个方面将是进一步研究的重点。
参考文献:
[1] 刘鹏.云计算[M].北京:电子工业出版社,2010.
[2] 李乔.云计算研究综述[J].计算机科学,2011(4).
[3] 张建勋,云计算研究进展综述[J],计算机应用研究,2011.(4)
[4] 陈全,邓倩妮,云计算及其关键技术[J],云计算及其关键技术,2009(9).
[5] Amazon Web Service[EB/OL].http://aws.amazon.com/
[6] Hadoop[EB/OL].http://hadhoop.apache.org/core
[7] Google app engine[EB/OL]. http://appengine.google. com
[8] Microsoft azure[EB/OL].http://www.microsoft.com/ azure
[9] 焦术进.云计算中虚拟机动态迁移技术的研究[D].太原理工大学,2013.
[10] 陈志宏.基于云计算的虚拟桌面平台的设计与实现 [D]复旦大学,2012.
[11] 陈欣.云计算环境中虚拟化技术的研究与实践[D].北方工业大学,2013.
[12] 刘正伟,文中领,张海涛.云计算和云数据管理技术[J].计算机研究与发展,2012.
[13] 刘飞.基于云计算的分布式存储系统的研究和应用[D].西安工业大学,2012.
[14] 凌捷.基于Hadoop的云计算安全存储系统的设计与实现[M].2014
[15] 王意洁,孙伟东,周松, 等.云计算环境下的分布式存储关键技术[J].软件学报,2012(2).
[16] 冯登国,张敏,张妍, 等.云计算安全研究[J].软件学报,2010(11).
[17] 林闯,苏文博,孟坤,等.云计算安全:架构,机制与模型评价[J].软件学报,2013(9).