《云计算(第二版)》教材配套课件3—第二章 Google云计算原理与应用(2)
合集下载
《云计算(第三版)》配套PPT之五:第2章 Google云计算原理与应用(四)

MapReduce
优点:便携 缺点:效率低
Google的团队结合其自身的实际需求,借鉴搜 索引擎和并行数据库的一些技术,开发出了实 时的交互式查询系统Dremel。
5 of 64
2 . 7 海 量 数 据 的 交 互 式 分 析 工 具 D r e m e l 《云计算》第三版配套PPT课件
Dremel支持的典型应用
《云计算》第三版配套PPT课件
云 计 算 (第三版)
CLOUD COMPUTING Third Edition
第2章
Google云计算原理与应用(四)
主编:刘鹏 教授
of 64
《云计算》第三版配套PPT课件
目 录
2.1 Google文件系统GFS 2.2 分布式数据处理MapReduce 2.3 分布式锁服务Chubby 2.4 分布式结构化数据表Bigtable 2.5 分布式存储系统Megastore 2 . 6 大规模分布式系统的监控基础架构Dapper 2.7 海量数据的交互式分析工具Dremel 2.8 内存大数据分析系统PowerDrill 2.9 Google应用程序引擎
符合该模式的两条记录
11 of 64
《云计算》第三版配套PPT课件
2.7 海量数据的交互式分析工具Dremel
2.7.1 产生背景 2.7.2 数据模型 2.7.3 嵌套式的列存储 2.7.4 查询语言与执行 2.7.5 性能分析 2.7.6 小结
of 64
2 . 7 海 量 数 据 的 交 互 式 分 析 工 具 D r e m e l 《云计算》第三版配套PPT课件 数据结构的无损表示
15 of 64
2 . 7 海 量 数 据 的 交 互 式 分 析 工 具 D r e m e l 《云计算》第三版配套PPT课件
《云计算(第二版)》教材配套6—第三章Amazon云计算AWS(1)精品PPT课件

➢需求——Amazon平台中 有只Am是很azo多读n怎服取么务、处对写理存入这储,个需的(求需满?求足 简单的键/值式存储)
面向服务的Amazon平台架构
Dynamo ➢简单的键/值方式存储数据,不支持复杂的查询 ➢ 存储的是数据值的原始形式(bit),不解析数据的 具体内容、不识别任何数据结构,这使得它几乎可以 处理所有的数据类型
机制,涉及三个参数W、R、N
W—代表一次成功的写操作至少
需要写入的副本数
R—代表一次成功读操作需由服
务器返回给用户的最小副本数
N—每个数据存储的副本数
➢满足R+W>N,用户即可自行配 置R和W ➢优势:实现可用性与容错性之 间的平衡
容错机制
2)永久性故障处理机制
➢Merkle哈希树技术
每个虚拟节点保存三颗Merkle树,即每个键值区间建立一个 Merkle树 哈希树的叶子节点是存储每个数据分区内所有数据对应的哈希值, 父节点是其所有子节点的哈希值
➢AMI是用户云计算平台运行的基 础,用户使用EC2服务的第一步就 是要创建一个自己的AMI
➢Amazon提供的AMI有四种类型
(1)公共AMI (2)私有AMI (3)付费AMI (4)共享AMI
EC2基本架构及主要概念
EC2的基本架构
EC2基本架构及主要概念
实例(Instance)
➢用户创建好AMI后,实际运行的系统称为一个实例
➢Dynamo采用的改进算法
虚拟节点 数据分区和等份存储
➢数据备份
当数据被均匀存储到环上各节 点后,Dynamo将冗余存储数据 (备份数据)
思考:Amazon可以保证相邻的节点分别位于不同地区区域,即 使某个数据中心由于自然灾害或断电的原因整体瘫痪,仍可以 保证在世界上其他数据中心中保存有数据的备份。这里就有一 个非常重要的问题——如何进行节点分布,保证相邻节点位于 不同的数据中心 ?
面向服务的Amazon平台架构
Dynamo ➢简单的键/值方式存储数据,不支持复杂的查询 ➢ 存储的是数据值的原始形式(bit),不解析数据的 具体内容、不识别任何数据结构,这使得它几乎可以 处理所有的数据类型
机制,涉及三个参数W、R、N
W—代表一次成功的写操作至少
需要写入的副本数
R—代表一次成功读操作需由服
务器返回给用户的最小副本数
N—每个数据存储的副本数
➢满足R+W>N,用户即可自行配 置R和W ➢优势:实现可用性与容错性之 间的平衡
容错机制
2)永久性故障处理机制
➢Merkle哈希树技术
每个虚拟节点保存三颗Merkle树,即每个键值区间建立一个 Merkle树 哈希树的叶子节点是存储每个数据分区内所有数据对应的哈希值, 父节点是其所有子节点的哈希值
➢AMI是用户云计算平台运行的基 础,用户使用EC2服务的第一步就 是要创建一个自己的AMI
➢Amazon提供的AMI有四种类型
(1)公共AMI (2)私有AMI (3)付费AMI (4)共享AMI
EC2基本架构及主要概念
EC2的基本架构
EC2基本架构及主要概念
实例(Instance)
➢用户创建好AMI后,实际运行的系统称为一个实例
➢Dynamo采用的改进算法
虚拟节点 数据分区和等份存储
➢数据备份
当数据被均匀存储到环上各节 点后,Dynamo将冗余存储数据 (备份数据)
思考:Amazon可以保证相邻的节点分别位于不同地区区域,即 使某个数据中心由于自然灾害或断电的原因整体瘫痪,仍可以 保证在世界上其他数据中心中保存有数据的备份。这里就有一 个非常重要的问题——如何进行节点分布,保证相邻节点位于 不同的数据中心 ?
最新2019-云计算第二章2-4教学ppt-PPT课件

