Google的云计算技术分析报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Google的云计算技术分析报告班级:0920姓名:储俊学号:094190221.引言1.1研究背景及意义对于云计算,李开复(现任Google全球副总裁、中国区总裁)打了一个形象的比喻:钱庄。“最早人们只是把钱放在枕头底下,后来有了钱庄,很安全,不过兑现起来比较麻烦。现在发展成可以到银行的任何一个网点取钱,甚至通过ATM,或者国外的渠道。就像用电不需要家家装备发电机,直接从电力公司购买一样。”“云计算”带来的就是这样一种变革——由谷歌、IBM这样的专业网络公司来搭建计算机存储、运算中心,用户通过一根网线借助浏览器就可以很方便的访问,把“云”做为资料存储以及应用服务的中心。在PC领域,我们看到今天全球仍然没有摆脱“Wintel”(微软及Intel)联盟的垄断,全世界附加价值最高的核心芯片技术及软件工业几乎被美国企业掌控。我们要想打破这一行业垄断现状,走出跨越式发展的新路,必须抓住“云计算”这种产业变革的机遇。在“云”环境下,新的计算结构对CPU、服务器与终端,以及各种应用软件都会有变革性的需求。今天,“云计算”到来时,我们已成为世界最大的应用市场,拥有全球最大、覆盖率最高的网络基础设施,如能把握好机遇,应有参与此次变革的良好基础与条件。另外,“云计算”对一个有着13亿人口的发展中国家是降低计算成本的大好机遇,可以让每一个中国人享受到信息革命的成果,使信息与知识能够低成本高效率分享。有人比喻,如果个人计算机是“笔与纸”的话,“云计算”则是印刷术的发明。印刷术的发明使知识的传播获得极大普及,人类文明进入一个新阶段。试想一下,当未来地计算终端不再需要硬盘与CPU,而所有信息可以储存在“云”上,可以通过无线或有线网络随时获得,知识的获得和传播将会多么方便与便宜。1.2Google的云计算技术简介Google因其快速而准确的搜索而闻名,对于很多用户来说,它都是ArthurCClarke的名言“任何足够先进的技术都与魔法没有区别”的最好的体现。由于是技术将魔法变成了现实,因此Google是提供云计算平台的最佳之选。在Google的平台上运行应用程序的美好前景让开发人员无比兴奋,这完全可以理解。Google提供了一个名为AppEngine的云计算平台,它基于的是Google早就建立起来的底层平台。这个平台包括GFS(GoogleFileSystem)和Bigtable(构建于GFS之上的数据库系统)。GoogleAppEngine内的编程采用的是Python。程序员用Python编写应用程序,然后再在AppEngine框架上运行。除Python外的其他语言在将来也会得到支持。出于开发的需要,可以下载AppEngine环境的一个本地仿真程序。AppEngine可免费使用并且包括多达500MB的存储及足够的CPU带宽来满足每天5百万次页面浏览。GoogleAppEngine提供了一些有用的基础设施,比如源自GFS的数据存储和一个memcache实现。然而,它并不提供开箱即用的排队机制。不过,有了这样一个纯Python的编程环境,就可以在AppEngine之上很容易地创建您自已的JMS替代。这个数据存储很适合于混合应用程序,并且只需很少的Python编程就可以打造出一个面向您的队列的RESTful式接口。2.Google的云计算技术架构分析Google的云计算技术实际上是针对Google特定的网络应用程序而定制的。针对内部网络数据规模超大的特点,Google提出了一整套基于分布式并行集群方式的基础架构,利用软件的能力来处理集群中经常发生的节点失效问题。从2003年开始,Google连续几年在计算机系统研究领域的最顶级会议与杂志上发表论文,揭示其内部的分布式数据处理方法,向外界展示其使用的云计算核心技术。从其近几年发表的论文来看,Google使用的云计算基础架构模式包括四个相互独立又紧密结合在一起的系统。包括Google建立在集群之上的文件系统GoogleFileSystem,针对Google应用程序的特点提出的Map/Reduce编程模式,分布式的锁机制Chubby以及Google开发的模型简化的大规模分布式数据库BigTable。2.1GoogleFileSystem文件系统为了满足Google迅速增长的数据处理需求,Google设计并实现了Google文件系统(GFS,GoogleFileSystem)。GFS与过去的分布式文件系统拥有许多相同的目标,例如性能、可伸缩性、可靠性以及可用性。然而,它的设计还受到Google应用负载和技术环境的影响。主要体现在以下四个方面:1)集群中的节点失效是一种常态,而不是一种异常。由于参与运算与处理的节点数目非常庞大,通常会使用上千个节点进行共同计算,因此,每时每刻总会有节点处在失效状态。需要通过软件程序模块,监视系统的动态运行状况,侦测错误,并且将容错以及自动恢复系统集成在系统中。2)Google系统中的文件大小与通常文件系统中的文件大小概念不一样,文件大小通常以G字节计。另外文件系统中的文件含义与通常文件不同,一个大文件可能包含大量数目的通常意义上的小文件。所以,设计预期和参数,例如I/O操作和块尺寸都要重新考虑。3)Google文件系统中的文件读写模式和传统的文件系统不同。在Google应用(如搜索)中对大部分文件的修改,不是覆盖原有数据,而是在文件尾追加新数据。对文件的随机写是几乎不存在的。对于这类巨大文件的访问模式,客户端对数据块缓存失去了意义,追加操作成为性能优化和原子性(把一个事务看做是一个程序。它要么被完整地执行,要么完全不执行)保证的焦点。4)文件系统的某些具体操作不再透明,而且需要应用程序的协助完成,应用程序和文件系统API的协同设计提高了整个系统的灵活性。例如,放松了对GFS一致性模型的要求,这样不用加重应用程序的负担,就大大简化了文件系统的设计。还引入了原子性的追加操作,这样多个客户端同时进行追加的时候,就不需要额外的同步操作了。总之,GFS是为Google应用程序本身而设计的。据称,Google已经部署了许多GFS集群。有的集群拥有超过1000个存储节点,超过300T的硬盘空间,被不同机器上的数百个客户端连续不断地频繁访问着。在GoogleFileSystem的系统架构(图1)中,一个GFS集群包含一个主服务器和多个块服务器,被多个客户端访问。文件被分割成固定尺寸的块。在每个块创建的时候,服务器分配给它一个不变的、全球惟一的64位块句柄对它进行标识。块服务器把块保存在本地硬盘上,并根据指定的块句柄和字节范围来读写块数据。为了保证可靠性,每个块都会复制到多个块服务器上,缺省保存三个备份。主服务器管理文件系统所有的元数据,包括名字空间、访问控制信息和文件到块的映射信息,以及块当前所在的位置。GFS客户端代码被嵌入到每个程序里,它实现了Google文件系统API,帮助应用程序与主服务器和块服务器通信,对数据进行读写。客户端跟主服务器交互进行元数据操作,但是所有的数据操作的通信都是直接和块服务器进行的。客户端提供的访问接口类似于POSIX接口,但有一定的修改,并不完全兼容POSIX标准。通过服务器端和客户端的联合设计,GoogleFileSystem能够针对它本身的应用获得最大的性能以及可用性效果。2.2MapReduce分布式编程环境为了让内部非分布式系统方向背景的员工能够有机会将应用程序建立在大规模的集群基础之上,Google还设计并实现了一套大规模数据处理的编程规范Map/Reduce系统。这样,非分布式专业的程序编写人员也能够为大规模的集群编写应用程序而不用去顾虑集群的可靠性、可扩展性等问题。应用程序编写人员只需要将精力放在应用程序本身,而关于集群的处理问题则交由平台来处理。Map/Reduce通过“Map(映射)”和“Reduce(化简)”这样两个简单的概念来参加运算,用户只需要提供自己的Map函数以及Reduce函数就可以在集群上进行大规模的分布式数据处理。据称,Google的文本索引方法,即搜索引擎的核心部分,已经通过MapReduce的方法进行了改写,获得了更加清晰的程序架构。在Google内部,每天有上千个MapReduce的应用程序在运行。2.3分布式大规模数据库管理系统BigTable构建于上述两项基础之上的第三个云计算平台就是Google关于将数据库系统扩展到分布式平台上的BigTable系统。很多应用程序对于数据的组织还是非常有规则的。一般来说,数据库对于处理格式化的数据还是非常方便的,但是由于关系数据库很强的一致性要求,很难将其扩展到很大的规模。为了处理Google内部大量的格式化以及半格式化数据,Google构建了弱一致性要求的大规模数据库系统BigTable。据称,现在有很多Google的应用程序建立在BigTable之上,例如SearchHistory、Maps和RSS阅读器等。图2给出了在BigTable模型中的数据模型。数据模型包括行列以及相应的时间戳,所有的数据都存放在表格中的单元里。BigTable的内容按照行来划分,将多个行组成一个小表,保存到某一个服务器节点中。这一个小表就被称Tablet。以上是Google内部云计算基础平台的三个主要部分,除了这三个部分之外,Google还建立了分布式程序的调度器,分布式的锁服务等一系列相关的云计算服务平台。2.4Google的云应用除了上述的云计算基础设施之外,Google还在其云计算基础设施之上建立了一系列新型网络应用程序。由于借鉴了异步网络数据传输的Web2.0技术,这些应用程序给予用户全新的界面感受以及更加强大的多用户交互能力。其中典型的Google云计算应用程序就是Google推出的与MicrosoftOffice软件进行竞争的Docs网络服务程序。GoogleDocs是一个基于Web的工具,它有跟MicrosoftOffice相近的编辑界面,有一套简单易用的文档权限管理,而且它还记录下所有用户对文档所做的修改。GoogleDocs的这些功能令它非常适用于网上共享与协作编辑文档。GoogleDocs甚至可以用于监控责任清晰、目标明确的项目进度。当前,GoogleDocs已经推出了文档编辑、电子表格、幻灯片演示、日程管理等多个功能的编辑模块,能够替代MicrosoftOffice相应的一部分功能。值得注意的是,通过这种云计算方式形成的应用程序非常适合于多个用户进行共享以及协同编辑,为一个小组的人员进行共同创作带来很大的方便性。3.关键技术3.1GFS:分布式文件系统适用于TB级超大文件存储。master节点是文件管理的大脑,负责存储和管理文件与物理块的映射,维护metafile,处理临时文件,调度chunkserver等。chunkserver是真正存储物理文件块。GFS定位于由廉价服务器构成的超大集群,假定单个服务器存储是不可靠地,易失的,因此GFS强调冗余和备份。每份文件块会同时存储于多个不同的chunkserver。上层客户请求文件时,首先与master节点交互,获取相关信息,随后client将直接与相应的某个chunkserver通信并获取文件。在开源产品中类似实现有HDFS。3.2MapReduce:并行计算的核心技术框架使得上层应用软件可以专注于业务逻辑实现,同时利用到分布式并行计算的好处。Map接受和输出属性-值对,使得各节点工作进程可以并行计算它们的属性-值,并输出中间结果;Reduce化简,输入Map处理的中间结果,进行合并运算,最终输出结果文件,返回给上层应用。一个典型案例:编写一个应用对图书馆过去50年的文献,统计最大词频。MapReduce可以做的是,自动分割输入文件集合(任务分解),自动在多节点上克隆运算进程(map进程组和reduce进程组),并分别指派任务,最终映射和化简都完毕后,将处理结果文件返回给原始客户应用---对上层应用很好的屏蔽了并行计算。在开源实现中,对应有Hadoop。3.3BigTable:分布式结构化数据存储系统分布式的、稀疏的、多维的、

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功