google云计算体系架构分析_第1页
google云计算体系架构分析_第2页
google云计算体系架构分析_第3页
google云计算体系架构分析_第4页
google云计算体系架构分析_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Google云计算原理云计算原理2Reached Our GoalReached Our Goal 认识云计算(理解) 理解Google 云计算实现原理(难点) 可独立在GAE上开发云服务应用 了解TMF?以及云未来的发展(了解)3初识云计算1Google云计算原理2GAE平台部署云服务3提 纲TM Forum 对云态度44We have a dream We have a dream 计算机的计算机的服务能力服务能力可以作为一种商品进行流通。可以作为一种商品进行流通。就像水、电、就像水、电、 气一样取之方便,费用低廉气一样取之方便,费用低廉5云计算定义云计算定义图:云计算概念模型云计算云计算

2、:是一种商业计算模型。它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够按需获取计算力、存储空间和 信 息 服 务 。6云计算服务的部署形式云计算服务的部署形式IaaS基础设施云基础设施云(代表:亚马逊的S3)SaaS 应用云应用云(代表:salesforce的CRM)PaaS 平台云平台云(代表:Google App Engine)私有云私有云(数据中心数据中心 内部网内部网)公共云公共云(服务提供商服务提供商 互连网互连网)混合云混合云( (公共和私有公共和私有) )X as a service7Amazon Amazon 云计算云计算1GB数据存放1个月为0.15美元每个服务

3、器租用1小时为0.1美元1.Amazon的的IaaS云计算思路云计算思路弹性计算云EC2为企业提供计算服务简单存储服务S3为企业提供存储服务2. Amazon的的IaaS运用实例运用实例亚马逊IaaS应用案例:纽约时报使用使用亚马逊云计算服务亚马逊云计算服务效果:效果:在不到 24个小时的时间里处理了1100万篇文章费用:费用:累计花费240美元利用自己服务器利用自己服务器时间:时间:数月时间费用:费用:多得多的费用 89Google Google 云计算云计算1. Google的云计算思路的云计算思路应用向互联网迁移数据向互联网迁移计算能力向互联网迁移存储空间向互联网迁移“浏览器操作系统”1

4、02. 隶属隶属PaaS的的Google云计算云计算Google Google 云计算云计算PaaSPaaS属于部署在云端云端的应用执行环境支持Python和JavaJava两种语言通过SDK调用Google的各种服务。如Google Map、Mail等用户可快速、廉价(可免费使用限定的流量和存储)地部署自己开发的应用(如创新的网站、游戏等)在下一章将具体介绍在下一章将具体介绍GAEGAE具体的应用具体的应用11Google Google 云计算云计算SaaSSaaS3. 隶属隶属SaaS的的Google云计算云计算提供在线“Word、Excel、PPT”提供在线MAP提供在线日历管理Goog

5、le云计算平台技术架构云计算平台技术架构分布式文件系统 Google Distributed File System并行数据处理 MapReduce分布式锁 Chubby结构化数据表 BigTable12GoogleGoogle如何实现云?如何实现云?13云计算概念入门云计算概念入门14初识云计算1Google云计算原理2GAE平台部署云服务3提 纲TM Forum 对云态度415GoogleGoogle云计算原理云计算原理分布式文件系统GFS并行数据处理模型MapReduce分布式锁服务Chubby分布式数据库BigTable1617Google设计设计GFS的动机的动机 Google需要支

