GFS论文笔记

前言

这是看GFS的论文的研读笔记。

GFS设计目的

  • 满足日益增长的数据处理需求

GFS设计的目标

高性能,可伸缩,高可靠,高可用

  • 高性能:一般是指时间复杂度小,空间复杂度小,CPU占用时间少等
  • 可伸缩:指程序性能硬件资源的增加和减少而增强或减弱的能力,可伸缩有很多种,线性伸缩(世界人民的目标),超线性伸缩,负伸缩等,但是随着程序规模的增大,伸展性会越来越差
  • 可靠性:指程序在规定条件下,在规定时间内完成规定任务的能力
  • 可用性:就是一个系统处在可工作状态的时间的比例

GFS设计假设

  • 组件失效被认为是常态事件,而不是意外事件。(容错能力)
  • 系统存储一定数量的大文件。(大数据)
  • 系统的工作负载主要由两种读操作组成:大规模的流式读取和小规模的随机读取。(读写模型)
  • 系统的工作负载还包括许多大规模的、顺序的、数据追加方式的写操作。(读写模型)
  • 系统必须高效的、行为定义明确的实现多客户端并行追加数据到同一个文件里的语意。
  • 高性能的稳定网络带宽远比低延迟重要。

GFS设计架构

GFS架构图.png

注解:

  • 元数据:命名空间、访问控制信息、文件和Chunk的映射信息、以及当前Chunk的位置信息
  • 心跳:master以心跳周期来和chunk通信,给chunk指示以及收集他们当前状态

GFS系统设计的优点

  • 容错性:每个块都会复制到多个块服务器上。缺省情况下,我们使用3个存储复制节点,不过用户可以为不同的文件命名空间设定不同的复制级别。
  • 单一的Master节点:单一的Master简化了设计,使架构能变得简单。Master一般会返回离Client最近的文件副本(减少网络IO)
  • Client采用库形式:GFS客户端代码以库的形式被链接到客户程序里。客户端代码实现了GFS文件系统的API接口函数、应用程序与Master节点和Chunk服务器通讯、以及对数据进行读写操作
  • Chunk的大小选择:默认为64MB, 较大Chunk尺寸减少Client和Master通讯,减少Master存储元数据的大小,Client对一个Chunk能进行多次操作,减少网络IO。

GFS系统的缺点

  • 单一的Master节点:有可能成为系统瓶颈,需要减少对Master的读写较大
  • Chunk尺寸的缺点:小文件会存储为一个Chunk,多个Client同时对单个小文件多次操作时,存放这个Chunk的Server会成为热点

系统缺点的解决:

  • 单一的Master节点:Client只询问Master相关文件的元数据信息,Client对元数据信息做适当缓存,后面的具体读写操作均在Chunk上

GFS交互流程

GFS数据交换操作图.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 分布式文件系统的主要功能有两个:一个是存储文档、图像、视频之类的Blob类型数据;另外一个是作为分布式表格系统的持...
    olostin阅读 8,550评论 1 5
  • 众所周知,Hadoop的存储基础,HDFS分布式文件系统,是按照GFS的思想实现的。本文参考:Google Fil...
    SmileySure阅读 4,863评论 0 1
  • 引言 GFS是谷歌2003年提出的一个文件系统。虽然GFS比较古老,但是后来的HDFS,是受到了GFS的启发,是G...
    炸茄盒阅读 7,423评论 1 5
  • 这个地方我不知道来来回回多少次 我好像熟悉每家店 每个招牌 我又根本没有真实感受过他们 来来回回的路途 来来回回的...
    晨阳Indra阅读 819评论 0 0
  • 在自己累了的时候,我可以到你这里来休息休息。 身体上有一点点的累了,当感觉学习的东西太多了的时候。我想人,总是需要...
    米亚MIA阅读 1,592评论 0 0