云计算体系结构云计算基本原理云计算是对分布式处理(DistributedComputing)、并行处理(ParallelComputing)和网格计算(GridComputing)及分布式数据库的改进处理,其前身是利用并行计算解决大型问题的网格计算和将计算资源作为可计量的服务提供的公用计算,在互联网宽带技术和虚拟化技术高速发展后萌生出云计算。许多云计算公司和研究人员对云计算采用各种方式进行描述和定义,基于云计算的发展和我们对云计算的理解,概括性给出云计算的基本原理为:利用非本地或远程服务器(集群)的分布式计算机为互联网用户提供服务(计算、存储、软硬件等服务)。这使得用户可以将资源切换到需要的应用上,根据需求访问计算机和存储系统。云计算可以把普通的服务器或者PC连接起来以获得超级计算机计算机的计算和存储等功能,但是成本更低。云计算真正实现了按需计算,从而有效地提高了对软硬件资源的利用效率。云计算的出现使高性并行计算不再是科学家和专业人士的专利,普通的用户也能通过云计算享受高性能并行计算所带来的便利,使人人都有机会使用并行机,从而大大提高了工作效率和计算资源的利用率。云计算模式中用户不需要了解服务器在哪里,不用关心内部如何运作,通过高速互联网就可以透明地使用各种资源。云计算体系结构云计算是全新的基于互联网的超级计算理念和模式,实现云计算需要多种技术结合,并且需要用软件实现将硬件资源进行虚拟化管理和调度,形成一个巨大的虚拟化资源池,把存储于个人电脑、移动设备和其他设备上的大量信息和处理器资源集中在一起,协同工作。按照最大众化、最通俗理解云计算就是把计算资源都放到互联网上,互联网即是云计算时代的云。计算资源则包括了计算机硬件资源(如计算机设备、存储设备、服务器集群、硬件服务等)和软件资源(如应用软件、集成开发环境、软件服务)。云计算体系结构云计算平台是一个强大的“云”网络,连接了大量并发的网络计算和服务,可利用虚拟化技术扩展每一个服务器的能力,将各自的资源通过云计算平台结合起来,提供超级计算和存储能力。通用的云计算体系结构如下图所示:云计算体系结构云用户端:提供云用户请求服务的交互界面,也是用户使用云的入口,用户通过Web浏览器可以注册、登录及定制服务、配置和管理用户。打开应用实例与本地操作桌面系统一样。服务目录:云用户在取得相应权限(付费或其他限制)后可以选择或定制的服务列表,也可以对已有服务进行退订的操作,在云用户端界面生成相应的图标或列表的形式展示相关的服务。云计算体系结构管理系统和部署工具:提供管理和服务,能管理云用户,能对用户授权、认证、登录进行管理,并可以管理可用计算资源和服务,接收用户发送的请求,根据用户请求并转发到相应的相应程序,调度资源智能地部署资源和应用,动态地部署、配置和回收资源。监控:监控和计量云系统资源的使用情况,以便做出迅速反应,完成节点同步配置、负载均衡配置和资源监控,确保资源能顺利分配给合适的用户。服务器集群:虚拟的或物理的服务器,由管理系统管理,负责高并发量的用户请求处理、大运算量计算处理、用户Web应用服务,云数据存储时采用相应数据切割算法采用并行方式上传和下载大容量数据。用户可通过云用户端从列表中选择所需的服务,其请求通过管理系统调度相应的资源,并通过部署工具分发请求、配置Web应用。云计算体系结构云计算服务层次在云计算中,根据其服务集合所提供的服务类型,整个云计算服务集合被划分成4个层次:应用层、平台层、基础设施层和虚拟化层。这4个层次每一层都对应着一个子服务集合,为云计算服务层次如下图所示:云计算体系结构云计算的服务层次是根据服务类型即服务集合来划分,与大家熟悉的计算机网络体系结构中层次的划分不同。在计算机网络中每个层次都实现一定的功能,层与层之间有一定关联。而云计算体系结构中的层次是可以分割的,即某一层次可以单独完成一项用户的请求而不需要其他层次为其提供必要的服务和支持。在云计算服务体系结构中各层次与相关云产品对应。应用层对应SaaS软件即服务如:GoogleAPPS、SoftWare+Services;平台层对应PaaS平台即服务如:IBMITFactory、GoogleAPPEngine、Force.com;基础设施层对应IaaS基础设施即服务如:AmazoEc2、IBMBlueCloud、SunGrid;虚拟化层对应硬件即服务结合Paas提供硬件服务,包括服务器集群及硬件检测等服务。云计算体系结构云计算技术层次云计算技术层次和云计算服务层次不是一个概念,后者从服务的角度来划分云的层次,主要突出了云服务能给我带来什么。而云计算的技术层次主要从系统属性和设计思想角度来说明云,是对软硬件资源在云计算技术中所充当角色的说明。从云计算技术角度来分,云计算大约有4部分构成:物理资源、虚拟化资源、中间件管理部分和服务接口,如下图所示:服务接口:统一规定了在云计算时代使用计算机的各种规范、云计算服务的各种标准等,用户端与云端交互操作的入口,可以完成用户或服务注册,对服务的定制和使用。云计算体系结构云计算体系结构服务管理中间件:在云计算技术中,中间件位于服务和服务器集群之间,提供管理和服务即云计算体系结构中的管理系统。对标识、认证、授权、目录、安全性等服务进行标准化和操作,为应用提供统一的标准化程序接口和协议,隐藏底层硬件、操作系统和网络的异构性,统一管理网络资源。其用户管理包括用户身份验证、用户许可、用户定制管理;资源管理包括负载均衡、资源监控、故障检测等;安全管理包括身份验证、访问授权、安全审计、综合防护等;映像管理包括映像创建、部署、管理等。虚拟化资源:指一些可以实现一定操作具有一定功能,但其本身是虚拟而不是真实的资源,如计算池,存储池和网络池、数据库资源等,通过软件技术来实现相关的虚拟化功能包括虚拟环境、虚拟系统、虚拟平台。物理资源:主要指能支持计算机正常运行的一些硬件设备及技术,可以是价格低廉的PC,也可以是价格昂贵的服务器及磁盘阵列等设备,可以通过现有网络技术和并行技术、分布式技术将分散的计算机组成一个能提供超强功能的集群用于计算和存储等云计算操作。在云计算时代,本地计算机可能不再像传统计算机那样需要空间足够的硬盘、大功率的处理器和大容量的内存,只需要一些必要的硬件设备如网络设备和基本的输入输出设备等。云计算体系结构典型云计算平台云计算的研究吸引了不同技术领域巨头,因此对云计算理论及实现架构也有所不同。如亚马逊利用虚拟化技术提供云计算服务,推出S3(SimpleStorageService)提供可靠、快速、可扩展的网络存储服务,而弹性可扩展的云计算服务器EC2(ElasticComputeCloud)采用Xen虚拟化技术,提供一个虚拟的执行环境(虚拟机器),让用户通过互联网来执行自己的应用程序。IBM将包括Xen和PowerVM虚拟的Linux操作系统镜像与Hadoop并行工作负载调度。下面以Google公司的云计算核心技术和架构作基本讲解。云计算的先行者Google的云计算平台能实现大规模分布式计算和应用服务程序,平台包括MapReduce分布式处理技术、Hadoop框架、分布式的文件系统GFS、结构化的BigTable存储系统以及Google其他的云计算支撑要素。现有的云计算通过对资源层、平台层和应用层的虚拟化以及物理上的分布式集成,将庞大的IT资源整合在一起。更重要的是,云计算不仅仅是资源的简单汇集,它为我们提供了一种管理机制,让整个体系作为一个虚拟的资源池对外提供服务,并赋予开发者透明获取资源、使用资源的自由。云计算体系结构MapReduce分布式处理技术MapReduce是Google开发的Java、Python、C++编程工具,用于大规模数据集(大于1TB)的并行运算,也是云计算的核心技术,一种分布式运算技术,也是简化的分布式编程模式,适合用来处理大量数据的分布式运算,用于解决问题的程序开发模型,也是开发人员拆解问题的方法。MapReduce模式的思想是将要执行的问题拆解成Map(映射)和Reduce(化简)的方式,先通过Map程序将数据切割成不相关的区块,分配(调度)给大量计算机处理达到分布运算的效果,再通过Reduce程序将结果汇整,输出开发者需要的结果。MapReduce的软件实现是指定一个Map(映射)函数,把键值对(key/value)映射成新的键值对(key/value),形成一系列中间形式的key/value对,然后把它们传给Reduce(化简)函数,把具有相同中间形式key的value合并在一起.map和reduce函数具有一定的关联性1.map(k1,v1)-list(k2,v2)2.reduce(k2,list(v2))-list(v2)云计算体系结构其中v1、v2可以是简单数据,也可以是一组数据,对应不同的映射函数规则。在Map过程中将数据并行,即把数据用映射函数规则分开,而Reduce则把分开的数据用化简函数规则合在一起,也就是说Map是一个分的过程,Reduce则对应着合。MapReduce应用广泛,包括简单计算任务、海量输入数据、集群计算环境等,如分布grep、分布排序、单词计数、Web连接图反转、每台机器的词矢量、Web访问日志分析、反向索引构建、文档聚类、机器学习、基于统计的机器翻译等。云计算体系结构Hadoop架构在Google发表MapReduce后,2004年开源社群用Java搭建出一套Hadoop框架,用于实现MapReduce算法,能够把应用程序分割成许多很小的工作单元,每个单元可以在任何集群节点上执行或重复执行。此外,Hadoop还提供一个分布式文件系统GFS(Googlefilesystem),是一个可扩展、结构化、具备日志的分布式文件系统,支持大型、分布式大数据量的读写操作,其容错性较强。而分布式数据库(BigTable)是一个有序、稀疏、多维度的映射表,有良好的伸缩性和高可用性,用来将数据存储或部署到各个计算节点上。Hadoop框架具有高容错性及对数据读写的高吞吐率,能自动处理失败节点,如图3-5所示为GoogleHadoop架构。在架构中MapReduceAPI提供Map和Reduce处理、GFS分布式文件系统和BigTable分布式数据库提供数据存取。基于Hadoop可以非常轻松和方便完成处理海量数据的分布式并行程序,并运行于大规模集群上。云计算体系结构Google云计算执行过程云计算服务方式多种多样,通过对Google云计算架构及技术的理解,在此我们给出用户将要执行的程序或处理的问题提交云计算的平台Hadoop,其执行过程如下图所示:云计算体系结构如图所示的Google云计算执行过程包括以下步骤。(1)将要执行的MPI程序复制到Hadoop框架中的Master和每一台Worker机器中。(2)Master选择由哪些Worker机器来执行Map程序与Reduce程序。(3)分配所有的数据区块到执行Map程序的Worker机器中进行Map(切割成小块数据)。(4)将Map后的结果存入Worker机器。(5)执行Reduce程序的Worker机器,远程读取每一份Map结果,进行混合、汇整与排序,同时执行Reduce程序。(6)将结果输出给用户(开发者)。在云计算中为了保证计算和存储等操作的完整性,充分利用MapReduce的分布和可靠特性,在数据上传和下载过程中根据各Worker节点在指定时间内反馈的信息判断节点的状态是正常还是死亡,若节点死亡则将其负责的任务分配给别的节点,确保文件数据的完整性。云计算体系结构云计算应用云计算的表现形式多种多样,简单的云计算在人们日常网络应用中随处可见,如腾讯QQ空间提供在线制作Flash图片,彩字秀提供的个性文字图片的处理,GoogleDoc和GoogleApps、zoho、用远程软件进行Office处理。对于众多的服务,可以将云计算提供的服务细分为以下7个类型。(1)