6、持需要支持海量数据存储的文件系统的文件系统 购置昂贵的分布式文件系统与硬件?是否可以在一堆廉价且不可靠的硬件上构建可靠的分布式文件系统?1.GFS设计原则:设计原则:机器失效不能视为异常现象异常现象能应付对大型大型/ /超大型超大型文件处理支持大量用户大量用户同时访问2. GFS组成组成GFS集群:一个的MasterMaster和多个ChunkServerChunkServer(块服务器)组成,并可以多客户端ClientClient访问3. GFS设计要点设计要点每个文件拆成若干个64M64M文件块文件块Chunk组成每个Chunk都由Master根据其创建时间指定Chunk Handle(6

7、4)Chunk Handle(64)文件块被保存在ChunkServer本地磁盘本地磁盘中缺省情况下3处热备份备份C Chunk块文件18GFS的设计思路的设计思路4. Client职责职责包含文件系统的APIAPI负责和ChunkServer和Master通信通信代表应用程序进行读写读写操作Client和Master进行元数据元数据操作Client和ChunkServer进行文件数据文件数据操作5. Master职责职责负责管理所有文件系统的元数据元数据元数据包括:命名空间,访问控制信息,文件到Chunk的映射信息等6. ChunkServer职责职责负责存储chunk文件块Linux文件系

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

9、都要被Master管理的缺点:缺点:有冗余l采用中心服务器模式采用中心服务器模式Master可以方便地增加Chunk ServerMaster掌握系统内所有Chunk Server的情况,方便进行负载均衡不存在元数据的一致性问题l不缓存数据不缓存数据必要性:Client流式读取,非重复读写可行性:Master本身管理多个Server,很复杂22GFS架构的特点架构的特点lChunk Server容错容错每个Chunk有多个存储副本(默认是默认是3 3个个),分别存储于不通的服务器上每个Chunk又划分为若干Block(64KB),每个Block对应一个32bit32bit的校验码的校验码,保证

10、数据正确(若某个Block错误,则转移至其他Chunk副本)l Master容错容错三类元数据:命名空间(目录结构)、Chunk与文件名的映射以及Chunk副本的位置信息前两类通过日志日志提供容错,Chunk副本信息存储于其它存储于其它Chunk Server。这样Master出现故障时可恢复23GFS容错机制容错机制24GFS实验效果图实验效果图ChunkServer 1ChunkServer 2ChunkServer 16MasterClient 1Client 2Client 16路由器 1路由器 2Master25GoogleGoogle云计算原理云计算原理分布式文件系统GFS并行数据

11、处理模型MapReduce分布式锁服务Chubby分布式数据库BigTablel摩尔定律正在走向终结摩尔定律正在走向终结单芯片容纳晶体管的增加,对制造工艺提出要求CPU制造18nm18nm技术,电子泄漏问题CPU主频已达3GHz3GHz时代,难以继续提高散热问题(发热太大,且难以驱散)功耗太高26并行计算基础并行计算基础未来的发展:多核未来的发展:多核27什么样的问题适合并行计算?什么样的问题适合并行计算?l 斐波那契序列斐波那契序列(Fibonacci) Xl 计算计算URL访问频率访问频率 YMap函数处理日志中web页面请求的记录,然后输出(URL,1)。Reduce函数把相同URL的v

12、alue值都累加起来,产生(URL,记录总数)结果。lGoogle拥有海量数据,并且需要快速处理拥有海量数据,并且需要快速处理l什么是什么是MapReduce?28GoogleGoogle为什么需要为什么需要MapReduceMapReduce?Google MapReduce架构设计师Jeffrey DeanJeffery Dean设计一个新的抽象模型抽象模型, 使我们只要执行的简单计算简单计算,而将并行化、容错、数据分布、负载均衡的等杂乱细节放在一个库里,使并行编程时不必关心它们这就是MapReduce29Google Google 并行运算编程模型并行运算编程模型MapMapMap 原始

13、数据原始数据 1原始数据原始数据 2原始数据原始数据 MReduceReduce结果结果 1结果结果R1、在编程的时候,开发者需、在编程的时候,开发者需要编写两个函数:要编写两个函数:Map:(in_key, in_value)Reduce:(key,value 1,value 2)2、Map操作产生结果是操作产生结果是对对3、在、在Map,Reduce之间系之间系统把同一统把同一Key归类到归类到Reduce3、Reduce操作对相同的操作对相同的Key进行归类处理进行归类处理30MapReduceMapReduce实现机制实现机制用户程序(1)分割(1)分割(1)分割Master工作机M工

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

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

