google云计算体系架构.ppt

上传人:牧羊曲112 文档编号:5432279 上传时间:2023-07-06 格式:PPT 页数:95 大小:3.37MB
返回 下载 相关 举报
google云计算体系架构.ppt_第1页
第1页 / 共95页
google云计算体系架构.ppt_第2页
第2页 / 共95页
google云计算体系架构.ppt_第3页
第3页 / 共95页
google云计算体系架构.ppt_第4页
第4页 / 共95页
google云计算体系架构.ppt_第5页
第5页 / 共95页
点击查看更多>>
资源描述

《google云计算体系架构.ppt》由会员分享,可在线阅读,更多相关《google云计算体系架构.ppt(95页珍藏版)》请在三一办公上搜索。

1、Google云计算原理,2,Reached Our Goal,3,提 纲,TM Forum 对云态度,4,4,We have a dream,愿景:计算机的服务能力可以作为一种商品进行流通。就像水、电、气一样取之方便,费用低廉,5,云计算定义,图:云计算概念模型,云计算:是一种商业计算模型。它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够按需获取计算力、存储空间和信息服务。,6,云计算服务的部署形式,IaaS基础设施云(代表:亚马逊的S3),SaaS 应用云(代表:salesforce的CRM),PaaS 平台云(代表:Google App Engine),X as a serv

2、ice,7,Amazon 云计算,1GB数据存放1个月为0.15美元,每个服务器租用1小时为0.1美元,Amazon的IaaS云计算思路,弹性计算云EC2为企业提供计算服务,简单存储服务S3为企业提供存储服务,Amazon的IaaS运用实例,8,亚马逊IaaS应用案例:纽约时报,使用亚马逊云计算服务,效果:在不到 24个小时的时间里处理了1100万篇文章费用:累计花费240美元,利用自己服务器,时间:数月时间费用:多得多的费用,9,Google 云计算,Google的云计算思路,“浏览器操作系统”,10,隶属PaaS的Google云计算,Google 云计算PaaS,属于部署在云端的应用执行环

3、境支持Python和Java两种语言通过SDK调用Google的各种服务。如Google Map、Mail等用户可快速、廉价(可免费使用限定的流量和存储)地部署自己开发的应用(如创新的网站、游戏等)在下一章将具体介绍GAE具体的应用,11,Google 云计算SaaS,隶属SaaS的Google云计算,提供在线“Word、Excel、PPT”,提供在线MAP,提供在线日历管理,12,Google云计算平台技术架构分布式文件系统 Google Distributed File System并行数据处理 MapReduce分布式锁 Chubby结构化数据表 BigTable,Google如何实现云

4、?,将在第二章详细介绍,13,云计算概念入门,Q&A,14,提 纲,TM Forum 对云态度,4,15,Google云计算原理,1,2,3,4,16,17,Google设计GFS的动机,Google需要支持海量数据存储的文件系统购置昂贵的分布式文件系统与硬件?,是否可以在一堆廉价且不可靠的硬件上构建可靠的分布式文件系统?,18,GFS设计原则:机器失效不能视为异常现象能应付对大型/超大型文件处理支持大量用户同时访问GFS组成GFS集群:一个的Master和多个ChunkServer(块服务器)组成,并可以多客户端Client访问GFS设计要点每个文件拆成若干个64M文件块Chunk组成每个C

5、hunk都由Master根据其创建时间指定Chunk Handle(64)文件块被保存在ChunkServer本地磁盘中缺省情况下3处热备份Chunk块文件,GFS的设计思路,19,Client职责包含文件系统的API负责和ChunkServer和Master通信代表应用程序进行读写操作Client和Master进行元数据操作Client和ChunkServer进行文件数据操作Master职责负责管理所有文件系统的元数据元数据包括:命名空间,访问控制信息,文件到Chunk的映射信息等ChunkServer职责负责存储chunk文件块Linux文件系统,GFS的设计思路,20,GFS的系统架构,