数据库——分布式存储数据库 Data Store
Google账户 ——开发应用程序必须拥有一个Google账户
App Engine服务——Google App Engine提供了一些服务
开发流程 ——Google App Engine开发应用程序必须遵守一定的开发
流程
配额和限制 ——Google账户提供的免费空间和流量有一定的配额和
自01己的其接ta应他口S用计上to程r算通e数机过序据;HT只T库P能或来在H存0TT标储2P准S应
用程序运行期间持续存在
03
(几秒之内完成)
同时,请求处理的
来的进数行据
序不能在自己的响
发送后产生子进程
执行代码
Google App Engine SDK
➢使用SDK时,可以在本地计算机上模拟包括所有Google App Engine服务的网络服务器应用程序,该SDK包括Google App Engine中的所有API和库。该网络服务器还可以模拟沙盒环境
沙盒给用o网应p行用gp开户l址用写程eE发应抓程n入序Ag人pi代用取序操pn码程无作eA员的EP序法,n上I提文和g只对只i的供n件电能能eG文沙了提o系子通读o件一供g统邮盒l,过取e进件的个对并应GAo虚用拟户的进环行境如,下这限个制环境使应用 应网程用络序程请与序求其只时他有才在运响行
开发者服且开务该发A应P使I用来程用访序的问必程互须序联使相网用中隔Da离,从而保证每个使用者可以且安响全应地时开间发必须极
➢使用Python实现,这个开发套件可以在装有Python 2.5的任 何平台上面运行,包括Windows、Mac OS X和Linux等,开发人 员可以在Python网站上获得适合自己系统的Python
Google账户 ——开发应用程序必须拥有一个Google账户
App Engine服务——Google App Engine提供了一些服务
开发流程 ——Google App Engine开发应用程序必须遵守一定的开发
流程
配额和限制 ——Google账户提供的免费空间和流量有一定的配额和
自01己的其接ta应他口S用计上to程r算通e数机过序据;HT只T库P能或来在H存0TT标储2P准S应
用程序运行期间持续存在
03
(几秒之内完成)
同时,请求处理的
来的进数行据
序不能在自己的响
发送后产生子进程
执行代码
Google App Engine SDK
➢使用SDK时,可以在本地计算机上模拟包括所有Google App Engine服务的网络服务器应用程序,该SDK包括Google App Engine中的所有API和库。该网络服务器还可以模拟沙盒环境
沙盒给用o网应p行用gp开户l址用写程eE发应抓程n入序Ag人pi代用取序操pn码程无作eA员的EP序法,n上I提文和g只对只i的供n件电能能eG文沙了提o系子通读o件一供g统邮盒l,过取e进件的个对并应GAo虚用拟户的进环行境如,下这限个制环境使应用 应网程用络序程请与序求其只时他有才在运响行
开发者服且开务该发A应P使I用来程用访序的问必程互须序联使相网用中隔Da离,从而保证每个使用者可以且安响全应地时开间发必须极
➢使用Python实现,这个开发套件可以在装有Python 2.5的任 何平台上面运行,包括Windows、Mac OS X和Linux等,开发人 员可以在Python网站上获得适合自己系统的Python
云计算第2章Google云计算原理与应用(2)PPT课件

