谷歌三大论文-极简导读-GFS

GFS-为什么

分布式平台遇到的瓶颈

谷歌做为搜索巨头,每天要处理巨量数据并储存下来。其数据特征是体积大,需要储存在多块廉价硬盘中。但由于数据易损坏丢失或者难以高效下载数据,已有的分布式系统已无法满足其需求。

GFS解决的问题

GFS运行在廉价的普遍硬件设备,面向大规模数据服务。多点备份防止数据丢失,提供灾难冗余能力。可根据实际需求增加或减少集群规模,具有可伸缩性。单一master节点、分布式分块储存,可以高效地获取数据。

GFS-是什么

GFS的基本原理

一个GFS集群包含一个Master节点,多个多台Chunk服务器,可同时被多个客户端访问。

(Chunk的翻译为厚块; 厚片; 大块; 相当大的量; 话语组成部分; 组块;GFS中指将大文件拆分为许多固定大小的Chunk块。一台Chunk服务器可以储存几十到几百个Chunk。)

其三者如图所示。储存大文件时,将其拆分为多个Chunk,存入一个或多个Chunk服务器。存入时master节点并不储存原本数据,它只记录每个Chunk的位置。

客户端(client)获取数据时先访问master节点,获得文件(chunk)储存地址,然后访问对应chunk服务器获得文件。
请添加图片描述

Chunkserver和master的实际关系

GFS中master节点只有一个,但chunk服务器有多个。随着文件数量的变化,可能会增加减少chunk服务器的数量。

在这里插入图片描述

GFS的理论框架

在这里插入图片描述

灾难冗余的实现

每个Chunk存放在三台服务器上,防止某个数据(Chunk)丢失后无法找回。
为什么是三呢?
笔者猜测是因为如果chunk只有一个备份,即总共两个相同的Chunk,那么两个Chunk数据不同时无法确定哪个是被损坏那个,哪个是未损坏的。而有三个时发生损坏的那个数据和另两个不同,而另两个未损坏的数据是一致的。这保证的灾难冗余的能力。

master节点瓶颈的应对措施

所有数据的下载都需要先从master节点获取地址,而master节点只有一个,很容易成为性能的瓶颈。所有设计时要重点考虑如何减少客户端、chunk服务器对master节点的访问。具体措施见GFS论文。

为何只设置一个master节点

GFS集群中的“单一Master节点”指 GFS系统中只存在一个逻辑上的Master组件。

单一的Master节点的策略大大简化了我们的设计。单一的Master节点可以通过全局的信息精确定位Chunk的位置以及进行复制决策。

Chunk尺寸

Chunk的大小是关键的设计参数之一。我们选择了64MB,这个尺寸远远大于一般文件系统的Block
size。选择较大的Chunk尺寸有几个重要的优点。
首先,它减少了客户端Master节点通讯的需求,因为只需要一次和Mater节点的通信就可以获取Chunk的位置信息,之后就可以对同一个Chunk进行多次的读写操作.
其次,采用较大的Chunk尺寸,客户端能够对一个块进行多次操作,这样就可以通过Chunk服务器保持较长时间的TCP连接来减少网络负载。
第三,选用较大的Chunk尺寸减少了Master节点需要保存的元数据的数量。这就允许我们把元数据全部放在内存中.

GFS-怎么样

在后来若干年发展起来的TFS(Taobao File System)、TFS(Team Foundation Server),都能看见GFS的影子。足以说明GFS对分布式发展趋势的预测的正确性。

Google并未提供GFS的源码,它是一个理想化模型。但这个模型又好像往哪个分布式系统都能套。或许正因因如此,它才格外地有魅力。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值