6、应用程序,GFS客户端,GFS数据块服务器,Linux文件系统,GFS主服务器文件命名空间,Chunk 2EEE,/foo/bar,GFS数据块服务器,Linux文件系统,标注:,数据信息,控制信息,文件名,chunk索引,向数据块服务器发指令,返回数据块服务器状态,Chunk句柄和位置,Chunk句柄,查找数据,返回数据信息,21,Question,文件为什么要被化分为64M?,Answer:1、可以减少Client和Master的之间的交互,减少Master的负载2、客户端可以在一个Chunk中完成许多操作3、可以减少TCP三次握手时间。另外这些信息都要被Master管理的缺点:有冗余,2

7、2,采用中心服务器模式Master可以方便地增加Chunk ServerMaster掌握系统内所有Chunk Server的情况,方便进行负载均衡不存在元数据的一致性问题不缓存数据必要性:Client流式读取,非重复读写可行性:Master本身管理多个Server,很复杂,GFS架构的特点,23,Chunk Server容错每个Chunk有多个存储副本(默认是3个),分别存储于不通的服务器上每个Chunk又划分为若干Block(64KB),每个Block对应一个32bit的校验码,保证数据正确(若某个Block错误,则转移至其他Chunk副本)Master容错三类元数据:命名空间(目录结构)、

8、Chunk与文件名的映射以及Chunk副本的位置信息前两类通过日志提供容错,Chunk副本信息存储于其它Chunk Server。这样Master出现故障时可恢复,GFS容错机制,24,GFS实验效果图,ChunkServer 1,ChunkServer 2,ChunkServer 16,Master,Client 1,Client 2,Client 16,路由器 1,路由器 2,Master,25,Google云计算原理,1,2,3,4,26,摩尔定律正在走向终结单芯片容纳晶体管的增加,对制造工艺提出要求CPU制造18nm技术,电子泄漏问题CPU主频已达3GHz时代,难以继续提高散热问题(发

9、热太大,且难以驱散)功耗太高,并行计算基础,未来的发展:多核,27,什么样的问题适合并行计算?,斐波那契序列(Fibonacci)X计算URL访问频率 Y,Map函数处理日志中web页面请求的记录,然后输出(URL,1)。Reduce函数把相同URL的value值都累加起来,产生(URL,记录总数)结果。,28,Google拥有海量数据,并且需要快速处理什么是MapReduce?,Google为什么需要MapReduce?,Google MapReduce架构设计师Jeffrey Dean,Jeffery Dean设计一个新的抽象模型,使我们只要执行的简单计算,而将并行化、容错、数据分布、负载

10、均衡的等杂乱细节放在一个库里,使并行编程时不必关心它们这就是MapReduce,29,Google 并行运算编程模型,Map,Map,Map,原始数据 1,原始数据 2,原始数据 M,Reduce,Reduce,结果 1,结果R,1、在编程的时候,开发者需要编写两个函数:Map:(in_key,in_value)Reduce:(key,value 1,value 2)2、Map操作产生结果是对3、在Map,Reduce之间系统把同一Key归类到Reduce3、Reduce操作对相同的Key进行归类处理,30,MapReduce实现机制,用户程序,(1)分割,(1)分割,(1)分割,Master

11、,工作机M,工作机M,工作机M,工作机R,工作机R,(2)指派Map,(2)指派Reduce,片段1,片段4,片段3,片段2,输入文件,(3)Read,(4)本地存储,输出文件0,输出文件1,Map状态,本地存储,Reduce状态,输出文件,(5)远程读取,(6)写入文件,31,单词计数 体现M/R算法,Hello World Bye WorldHello China Bye ChinaHello Si-tech Bye Si-tech,输入数据:,MapReduce,Hello:3Bye:3China:2World:2Si-tech:2,Map(Key,Value)for(each worl

12、d world in value)collect(world,1);,Reduce(Key,Value)int count=0;for(each w in value)count+;collect(Key,count);,1),32,Hello World Bye WorldHello China Bye ChinaHello Si-tech Bye Si-tech,2),分割,分割,分割,Hello World Bye World,Hello China Bye China,Hello Si-tech Bye Si-tech,3),Hello World Bye World,Hello Ch