16、ye WorldHello China Bye ChinaHello Si-tech Bye Si-tech MAPMAPMAP334)Map输出输出FoldFold输出输出34Fold输出输出5)Reduce输出输出Reducel背景背景MapReduce设计初衷:由普通PC组成的集群来处理超大规模的超大规模的数据数据,所以有效的错误保障机制是必不可少l Worker容错容错Master周期性周期性的ping每个workerl Master容错容错Master周期性的将Master的数据结构数据结构的写入磁盘写入磁盘,即检查点(checkpoint)Master数据结构包括: Map和Red

17、uce任务的状态(空闲、工作中或完成),以及Worker机器(非空闲任务的机器)的标识。35MapReduceMapReduce容错机制容错机制36GoogleGoogle云计算原理云计算原理分布式文件系统GFS并行数据处理模型MapReduce分布式锁服务Chubby分布式数据库BigTable37初识云计算1Google云计算原理2GAE平台部署云服务3提 纲TM Forum 对云态度438GAEGAE部署云应用部署云应用39初识云计算1Google云计算原理2GAE平台部署云服务3提 纲TM Forum 对云态度440TMF See Sunny Future In Tele Manage

18、ment World AmericanTMFTMF简介简介1、电信管理论坛、电信管理论坛 ,非盈利联盟组织非盈利联盟组织2、会员遍布全球、会员遍布全球195个国家,个国家,700+会会员公司员公司3、我们公司也是会员,享受会员权利、我们公司也是会员,享受会员权利4、业界广泛使用的、业界广泛使用的eTOM,SID,TAM,NGOSSTMF最新框架技术最新框架技术1. 云计算的出现并快速发展,一方面是虚拟化技术虚拟化技术、分布式计算分布式计算等技术发展的结果, 另一方面也是互联网应用应用不断丰富趋势的体现。目前,虽然有Amazon、Google、IBM、Microsoft等在推,但云计算还没有一个

19、统一的标准。2. 云计算平台已经为很多用户所使用, 但是云计算在行业标准、数据安全、服务质量、应用软件等方面也面临着各种问题,这些问题的解决需要技术的进一步发展。3. 现有的研究大多集中于云体系结构、云存储、云数据管理、虚拟化、云安全、编程模型等技术41结束语结束语42云计算云计算概念回顾Google云计算背景分布式文件系统GFS并行数据处理模型MapReduce分布式锁服务Chubby分布式数据库BigTableGoogle AppEngineGoogle云计算技术小结主要内容()Google的云计算44分布式文件系统GFSGFS的容错措施有哪些? GFS的容错机制 Chunk Server

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

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

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

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

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

25、的多个版本62Google的需求 与写操作相比,数据记录读操作占绝大多数工作负载 单个节点故障损坏是常见的 磁盘是廉价的 可以不提供标准接口 Google既能控制数据库设计,又能进行应用系统设计63假设 具有广泛的适应性 支持Google系列产品的存储需求 具有很强的可扩展性 根据需要随时加入或撤销服务器 应对不断增多的访问请求 高可用性 单个节点易损,但要确保几乎所有的情况下系统都可用 简单性 简单的底层系统可减少系统出错概率,为上层开发带来便利64设计目标 总体上,与关系数据库中的表类似65逻辑视图Row KeyTime StampColumn ContentsColumn AnchorC