《云计算》第三版配套PPT课件
1
Hale Waihona Puke 高可用性和高可靠性2 高扩展性
3
支持粗粒度的建
议性锁服务
4
服务信息的直接存储
5
支持缓存机制
6 支持通报机制
12 of 55
2.3 分布式锁服务Chubby
《云计算》第三版配套PPT课件
Chubby的基本架构
Chubby单元的 五个服务器
客户端 应用程序
…
Chubby 程序率
电子工业出版社《(第三版)》配套课件
(第三版)
CLOUD COMPUTING Third Edition
第2章
Google云计算原理与应用(二)
主编:刘鹏 教授
整体概况
+ 概况1
您的内容打在这里,或者通过复制您的文本后。
概况2
+ 您的内容打在这里,或者通过复制您的文本后。
概况3
+ 您的内容打在这里,或者通过复制您的文本后。
为了保证决议的唯一性,acceptors也要满足一个约束条件:当且仅当 acceptors 没有收到编号大于n的请求时,acceptors 才批准编号为n的提案。
9 of 55
2.3 分布式锁服务Chubby 一个决议分为两个阶段
《云计算》第三版配套PPT课件
1
准备阶段
proposers选择一个提案并将它的编号设为n 将它发送给acceptors中的一个“多数派”
远程过程调用
客户端 应用程序
Chubby 程序率
客户端进程
主服务器
客户端
在客户这一端每个客户应用程序都有 一个Chubby程序库(Chubby Library),客户端的所有应用都是通 过调用这个库中的相关函数来完成的。
[PPT]《云计算(第二版)》教材配套课件9—第六章 Hadoop:Google云计算的开源实现
![[PPT]《云计算(第二版)》教材配套课件9—第六章 Hadoop:Google云计算的开源实现](https://img.taocdn.com/s3/m/e7ebc6bf1a37f111f1855b8b.png)
物理模型
物理模型实际上就是把概念模型中的一个行进行分割,并按照 列族存储
查询时间戳为t7的“contents:”将返回空值,查询时间戳为t8, “anchor:”值为“look.ca”的项也返回空值 (空的单元格不存储 ) 查询“contents:”而不指明时间戳,将返回t5时刻的数据;查询 “anchor:”的“look.ca”而不指明时间戳,将返回t7时刻的数据 (未指 明时间戳,则返回指定列的最新数据值 )
"CNN"
""
行关键字
"n.www"
时 间 戳
t6
列 "mime:"
"text/html"
子表服务器
客户端进行更新操作时,首先连接相关的子表服务器,之后向 子表提交变更。提交的数据被添加到子表的HMemcache和子表服务 器的HLog 提供服务时,子表首先查询缓存HMemcache。若没有,再查找磁 盘上的HStore HRegion.flushcache()定期被调用,把HMemcache中的内容写到 磁盘上HStore文件里
访问接口
Hadoop API (1)org.apache.hadoop.conf (2)org.apache.hadoop.dfs (3)org.apache.hadoop.fs (4)org.apache.hadoop.io (5)org.apache.hadoop.ipc (6)org.apache.hadoop.mapred (7)org.apache.hadoop.metrics (8)org.apache.hadoop.record (9)org.apache.hadoop.tools (10)org.apache.hadoop.util 浏览器接口 典型HDFS安装会配置一个Web服务器开放自己的命名空间,其TCP 端口可配;默认配置下http://namenode-name:50070这个页面列 出了集群里的所有DataNode和集群的基本状态
《云计算(第三版)》第2章_Google云计算原理与应用(三)解析

5 of 57
《云计算》第三版配套PPT课件
数据分区和复制
➢Megastore中,这些小的数据
分区被称为实体组集(Entit
y Groups)。
➢每实个体实组体集组之集间包只含具若有干比实较体松散的一致性。每个实体组都通过复制技术在数 组据(中E心nt中it保y 存Gr若ou干p,数相据当副于本,这些实体组及其副本都存储在NoSQL数据库 分(区Bi中gt表ab的le概)念中),而一个101Fra bibliotekJohn
101,500
12:30:01
Dinner, Paris …
101,502
12:15:22
Betty, Paris
…
102
Mary
Bigtable的列名实际上是表名和属性名结合在一起得到,不同表中实体可 存储在同一个Bigtable行中
13 of 57
《云计算》第三版配套PPT课件
2.5 分布式存储系统Megastore
协调者是一个服务,该服务分布在每个副本的数据中 心里面。它的主要作用就是跟踪一个实体组集合
协调者的状态是由写算法来保证
of 57
《云计算》第三版配套PPT课件
快速写 Megastore采用了一种在主/从式系统中常用的优化方法。 如果一次写成功,那么下一次写的时候就跳过准备过程,直 接进入接受阶段 Megastore没有使用专门的主服务器,而是使用leaders
of 57
2.5 分布式存储系统Megastore 完整的事务周期
《云计算》第三版配套PPT课件
获取最后一次提交的事 务的时间戳和日志位置
使用Paxos达到一致, 将入口追加到日志
清理不再需要的数据
4. 云计算 之四:第2章 Google云计算原理与应用(三)
Dinner, Paris …
101,502
12:15:22
Betty, Paris
…
102
Mary
Bigtable的列名实际上是表名和属性名结合在一起得到,不同表中实体可 存储在同一个Bigtable行中
11 of 58
《云计算》第三版配套PPT课件
2.5 分布式存储系统Megastore
2.5.1 设计目标及方案选择 2.5.2 Megastore数据模型 2.5.3 Megastore中的事务及并发控制 2.5.4 Megastore基本架构 2.5.5 核心技术——复制 2.5.6 产品性能及控制措施
属性是命名的且具有类型,这些类型包括字符 型(strings)、数字类型(numbers)或者 Google的Protocol Buffers。
8 of 58
Hale Waihona Puke 2.5 分布式存储系统Megastore 照片共享服务数据模型实例
《云计算》第三版配套PPT课件
表Photo就是一个子表,因为它声明了 一个外键
《云计算》第三版配套PPT课件
主要 两类
局部 索引
定义在单个实体组中,作用域仅限于单个实 体组( 如PhotosByTime )
全局 索引
可以横跨多个实体组集进行数据读取操作 ( 如PhotosByTag )
额外 索引
STORING子句
(STORING Clause)
可重复的索引
(Repeated Indexes)
User则是一个根表
一个Megastore实例中可以有若干个不 同的根表,表示不同类型的实体组集
三种不同属性设置,既有必须的(如 user_id),也有可选的(如 thumbnail_url)
《云计算(第二版)》—第三章 Amazon云计算AWS
存储的是数据值的原始形式(bit),不解析数据的
具体内容、不识别任何数据结构,这使得它几乎可以 处理所有的数据类型
Amazon平台基础存 储架构:Dynamo
Dynamo架构的主要技术
问题
采取的相关技术
数据均衡分布
数据冲突处理 临时故障处理 永久故障后的恢复 成员资格以及错误检测
改进的一致性哈希算法,数据备份
提 纲 Amazon平台基础存储架构:Dynamo
弹性计算云EC2 简单存储服务S3 简单队列服务SQS
简单数据库服务Simple DB
关系数据库服务RDS 内容推送服务CloudFront 其他Amazon云计算服务 AWS应用实例
小结
基本概念
S3系统构架在Dynamo之上,采取的并不是传统的关系数据库 存储方式,原因:
向量时钟(vector clock) Hinted handoff(数据回传机制),参数(W,R,N) 可调的弱quorum机制 Merkle哈希树 基于gossip的成员资格协议和错误检测
数据均衡分布的问题
一致性哈希算法
平衡性 单调性 分散性 负载 两步进行:
求出设备节点的哈希值,并 配置到环上的一个点;接着 计算数据的哈希值,按顺时 针方向将其映射到环上距其 最近的节点; 添加新节点时, 按照上述规则,调整相关数 据到新的节点上。删除节点 和添加节点过程相反
电子工业出版社《云计算(第二版)》配套课件
第3章 Amazon云计算AWS
解放军理工大学 刘鹏 教授主编 华东交通大学 刘鹏 制作
《云计算(第二版)》购买网址: 当当网 京东商城
姊妹力作《实战Hadoop》购买网址: 当当网 京东商城
提 纲 Amazon平台基础存储架构:Dynamo
具体内容、不识别任何数据结构,这使得它几乎可以 处理所有的数据类型
Amazon平台基础存 储架构:Dynamo
Dynamo架构的主要技术
问题
采取的相关技术
数据均衡分布
数据冲突处理 临时故障处理 永久故障后的恢复 成员资格以及错误检测
改进的一致性哈希算法,数据备份
提 纲 Amazon平台基础存储架构:Dynamo
弹性计算云EC2 简单存储服务S3 简单队列服务SQS
简单数据库服务Simple DB
关系数据库服务RDS 内容推送服务CloudFront 其他Amazon云计算服务 AWS应用实例
小结
基本概念
S3系统构架在Dynamo之上,采取的并不是传统的关系数据库 存储方式,原因:
向量时钟(vector clock) Hinted handoff(数据回传机制),参数(W,R,N) 可调的弱quorum机制 Merkle哈希树 基于gossip的成员资格协议和错误检测
数据均衡分布的问题
一致性哈希算法
平衡性 单调性 分散性 负载 两步进行:
求出设备节点的哈希值,并 配置到环上的一个点;接着 计算数据的哈希值,按顺时 针方向将其映射到环上距其 最近的节点; 添加新节点时, 按照上述规则,调整相关数 据到新的节点上。删除节点 和添加节点过程相反
电子工业出版社《云计算(第二版)》配套课件
第3章 Amazon云计算AWS
解放军理工大学 刘鹏 教授主编 华东交通大学 刘鹏 制作
《云计算(第二版)》购买网址: 当当网 京东商城
姊妹力作《实战Hadoop》购买网址: 当当网 京东商城
提 纲 Amazon平台基础存储架构:Dynamo
3.《云计算(第三版)》配套PPT之三:第2章 Google云计算原理与应用(二)
4 of 56
2.3 分布式锁服务Chubby 系统的约束条件
《云计算》第三版配套PPT课件
p1:每个acceptor只接受它得到的第一个决议。
p2:一旦某个决议得到通过,之后通过的决议必须和该决议保持一致。
p2a:一旦某个决议v得到通过,之后任何acceptor再批准的决议必须是v。 p2b:一旦某个决议v得到通过,之后任何proposer再提出的决议必须是v。 p2c:如果一个编号为n的提案具有值v,那么存在一个“多数派”,要么它们中没有谁批 准过编号小于n的任何提案,要么它们进行的最近一次批准具有值v。
《云计算》第三版配套PPT课件
目 录
2.1 Google文件系统GFS 2.2 分布式数据处理MapReduce 2.3 分布式锁服务Chubby 2.4 分布式结构化数据表Bigtable 2.5 分布式存储系统Megastore 2 . 6 大规模分布式系统的监控基础架构Dapper 2.7 海量数据的交互式分析工具Dremel 2.8 内存大数据分析系统PowerDrill 2.9 Google应用程序引擎
为了保证决议的唯一性,acceptors也要满足一个约束条件:当且仅当 acceptors 没有收到编号大于n的请求时,acceptors 才批准编号为n的提案。
5 of 56
2.3 分布式锁服务Chubby 一个决议分为两个阶段
《云计算》第三版配套PPT课件
1
准备阶段
proposers选择一个提案并将它的编号设为n 将它发送给acceptors中的一个“多数派”
远程过程调用
客户端
Chubby
应用程序 程序率
客户端进程
主服务器
客户端
在客户这一端每个客户应用程序都有 一个Chubby程序库(Chubby Library),客户端的所有应用都是通 过调用这个库中的相关函数来完成的。
云计算第二章2-3教学ppt
特点
SaaS提供软件应用程序并通过Web 浏览器提供给用户使用,用户无需安 装和维护软件应用程序。
优点
用户可以随时随地使用软件应用程序, 无需安装和维护,同时获得软件提供 商的专业维护和技术支持。
缺点
用户可能受到软件提供商的限制,无 法完全定制和修改软件应用程序。
04 云计算的安全与隐私保护
数据安全与隐私保护
特点
PaaS提供应用程序开发和部署所需的平台和工具,用户可以通过 Web浏览器实现应用程序的开发、测试、部署和管理。
优点
用户可以快速开发和部署应用程序,同时获得平台提供的可扩展性和 可靠性。
ห้องสมุดไป่ตู้缺点
用户可能受到平台提供商的限制,无法完全控制应用程序的部署和管 理。
SaaS(软件即服务)
定义
SaaS提供软件应用程序并通过Web 浏览器提供给用户使用,用户无需安 装和维护软件应用程序。
谷歌云提供了灵活的付费模式,用户 可以根据实际需求进行资源选择和成 本控制。
概述
技术特点
应用场景
成本效益
谷歌云是全球领先的云服务提供商之 一,提供包括计算、存储、数据库、 分析等全面的云服务。
谷歌云广泛应用于企业级应用、大数 据分析、人工智能等领域。
THANKS FOR WATCHING
感谢您的观看
优势
分布式计算可以充分利用多台计算 机的计算能力,提高计算效率,降 低单点故障风险。
云存储技术
01
02
03
定义
云存储技术是一种将数据 存储在云端,通过网络进 行访问的技术。
应用
云存储技术可以实现数据 集中管理、存储空间灵活 分配、数据备份与恢复等 功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一种建议性的锁而不是 强制性的锁;具有更大 的灵活性
Paxos算法
Paxos算法 Leslie Lamport最先提出的一种基于消息传递(Messages Passing)的一致性算法,用于解决分布式系统中的一致性问题
分布式系统一致性问题——就是如何保证系统 中初始状态相同的各个节点在执行相同的操作 序列时,看到的指令序列是完全一致的,并且 最终得到完全一致的结果 一个最简单的方案——在分布式系统 中设置一个专门节点,在每次需要进 行操作之前,系统的各个部分向它发 出请求,告诉该节点接下来系统要做 方案存在什么缺陷? 什么。该节点接受第一个到达的请求 内容作为接下来的操作,这样就能够 保证系统只有一个唯一的操作序列
要告知其他用户和服务器, 使用一个基于文件系统的 锁服务可以将这些变动写 入文件中。有需要的用户 和服务器直接访问这些文 件即可,避免因大量系统 组件之间事件通信带来系 统性能下降
被开发者接受。虽然在 分布式系统中锁的使用 会有很大的不同,但是 和一致性算法相比,锁 显然被更多的开发者所 熟知
Chubby系统设计
Paxos算法
缺陷——专门节点失效,整 个系统就很可能出现不一致。 为了避免这种情况,在系统 中必然要设置多个专门节点, 由这些节点来共同决定操作 序列
算 法
proposers提出决议(Value, 系统接下来执行的指令) acceptors批准决议 learners获取并使用已经通 过的决议
Chubby系统本质上就是一个分布式的、存储大量小文件的 文件系统,它所有的操作都是在文件的基础上完成
Chubby最常用的锁服务中,每一个文件就代表一个锁,用户通过打 开、关闭和读取文件,获取共享(Shared)锁或独占(Exclusive)锁 选举主服务器过程中,符合条件的服务器都同时申请打开某个文件并 请求锁住该文件 成功获得锁的服务器自动成为主服务器并将其地址写入这个文件夹, 以便其他服务器和用户可以获知主服务器的地址信息
分布式锁服务Chubby
Paxos算法 Chubby系统设计 Chubby中的Paxos
Chubby文件系统
通信协议 正确性与性能
Chubby Google设计的提供粗粒度锁服务的一个文件系统,它基于松耦 合分布式系统,解决了分布的一致性问题
GFS使用Chubby选取一个GFS主服务器 Bigtable使用Chubby指定一个主服务器并发现、 控制与其相关的子表服务器 Chubby还可以作为一个稳定的存储系统存储包括 元数据在内的小数据 Google内部还使用Chubby进行名字服务(Name Server)
Chubby文件系统
元数据包含以下四种单调递增64位编号 实例号:新节 点实例号必定 大于旧节点的 实例号 内容生成号: 文件内容修改 时该号增加 锁生成号:锁 被用户持有时 该号增加 ACL生成号: ACL名被覆写 时该号增加
Chubby系统设计
Chubby 单元的
Chubby基本架构:客户端 和服务器端,两者通过远程 过程调用(RPC)来连接
客户端每个客户应用程序都 有一个Chubby程序库 (Chubby Library),所 有应用都是通过调用这个库 中相关函数来完成
五个服务器 客户端应 用程序 „ Chubby 程序库 远程过程 调用 主服务器
分布式锁服务Chubby
Paxos算法 Chubby系统设计 Chubby中的Paxos
Chubby文件系统
通信协议 正确性与性能
Chubby系统设计
高可用性和高可靠性;首要目标,在保证这一目 标的基础上再考虑系统的吞吐量和存储能力 高扩展性;将数据存储在价格较为低廉的RAM,支 持大规模用户访问文件
限制协调者可以选择的值
Paxos强制新的协调者必须选择和前任相同的值
Chubby中的Paxos
Chubby做了一个重要优化来提高系统效率—在选择某一个 副本作为协调者之后就长期不变,此时协调者就被称为主 服务器(Master)
客户端的数据请求由主服务器完成,Chubby保证在一定时间内有且 仅有一个主服务器,这个时间就称为主服务器租约期(Master Lease) 客户端需要确定主服务器的位置,可向DNS发送一个主服务器定位 请求,非主服务器的副本将对该请求做出回应
Chubby对于Paxos论文中未提及的一些技术细节进行了 补充,所以Chubby的实现是基于Paxos,但其技术手段更 加的丰富,更具有实践性
分布式锁服务Chubby
Paxos算法 Chubby系统设计 Chubby中的Paxos
Chubby文件系统
通信协议 正确性与性能
Chubby文件系统
(2)某个副本想成为协调者之后,它就根据规则生成一个比它以
前的序号更大的序号(实际上就是提高k的值),并将这个序号通过 propose消息广播给其他所有的副本
(3)如果接受到广播的副本发现该序号比它以前见过的序号都大,
则向发出广播的副本返回一个promise消息,并且承诺不再接受旧的协 调者发送的消息。如果大多数副本都返回了promise消息,则新的协调 者就产生了
单个Chubby副本结构
Chubby构建在这个容错的数据库之 上,Chubby利用这个数据库存储所有 的数据。Chubby的客户端通过特定的 Chubby协议和单个的Chubby副本进 行通信
Chubby中的Paxos
1、选择一副本为协调者(Coordinator)
Content Title
2、协调者从客户提交的值中选择一个, accept消息广播给所有的副本,其他的 副本收到广播后,选择接受或者拒绝这 个值,并将决定结果反馈 3、协调者收到大多数副本接受信息后, 认为达到了一致性,接着向相关副本发 送一个commit消息
Paxos
Paxos算法
(1)决议只有被proposers提出后才 ຫໍສະໝຸດ 批准(2)每次只批准一个决议
保证数据的一致性
(3)只有决议确定被批准后learners 才能获取这个决议
Paxos算法
P2a:一旦某 P1:每个acceptor只接受它得到的第一个决议 号,后到的决议编号大于先到的决议编号 ;约束条件P1不是很完备 ! P1表明一个acceptor可以收到多个决议,为区分,对每个决议进行编
Chubby文件系统
Chubby的文件系统和UNIX类似
例如在文件名“/ls/foo/wombat/pouch”中,ls代表lock service,这 是所有Chubby文件系统的共有前缀;foo是某个单元的名称; /wombat/pouch则是foo这个单元上的文件目录或者文件名
Google对Chubby做了一些与UNIX不同的改变
系 统 设 计 目 标
支持粗粒度的建议性锁服务;提供这种服务的根 本目的是提高系统的性能 服务信息的直接存储;可直接存储包括元数据、 系统参数在内的有关服务信息 支持通报机制;客户可以及时地了解到事件发生 支持缓存机制;通过一致性缓存将常用信息保存 在客户端,避免了频繁地访问主服务器
Chubby系统设计
系 统 约 束 条 件
P2:一旦某个决议得到通过,之后通过的决议必须 和该决议保持一致
个决议v得到 P2a和P1是有 通过,之后任 矛盾的 ! 何acceptor再 批准的决议必 须是v
P1和P2b保证条件(2),彼此之间不存在矛盾。但是P2b很难通过一 P2b:一旦某个决议v得到通过,之后任何proposer再提 种技术手段来实现它,因此提出了一个蕴涵P2b的约束P2c 出的决议必须是v
服务器一端Chubby单元, 一般由五个称为副本 (Replica)服务器组成, 它们配置上完全一致,且系 统刚开始时处于对等地位
客户端应 用程序
Chubby 程序库
客户端进程
分布式锁服务Chubby
Paxos算法 Chubby系统设计 Chubby中的Paxos
Chubby文件系统
通信协议 正确性与性能
Chubby中的Paxos
容错日志——对数据库正确性提供重 要支持;一致性由Paxos算法保证; 副本之间通过特定的Paxos协议通信, 同时本地文件中保存与Chubby中相同 的日志数据
容错数据库——快照(Snapshot)和 记录数据库操作重播日志(Replaylog);每一次的数据库操作最终都将 提交至日志中;本地文件中也保存着 一份数据库数据副本
电子工业出版社《云计算(第二版)》配套课件
第2章
Google云计算原理与应用
提 纲
Google文件系统GFS
分布式数据处理MapReduce
分布式锁服务Chubby 分布式结构化数据表Bigtable 分布式存储系统Megastore 大规模分布式系统的监控基础架构Dapper Google应用程序引擎
P2c:如果一个编号为n的提案具有值v,那么存在一 个“多数派”,要么它们中没有谁批准过编号小于n 的任何提案,要么它们进行的最近一次批准具有值v
Paxos算法
准备阶段:proposers选择一个提案并 将它的编号设为n,然后将它发送给 acceptors中的一个“多数派”。 Acceptors 收到后,如果提案的编号大 于它已经回复的所有消息,则acceptors 将自己上次的批准回复给proposers, 解决一致性问题算法:为了减少决议发布过程中的消息量,acceptors 并不再批准小于n的提案 将这个通过的决议发送给learners 的一个子集,然后由这个子集中的 learners 去通知所有其他的learners; 决议通过的两个阶段 特殊情况:如果两个proposer在这种情况下都转而提出一个编号更大的 批准阶段:当proposers接收到 提案,那么就可能陷入活锁。此时需要选举出一个president,仅允许 acceptors 中的这个“多数派”的回复 president提出提案 后,就向回复请求的acceptors发送 accept请求,在符合acceptors一方的约 束条件下,acceptors收到accept请求后 即批准这个请求
Paxos算法
Paxos算法 Leslie Lamport最先提出的一种基于消息传递(Messages Passing)的一致性算法,用于解决分布式系统中的一致性问题
分布式系统一致性问题——就是如何保证系统 中初始状态相同的各个节点在执行相同的操作 序列时,看到的指令序列是完全一致的,并且 最终得到完全一致的结果 一个最简单的方案——在分布式系统 中设置一个专门节点,在每次需要进 行操作之前,系统的各个部分向它发 出请求,告诉该节点接下来系统要做 方案存在什么缺陷? 什么。该节点接受第一个到达的请求 内容作为接下来的操作,这样就能够 保证系统只有一个唯一的操作序列
要告知其他用户和服务器, 使用一个基于文件系统的 锁服务可以将这些变动写 入文件中。有需要的用户 和服务器直接访问这些文 件即可,避免因大量系统 组件之间事件通信带来系 统性能下降
被开发者接受。虽然在 分布式系统中锁的使用 会有很大的不同,但是 和一致性算法相比,锁 显然被更多的开发者所 熟知
Chubby系统设计
Paxos算法
缺陷——专门节点失效,整 个系统就很可能出现不一致。 为了避免这种情况,在系统 中必然要设置多个专门节点, 由这些节点来共同决定操作 序列
算 法
proposers提出决议(Value, 系统接下来执行的指令) acceptors批准决议 learners获取并使用已经通 过的决议
Chubby系统本质上就是一个分布式的、存储大量小文件的 文件系统,它所有的操作都是在文件的基础上完成
Chubby最常用的锁服务中,每一个文件就代表一个锁,用户通过打 开、关闭和读取文件,获取共享(Shared)锁或独占(Exclusive)锁 选举主服务器过程中,符合条件的服务器都同时申请打开某个文件并 请求锁住该文件 成功获得锁的服务器自动成为主服务器并将其地址写入这个文件夹, 以便其他服务器和用户可以获知主服务器的地址信息
分布式锁服务Chubby
Paxos算法 Chubby系统设计 Chubby中的Paxos
Chubby文件系统
通信协议 正确性与性能
Chubby Google设计的提供粗粒度锁服务的一个文件系统,它基于松耦 合分布式系统,解决了分布的一致性问题
GFS使用Chubby选取一个GFS主服务器 Bigtable使用Chubby指定一个主服务器并发现、 控制与其相关的子表服务器 Chubby还可以作为一个稳定的存储系统存储包括 元数据在内的小数据 Google内部还使用Chubby进行名字服务(Name Server)
Chubby文件系统
元数据包含以下四种单调递增64位编号 实例号:新节 点实例号必定 大于旧节点的 实例号 内容生成号: 文件内容修改 时该号增加 锁生成号:锁 被用户持有时 该号增加 ACL生成号: ACL名被覆写 时该号增加
Chubby系统设计
Chubby 单元的
Chubby基本架构:客户端 和服务器端,两者通过远程 过程调用(RPC)来连接
客户端每个客户应用程序都 有一个Chubby程序库 (Chubby Library),所 有应用都是通过调用这个库 中相关函数来完成
五个服务器 客户端应 用程序 „ Chubby 程序库 远程过程 调用 主服务器
分布式锁服务Chubby
Paxos算法 Chubby系统设计 Chubby中的Paxos
Chubby文件系统
通信协议 正确性与性能
Chubby系统设计
高可用性和高可靠性;首要目标,在保证这一目 标的基础上再考虑系统的吞吐量和存储能力 高扩展性;将数据存储在价格较为低廉的RAM,支 持大规模用户访问文件
限制协调者可以选择的值
Paxos强制新的协调者必须选择和前任相同的值
Chubby中的Paxos
Chubby做了一个重要优化来提高系统效率—在选择某一个 副本作为协调者之后就长期不变,此时协调者就被称为主 服务器(Master)
客户端的数据请求由主服务器完成,Chubby保证在一定时间内有且 仅有一个主服务器,这个时间就称为主服务器租约期(Master Lease) 客户端需要确定主服务器的位置,可向DNS发送一个主服务器定位 请求,非主服务器的副本将对该请求做出回应
Chubby对于Paxos论文中未提及的一些技术细节进行了 补充,所以Chubby的实现是基于Paxos,但其技术手段更 加的丰富,更具有实践性
分布式锁服务Chubby
Paxos算法 Chubby系统设计 Chubby中的Paxos
Chubby文件系统
通信协议 正确性与性能
Chubby文件系统
(2)某个副本想成为协调者之后,它就根据规则生成一个比它以
前的序号更大的序号(实际上就是提高k的值),并将这个序号通过 propose消息广播给其他所有的副本
(3)如果接受到广播的副本发现该序号比它以前见过的序号都大,
则向发出广播的副本返回一个promise消息,并且承诺不再接受旧的协 调者发送的消息。如果大多数副本都返回了promise消息,则新的协调 者就产生了
单个Chubby副本结构
Chubby构建在这个容错的数据库之 上,Chubby利用这个数据库存储所有 的数据。Chubby的客户端通过特定的 Chubby协议和单个的Chubby副本进 行通信
Chubby中的Paxos
1、选择一副本为协调者(Coordinator)
Content Title
2、协调者从客户提交的值中选择一个, accept消息广播给所有的副本,其他的 副本收到广播后,选择接受或者拒绝这 个值,并将决定结果反馈 3、协调者收到大多数副本接受信息后, 认为达到了一致性,接着向相关副本发 送一个commit消息
Paxos
Paxos算法
(1)决议只有被proposers提出后才 ຫໍສະໝຸດ 批准(2)每次只批准一个决议
保证数据的一致性
(3)只有决议确定被批准后learners 才能获取这个决议
Paxos算法
P2a:一旦某 P1:每个acceptor只接受它得到的第一个决议 号,后到的决议编号大于先到的决议编号 ;约束条件P1不是很完备 ! P1表明一个acceptor可以收到多个决议,为区分,对每个决议进行编
Chubby文件系统
Chubby的文件系统和UNIX类似
例如在文件名“/ls/foo/wombat/pouch”中,ls代表lock service,这 是所有Chubby文件系统的共有前缀;foo是某个单元的名称; /wombat/pouch则是foo这个单元上的文件目录或者文件名
Google对Chubby做了一些与UNIX不同的改变
系 统 设 计 目 标
支持粗粒度的建议性锁服务;提供这种服务的根 本目的是提高系统的性能 服务信息的直接存储;可直接存储包括元数据、 系统参数在内的有关服务信息 支持通报机制;客户可以及时地了解到事件发生 支持缓存机制;通过一致性缓存将常用信息保存 在客户端,避免了频繁地访问主服务器
Chubby系统设计
系 统 约 束 条 件
P2:一旦某个决议得到通过,之后通过的决议必须 和该决议保持一致
个决议v得到 P2a和P1是有 通过,之后任 矛盾的 ! 何acceptor再 批准的决议必 须是v
P1和P2b保证条件(2),彼此之间不存在矛盾。但是P2b很难通过一 P2b:一旦某个决议v得到通过,之后任何proposer再提 种技术手段来实现它,因此提出了一个蕴涵P2b的约束P2c 出的决议必须是v
服务器一端Chubby单元, 一般由五个称为副本 (Replica)服务器组成, 它们配置上完全一致,且系 统刚开始时处于对等地位
客户端应 用程序
Chubby 程序库
客户端进程
分布式锁服务Chubby
Paxos算法 Chubby系统设计 Chubby中的Paxos
Chubby文件系统
通信协议 正确性与性能
Chubby中的Paxos
容错日志——对数据库正确性提供重 要支持;一致性由Paxos算法保证; 副本之间通过特定的Paxos协议通信, 同时本地文件中保存与Chubby中相同 的日志数据
容错数据库——快照(Snapshot)和 记录数据库操作重播日志(Replaylog);每一次的数据库操作最终都将 提交至日志中;本地文件中也保存着 一份数据库数据副本
电子工业出版社《云计算(第二版)》配套课件
第2章
Google云计算原理与应用
提 纲
Google文件系统GFS
分布式数据处理MapReduce
分布式锁服务Chubby 分布式结构化数据表Bigtable 分布式存储系统Megastore 大规模分布式系统的监控基础架构Dapper Google应用程序引擎
P2c:如果一个编号为n的提案具有值v,那么存在一 个“多数派”,要么它们中没有谁批准过编号小于n 的任何提案,要么它们进行的最近一次批准具有值v
Paxos算法
准备阶段:proposers选择一个提案并 将它的编号设为n,然后将它发送给 acceptors中的一个“多数派”。 Acceptors 收到后,如果提案的编号大 于它已经回复的所有消息,则acceptors 将自己上次的批准回复给proposers, 解决一致性问题算法:为了减少决议发布过程中的消息量,acceptors 并不再批准小于n的提案 将这个通过的决议发送给learners 的一个子集,然后由这个子集中的 learners 去通知所有其他的learners; 决议通过的两个阶段 特殊情况:如果两个proposer在这种情况下都转而提出一个编号更大的 批准阶段:当proposers接收到 提案,那么就可能陷入活锁。此时需要选举出一个president,仅允许 acceptors 中的这个“多数派”的回复 president提出提案 后,就向回复请求的acceptors发送 accept请求,在符合acceptors一方的约 束条件下,acceptors收到accept请求后 即批准这个请求