13、ina Bye China,Hello Si-tech Bye Si-tech,MAP,MAP,MAP,33,4),Map输出,Fold,Fold输出,34,Fold输出,5),Reduce输出,Reduce,35,背景MapReduce设计初衷:由普通PC组成的集群来处理超大规模的数据,所以有效的错误保障机制是必不可少Worker容错Master周期性的ping每个workerMaster容错Master周期性的将Master的数据结构的写入磁盘,即检查点(checkpoint)Master数据结构包括:Map和Reduce任务的状态(空闲、工作中或完成),以及Worker机器(非空闲任务的

14、机器)的标识。,MapReduce容错机制,36,Google云计算原理,1,2,3,4,37,提 纲,TM Forum 对云态度,4,38,GAE部署云应用,Q&A,课堂演示部署过程,39,提 纲,TM Forum 对云态度,4,40,TMF See Sunny Future In Tele Management World American,TMF简介,1、电信管理论坛,非盈利联盟组织2、会员遍布全球195个国家,700+会员公司3、我们公司也是会员,享受会员权利4、业界广泛使用的eTOM,SID,TAM,NGOSS,TMF最新框架技术,41,云计算的出现并快速发展,一方面是虚拟化技术、分

15、布式计算等技术发展的结果,另一方面也是互联网应用不断丰富趋势的体现。目前,虽然有Amazon、Google、IBM、Microsoft等在推,但云计算还没有一个统一的标准。云计算平台已经为很多用户所使用,但是云计算在行业标准、数据安全、服务质量、应用软件等方面也面临着各种问题,这些问题的解决需要技术的进一步发展。现有的研究大多集中于云体系结构、云存储、云数据管理、虚拟化、云安全、编程模型等技术,结束语,42,云计算,Thank You!,Q&A,主要内容(),44,Google的云计算,分布式文件系统GFS,GFS的容错措施有哪些?,46,GFS的容错机制Chunk Server容错每个Chu

16、nk有多个存储副本(通常是3个),分别存储于不通的服务器上每个Chunk又划分为若干Block(64KB),每个Block对应一个32bit的校验码,保证数据正确(若某个Block错误,则转移至其他Chunk副本)Master容错(影子节点热备)三类元数据:命名空间(目录结构)、Chunk与文件名的映射以及Chunk副本的位置信息前两类通过日志提供容错,Chunk副本信息存储于Chunk Server,Master出现故障时可恢复,GFS的容错方法,并行数据处理模型MapReduce,1、处理流程2、分片方式,MapReduce处理流程中各类文件的存储位置在哪里?MapReduce的容错方法?

17、MapReduce的处理优化方法?MapReduce仅能对GFS之上的文件进行处理吗?,问题讨论,所有步骤均可控,可灵活处理各类分布式问题,灵活的MapReduce,除了排序,新增两道题目使用MapReduce实现倒排索引输入:100个文本文档输出:倒排索引任务实现算法,给出数据结构描述、执行过程描述等作业要求同“排序”要求尽可能提高执行效率,节约网络IO带宽,云计算应用实践作业调整,除了排序,新增两道题目使用MapReduce实现快速查询查询目标是存储在BigTable之中的网页数据,给定关键字,快速查询含有该内容的网页(假定没有倒排索引)要求设计BigTable存储方式(表含有哪些列、无需

18、关心数据如何取得)设计快速查询的MapReduce处理方法作业要求同“排序”,云计算应用实践作业调整,52,Google的云计算,分布式锁服务Chubby,53,主要用于解决分布式一致性问题在一个分布式系统中,有一组的Process,它们需要确定一个Value。于是每个Process都提出了一个Value,一致性就是指只有其中的一个Value能够被选中作为最后确定的值,并且当这个值被选出来以后,所有的Process都需要被通知到粗粒度的分布式锁服务Chubby是Google为解决分布式一致性问题而设计的提供粗粒度锁服务的文件系统其他分布式系统可以使用它对共享资源的访问进行同步,Chubby是什

