云计算安全与设计综述1.引言随着网络的日益普及和IT 技术的迅猛发展,网络存储和网络计算等服务也不断深入到人们生活的方方面面,改变着传统的生活方式和工作模式。
目前,PC 依然是我们日常工作生活的核心工具—我们用来处理工作文档、存储数据、发送Email 、业务计算或与别人信息共享等。
然而,当PC 硬盘出现问题而无法修复时,我们将束手无策而最终丢失所有个人数据。
而在未来的“云计算”时代“云”会替我们做存储和计算的工作。
我们只需要一台能上网的电脑或其它终端设备,不需要安装任何应用软件,不需要关心存储或计算发生在哪朵“云”上,就可以在网络上实现各种应用,也可以存储大量的数据,通过网络服务来实现我们需要做的一切,甚至包括超级计算这样的任务。
重要的是,我们不必担心个人的数据会丢失,因为“云”会帮我们安全保管,毫不发生差错。
这样的愿景能否实现,将决定于互联网技术给我们带来的一种新型网络计算模式—云计算。
2.概述云计算是2007 年才兴起的新名词,云计算(Cloud Computing) 是一种新兴的商业计算模型,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和各种软件服务。
其核心是数据中心,硬件便是这些普通的符合工业标准的服务器。
同时,这些计算机由一个大型的数据处理中心管理,数据中心按客户的需要分配计算资源,达到与超级计算机同样的效果。
对于企业和个人用户而言,可以极低的成本投入获得极高的计算能力,不用再投资购买昂贵的硬件设备,从而节省了大量的硬件及其保养、升级的费用。
在过去的几十年中,计算模式经历了大机时代的终端-主机模式(T-S模式),个人PC 时代的客户机-服务器模式(C-S模式),到互联网时代的浏览器-服务器模式(B-S模式),一直到如今的网格计算和云计算的繁荣。
但是,网格计算缺少商业化实现,而且是基于中间件技术,需要用户通过编程或者安装设置来搭建底层架构,这为系统实现增加了难度,更重要的是,这种框架下实现的系统所部署到的网格的计算能力即服务器的数量与硬件指标是其系统的瓶颈,针对中小企业、科研单位、个人用户而言很难负担起太大的开销来满足处理能力要求较高的系统硬件需求。
即便大型机构能提供足够硬件设备,在系统不工作或者非满负荷工作时也会造成很多资源被闲置而浪费。
与此同时,配备专一业人员来维护网格计算环境也是必需的,这也在一定程度上增加了系统的开销。
用户对互联网内容的贡献飞快的增长,软件更多地以服务的形式通过互联网被发布和访问,而这些网络服务需要海量的存储和强大计算能力来满足日益增长的业务需求,云计算的理念就这样应运而生。
云计算的产生并非来自学术理论,而是直接产生于企业计算、互联网领域,它更关心如何扩展系统、如何方便IT管理。
导致和激励其发展的主要有三个因素:互联网应用需求刺激;来自于移动宽带网络的普及;数据中心成本的上升。
也就是说,云计算虽然是一种新型的计算模式,但是时代的需要恰恰为云计算提供了良好的发展机遇。
虽然现在的云计算并不能完美地解决所有的问题,但是在不久的将来,一定会有越来越多的云计算系统投人实用,云计算系统也会不断地被完善,并推动其他科学技术的发展。
3.云计算的核心技术:云计算是一种以数据为中心的密集型的超级计算。
在数据存储、数据管理、编程模式等方面具有自身独特的技术。
(1)编程模型MapReduce是Google开发的java、Python、C++编程模型,它是一种简化的分布式编程模型和高效的任务调度模型,用于大规模数据集(大于1TB)的并行运算。
严格的编程模型使云计算环境下的编程十分简单。
MapReduce模式的思想是将要执行的问题分解成Map(映射)和Reduce(化简)的方式,先通过Map程序将数据切割成不相关的区块,分配(调度)给大量计算机处理,达到分布式运算的效果,再通过Reduce程序将结果汇整输出。
(2) 海量数据分布存储技术云计算系统由大量服务器组成,同时为大量用户服务,因此云计算系统采用分布式存储的方式存储数据,用冗余存储的方式保证数据的可靠性。
云计算系统中广泛使用的数据存储系统是Google的GFS和Hadoop团队开发的GFS的开源实现HDFS。
GFS即Google文件系统(Google File System),是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。
GFS的设计思想不同于传统的文件系统,是针对大规模数据处理和Google应用特性而设计的。
它运行于廉价的普通硬件上,但可以提供容错功能。
它可以给大量的用户提供总体性能较高的服务。
一个GFS集群由一个主服务器(master)和大量的块服务器(chunkserver)构成,并被许多客户(Client)访问。
主服务器存储文件系统所以的元数据,包括名字空间、访问控制信息、从文件到块的映射以及块的当前位置。
它也控制系统范围的活动,如块租约(lease)管理,孤儿块的垃圾收集,块服务器间的块迁移。
主服务器定期通过HeartBeat消息与每一个块服务器通信,给块服务器传递指令并收集它的状态。
GFS中的文件被切分为64MB的块并以冗余存储,每份数据在系统中保存3个以上备份。
客户与主服务器的交换只限于对元数据的操作,所有数据方面的通信都直接和块服务器联系,这大大提高了系统的效率,防止主服务器负载过重。
(3) 海量数据管理技术云计算需要对分布的、海量的数据进行处理、分析,因此,数据管理技术必需能够高效的管理大量的数据。
云计算系统中的数据管理技术主要是Google的BT(BigTable)数据管理技术和Hadoop团队开发的开源数据管理模块HBase。
BT是建立在GFS, Scheduler, Lock Service和MapReduce之上的一个大型的分布式数据库,与传统的关系数据库不同,它把所有数据都作为对象来处理,形成一个巨大的表格,用来分布存储大规模结构化数据。
Google的很多项目使用BT来存储数据,包括网页查询,Google earth 和Google金融。
这些应用程序对BT的要求各不相同:数据大小(从URL到网页到卫星图象)不同,反应速度不同(从后端的大批处理到实时数据服务)。
对于不同的要求,BT都成功的提供了灵活高效的服务。
(4)虚拟化技术通过虚拟化技术可实现软件应用与底层硬件相隔离,它包括将单个资源划分成多个虚拟资源的裂分模式,也包括将多个资源整合成一个虚拟资源的聚合模式。
虚拟化技术根据对象可分成存储虚拟化、计算虚拟化、网络虚拟化等,计算虚拟化又分为系统级虚拟化、应用级虚拟化和桌面虚拟化。
(5)云计算平台管理技术云计算平台管理技术是最为关键的技术。
云计算资源规模庞大,服务器数量众多并分布在不同的地点,同时运行着数百种应用,如何有效的管理这些服务器,保证整个系统提供不间断的服务是巨大的挑战。
云计算系统的平台管理技术能够使大量的服务器协同工作,方便的进行业务部署和开通,快速发现和恢复系统故障,通过自动化、智能化的手段实现大规模系统的可靠运营。
4. 云计算与网格计算的区别狭义云计算是指 IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的资源(硬件、平台、软件)。
提供资源的网络被称为“云”。
“云”中的资源在用户看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
这种特性经常被称为像水电一样使用IT基础设施。
广义云计算是指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的服务。
这种服务可以是IT和软件、互联网相关的,也可以使任意其他的服务。
云计算不是一种商业模式,不是一种付费模式,不是一种IT技术,不是一类IT产品,不是一种付费模式,不是SOA,不是虚拟化或虚拟化软件,不是简单地将购买变为租赁,不是分布式计算,不是高性能计算,不是网格计算,不是软件即服务(SaaS)。
网格计算是指分布式计算中两类比较广泛使用的子类型。
一类是,在分布式的计算资源支持下作为服务被提供的在线计算或存储。
另一类是,一个松散连接的计算机网络构成的一个虚拟超级计算机,可以用来执行大规模任务。
该技术通常被用来通过志愿者计算解决计算敏感型的科研、数学、学术问题,也被商业公司用来进行电子商务和网络服务所需的后台数据处理、经济预测、地震分析等。
网格计算强调资源共享,任何人都可以做为请求者使用其它节点的资源,任何人都需要贡献一定资源给其他节点。
网格计算强调将工作量转移到远程的可用计算资源上。
云计算强调专有,任何人都可以获取自己的专有资源,并且这些资源是由少数团体提供的,用户不需要贡献自己的资源。
在云计算中,计算资源被转换形式去适应工作负载,它支持网格类型应用,也支持非网格环境,比如运行传统或 Web2.0 应用的三层网络架构。
网格计算侧重并行的计算集中性需求,并且难以自动扩展。
云计算侧重事务性应用,大量的单独的请求,可以实现自动或半自动的扩展。
网格的构建大多为完成某一个特定的任务需要,或者支持挑战性的应用。
这也是会有生物网格、地理网格、国家教育网格等各种不同的网格项目出现的原因。
而云计算一般来说都是为了通用应用而设计的。
云计算一开始就支持广泛企业计算、Web应用,普适性更强。
网格计算的主要思路是聚合分布的松散耦合资源。
而云计算的IT资源相对集中,以Intenet 的形式提供底层资源的获得和使用。
在对待异构性方面,二者理念上有所不同。
网格计算用中间件屏蔽异构系统,力图使用户面向同样的环境,把困难留在中间件,让中间件完成任务。
而云计算,不同的服务用不同的方法对待异构型,所有传统的方法在这里都可以应用。
有的提供基础设施,类似传统的服务器,用户选择操作系统和应用环境,有的则屏蔽了操作系统、基础设施和系统软件的差异,比如Paas服务。
简言之,云计算和网格没有任何内在联系。
网格计算一直在发展,只是它和云计算的出现没有任何关系。
网格计算作为一种面向特殊应用的解决方案将会继续在某些领域存在,而云计算作为一场IT变革,则会深刻影响整个IT产业和人类社会。
5. 云计算的应用现状5.1 Google 的云计算平台Google 公司有一套专属的云计算平台,这个平台先是为Google 最重要的搜索应用提供服务,现在已经扩展到其他应用程序。
Google 的云计算基础架构模式包括4 个相互独立又紧密结合在一起的系统:Google File System分布式文件系统,针对Google 应用程序的特点提出的MapReduce 编程模式,分布式的锁机制Chubby以及Google 开发的模型简化的大规模分布式数据库BigTable。
Google File System 文件系统(GFS) 除了性能、可伸缩性、可靠性以及可用性以外,GFS 设计还受到Google 应用负载和技术环境的影响。