Google File System 学习笔记

GFS翻译:https://www.cnblogs.com/cxxjohnson/p/4984309.html

 

一、GFS架构:

二、保存文件的方式

1、保存小文件:磁盘中分块,每个block大小为1024Byte,每个文件的索引由块号+偏置组成

2、保存大文件:把block换成chunk,每个chunk为64MB.

3、保存超大数据:把chunk放在不同的chunk服务器上,有一个Master服务器存放所有chunk所在的ChunkServer编号。每个chunkserver保存每个chunk在其中的偏移量。

 

三、ChunkServer和Master服务器

1、如何发现数据损坏

  • 每一个block都保存32bit校验信息

2、减少ChunkServer挂掉带来的损失

  • 保存额外两个chunk副本

  • 选择硬盘利用率低的但是不能把新的chunk都写在一个硬盘上,避免形成热点

  • 2+1:跨数据中心,在一个数据中心中放在不同的机架上

3、chunkserver损坏的解决方法:

  • 向master报告损坏的数据块

  • master返回其他副本的chunkserver号

  • 向最近的副本请求受损chunk

4、如何发现chunkserver挂掉

心跳:定时向master报告存活

 

5、应对热点

 

四、读文件过程

 

五、写文件过程

  1. 向Master询问chunkserver位置

  2. 向最近的chunkserver写文件

  3. chunkserver之间高速同步(只写在cache里)

  4. 由主chunkserver发出写命令

  5. 副本通知主chunkserver写成功

  6. 通知应用写成功

 

 

 

posted @ 2019-06-03 16:35  pibaba  阅读(664)  评论(0编辑  收藏  举报