19、么?,54,需要实现的特性高可用性高可靠性支持粗粒度的建议性锁服务支持小规模文件直接存储不作考虑的特性高性能存储能力,Chubby的设计目标,55,Chubby的系统架构,文件系统中文件的权限,文件系统中文件操作的权限有哪些?,这些权限之间的互斥关系是怎样的?,57,Chubby系统本质上就是一个分布式的、存储大量小文件的文件系统Chubby中的锁就是文件在GFS的例子中,创建文件就是进行“加锁”操作,创建文件成功的那个server其实就是抢占到了“锁”用户通过打开、关闭和存取文件,获取共享锁或者独占锁;并且通过通信机制,向用户发送更新信息,Chubby文件系统,58,Client与Chubb

20、y的通信协议,59,主节点选举独占锁共享锁数据存取应用获取GFS ChunkServer信息元数据存储,Chubby的应用,60,Goolge的云计算,分布式数据表BigTable,61,为什么需要设计BigTable?Google需要存储的数据种类繁多网页,地图数据,邮件如何使用统一的方式存储各类数据?海量的服务请求如何快速地从海量信息中寻找需要的数据?BigTable:基于GFS和Chubby的分布式存储系统对数据进行结构化存储和管理与GFS的联系,BigTable,62,数据存储可靠性高速数据检索与读取存储海量的记录(若干TB)可以保存记录的多个版本,Google的需求,63,与写操作相

21、比,数据记录读操作占绝大多数工作负载单个节点故障损坏是常见的磁盘是廉价的可以不提供标准接口Google既能控制数据库设计,又能进行应用系统设计,假设,64,具有广泛的适应性支持Google系列产品的存储需求具有很强的可扩展性根据需要随时加入或撤销服务器应对不断增多的访问请求高可用性单个节点易损,但要确保几乎所有的情况下系统都可用简单性简单的底层系统可减少系统出错概率,为上层开发带来便利,设计目标,65,总体上,与关系数据库中的表类似,逻辑视图,关系数据库中的表是什么样的?有什么特征?关系数据库中的表设计需要遵循什么原则?,66,行每行数据有一个可排序的关键字和任意列项字符串、整数、二进制串甚至

22、可串行化的结构都可以作为行键表按照行键的“逐字节排序”顺序对行进行有序化处理表内数据非常稀疏,不同的行的列的数完全目可以大不相同URL是较为常见的行键,存储时需要倒排统一地址域的网页连续存储,便于查找、分析和压缩,数据模型,/index.asp/index.asp,67,列特定含义的数据的集合,如图片、链接等可将多个列归并为一组,称为族(family)采用 族:限定词 的语法规则进行定义fileattr:owning_group”,“fileattr:owning_user”,etc同一个族的数据被压缩在一起保存族是必须的,是BigTable中访问控制的基本单元,数据模型,68,时间戳保存不同

23、时期的数据,如“网页快照”“A big table”表中的列可以不受限制地增长表中的数据几乎可以无限地增加,数据模型,通过(row,col,timestamp)查询通过(row,col,MOST_RECENT)查询,69,无数据校验每行都可存储任意数目的列BigTable不对列的最少数目进行约束任意类型的数据均可存储BigTable将所有数据均看作为字符串数据的有效性校验由构建于其上的应用系统完成一致性针对同一行的多个操作可以分组合并不支持对多行进行修改的操作符,数据模型,70,物理视图,71,逻辑上的“表”被划分为若干子表(Tablet)每个Tablet由多个SSTable文件组成SSTab

24、le文件存储在GFS之上每个子表存储了table的一部分行元数据:起始行键、终止行键如果子表体积超过了阈值(如200M),则进行分割,物理视图,72,体系结构,73,为每个子表服务器分配子表,对外提供服务与GFS垃圾回收进行交互,收回废弃的SSTable探测子表服务器的故障与恢复负载均衡,主节点的职责,有效缓解单点故障,74,子表服务器故障,75,子表服务器故障,76,子表服务器故障,77,数据访问方式,78,任何对子表的写操作都会记录到一个存储在GFS之上的commit log中每个子表服务器上所有子表变化对应于一个commit log新的数据存储到子表服务器的内存(memtable)中次压