26、olumn “mime”my.look.ca“n.www”T9CNNT8CNN.COMT6“. “Text/htmlT5“. “t3“. “关系数据库中的表是什么样的?有什么特征?关系数据库中的表设计需要遵循什么原则? 行 每行数据有一个可排序的关键字和任意列项 字符串、整数、二进制串甚至可串行化的结构都可以作为行键 表按照行键的“逐字节排序”顺序对行进行有序化处理 表内数据非常稀疏,不同的行的列的数完全目可以大不相同 URL是较为常见的行键,存储时需要倒排 统一地址域的网页连续存储,便于查找、分析和压缩66数据模型/index.asp/index.asp 列 特定含义的数据的集合,如图片、链

27、接等 可将多个列归并为一组,称为族(family) 采用 族:限定词 的语法规则进行定义 fileattr:owning_group”, “fileattr:owning_user”, etc 同一个族的数据被压缩在一起保存 族是必须的,是BigTable中访问控制的基本单元67数据模型 时间戳 保存不同时期的数据,如“网页快照” “A big table” 表中的列可以不受限制地增长 表中的数据几乎可以无限地增加68数据模型通过(row, col, timestamp)查询通过(row, col, MOST_RECENT)查询 无数据校验 每行都可存储任意数目的列 BigTable不对列的最

28、少数目进行约束 任意类型的数据均可存储 BigTable将所有数据均看作为字符串 数据的有效性校验由构建于其上的应用系统完成 一致性 针对同一行的多个操作可以分组合并 不支持对多行进行修改的操作符69数据模型70物理视图Row KeyTime StampColumn: ContentsCn.wwwT6“.”T5“.”T3“.”Row KeyTime StampColumn: AnchorCn.wwwT9Anchor:CNNT5Anchor:my.look.caCNN.COMRow KeyTime StampColumn: mimeCn.wwwT6text/htmlRow KeyTime Sta

29、mpColumn ContentsColumn AnchorColumn “mime”my.look.ca“n.www”T9CNNT8CNN.COMT6“. “Text/htmlT5“. “t3“. “ 逻辑上的“表”被划分为若干子表(Tablet) 每个Tablet由多个SSTable文件组成 SSTable文件存储在GFS之上 每个子表存储了table的一部分行 元数据:起始行键、终止行键 如果子表体积超过了阈值(如200M),则进行分割71物理视图72体系结构 为每个子表服务器分配子表,对外提供服务 与GFS垃圾回收进行交互,收回废弃的SSTable 探测子表服务器的故障与恢复 负载均衡

30、73主节点的职责有效缓解单点故障74子表服务器故障75子表服务器故障76子表服务器故障77数据访问方式 任何对子表的写操作都会记录到一个存储在GFS之上的commit log中 每个子表服务器上所有子表变化对应于一个commit log 新的数据存储到子表服务器的内存(memtable)中 次压缩 旧数据存储在SSTable中,而新数据存放在memtable中 当memtable体积超过一定阈值,将形成SSTable,并写入GFS 每个tablet对应多个SSTable78数据写的流程 tablet含有多个SSTable导致查询效率低 合并压缩操作读取多个SSTable,创建一个新的SSTab

31、le来保持其中的最新数据 旧的SSTable删除 如果合并压缩操作完成后,tablet只包含一个SSTable,那么该操作也称为主压缩79合并压缩80数据存储与读取流程 新的故障 子表服务器内存中的memtable丢失 恢复方法 按照tablet将该服务器对应的日志分片 为每个失效tablet分配新的子表服务器 新子表服务器读取对应的分段commit log,并按照日志修改tablet 删除commit log中已实施的内容 重新对外提供服务81子表服务器故障恢复 局部性群组(Locality Group) 根据需要,将原本不存储在一起的数据,以列族为单位存储至单独的子表 如用户对网站排名、语言等分析信息感兴趣,那么可以将这些列族放至单独的子表,减少无用信息读取,改善存取效率 布隆过滤器(Bloom Filter) 什么是布隆过滤器?判断某个元素是否隶属于集合 优点:误判概率低,其存储空间仅为Hash表的1/8至1/4 用于判断列键是否位于SSTable中,快速确定某个列键的位置82性能优化83BigTable小结 Goo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论