25、缩旧数据存储在SSTable中,而新数据存放在memtable中当memtable体积超过一定阈值,将形成SSTable,并写入GFS每个tablet对应多个SSTable,数据写的流程,79,tablet含有多个SSTable导致查询效率低合并压缩操作读取多个SSTable,创建一个新的SSTable来保持其中的最新数据旧的SSTable删除如果合并压缩操作完成后,tablet只包含一个SSTable,那么该操作也称为主压缩,合并压缩,80,数据存储与读取流程,81,新的故障子表服务器内存中的memtable丢失恢复方法按照tablet将该服务器对应的日志分片为每个失效tablet分配新的子

26、表服务器新子表服务器读取对应的分段commit log,并按照日志修改tablet删除commit log中已实施的内容重新对外提供服务,子表服务器故障恢复,82,局部性群组(Locality Group)根据需要,将原本不存储在一起的数据,以列族为单位存储至单独的子表如用户对网站排名、语言等分析信息感兴趣,那么可以将这些列族放至单独的子表,减少无用信息读取,改善存取效率布隆过滤器(Bloom Filter)什么是布隆过滤器?判断某个元素是否隶属于集合优点:误判概率低,其存储空间仅为Hash表的1/8至1/4用于判断列键是否位于SSTable中,快速确定某个列键的位置,性能优化,83,BigT

27、able小结,Google云计算架构中GFS、MapReduce和BigTable中是否存在集群节点复用的情况?如何复用?节点复用的好处有哪些?Google云计算架构的设计对你有哪些启发?有哪些收获?,综合讨论,85,Goolge的云计算,Google App Engine,86,Google App Engine是隶属于PaaS类型的云服务一个计算环境,支持Python和Java语言可使用Google的基础服务,如BigTable和GFS等用户仅需提供应用代码,无需服务器维护应用程序可根据访问量和数据存储需要的增长轻松进行扩展,简介,87,特性动态网络服务功能,能够完全支持常用的网络技术具有

28、持久存储的空间,可支持查询、分类等基本操作具有自主平衡网络和系统的负载、自动进行扩展的功能可对用户的身份进行验证,并且支持使用Google账户发送邮件具有一个功能完整的本地开发环境,开发人员可以在自身的计算机上模拟 Google App Engine环境,应用程序环境,88,沙盒一个虚拟环境将开发者开发的应用程序隔离在自身的安全可靠的环境中,该环境和网络服务器的硬件、系统以及物理位置完全无关仅提供开发人员对基础操作系统的有限访问权限可以对开发人员进行更多的限制只能通过网址抓取API和邮件服务API访问其他计算机其他计算机只能通过HTTP或HTTPS与沙盒应用交互应用程序无法对平台文件系统进行写

29、入操作,只能读取代码文件应用程序必须使用平台的Data Store来存储应用程序运行期间持续存在的数据,应用程序环境,通过隔离来保证平台和其他开发者的安全,89,图像操作API开发人员可通过该API对JPEG和PNG图像进行缩放、裁剪、旋转和翻转等操作邮件API为开发人员开发的应用程序提供电子邮件发送服务Memcache API高性能的内存键值缓存,用户可使用应用程序访问该缓存可提高应用程序的性能并减少数据库的负载网址抓取API可以使用HTTP或HTTPS等网址来对数据进行检索,平台服务,90,用户API使应用程序与Google帐号集成,支持Google帐号身份认证数据库API为用户提供查询引擎和事务存储服务,平台服务,91,Hello World,print Content-Type:text/plainprint print Hello,world!,92,Goolge的云计算,Google云计算小结,Google云计算小结,94,Google云计算应用类型,Google云计算小结,结束,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号