欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

【大数据】分布式文件系统GFS | 纠删码 | 复习笔记

程序员文章站 2022-01-07 09:48:12
分布式文件系统GFS(Google File System)基本概念首先理解一下文件系统(file system)是一种存储设备上存储文件的方法。难理解就像自己电脑里好多盘,每个盘里下面有很多文件,这就是一种文件系统,不一样的是GFS用了很多服务器GFS封装了集群管理细节和存储映射细节主要抓四个特点:海量非结构化信息存储(因为原先是google为存储网页信息的)数据冗余备份自动负载均衡失效服务器检测设计原则:对部件错误习以为常,所以有特点里的2和4对大文件读写....

【大数据】分布式文件系统GFS | 纠删码 | 复习笔记

基本概念
  • 首先理解一下文件系统(file system)
    是一种存储设备上存储文件的方法。难理解就像自己电脑里好多盘,每个盘里下面有很多文件,这就是一种文件系统,不一样的是GFS用了很多服务器
    GFS封装了集群管理细节和存储映射细节

  • 主要抓四个特点:

  1. 海量非结构化信息存储(因为原先是google为存储网页信息的)
  2. 数据冗余备份
  3. 自动负载均衡
  4. 失效服务器检测
  • 设计原则:
  1. 对部件错误习以为常,所以有特点里的2和4
  2. 对大文件读写进行了优化(这是针对网页的)
  3. “追加写”而不是”随机写“(针对大数据)
  4. ”顺序读“
整体架构 三个部分:
  • 主控服务器Master

    存储三类信息:

    1. GFS和chunk
    2. 文件和chunk
    3. chunk和chunk

    前两类存储在系统日志里,且分别存贮在多台机器上,第三个通过主控服务器的定期询问来维护

    主要职责:系统管理。要保证负载均衡,创建chunk以及回收。数据备份及迁移时注意两点:一是这个chunk是否可用,二是减少网络压力

    主从结构使Master成为系统瓶颈,于是GFS增加了Shadow,后面Colossus也做了一些修改

  • chunk服务器
    每个文件被划分为多个固定大小的chunk(通常一个chunk大小64MB),一个chunk被切割为更小的Block
    其中,chunk使基本存储单元,block是基本读取单元(这只是GFS的办法,其他存储系统也有把block作为基本存储单元的)
    换分为固定大小的块的好处:便于利用存储空间;安全;速度快

  • 客户端:用户操作

偷两个老师的图~
【大数据】分布式文件系统GFS | 纠删码 | 复习笔记
【大数据】分布式文件系统GFS | 纠删码 | 复习笔记

Colossus

三个改进:

  1. 单一主控服务器 ->多主控服务器集群(更多内存,更多文件)
  2. 备份 -> 纠删码
  3. 增加客户端灵活性
纠删码Erasure Code

热点数据仍保留3个备份,冷数据只保留1份备份,通过纠删码保证数据的可用性

  • RS编码
    m个数据块,n个校验块,最多容忍n个数据损失

  • LRC编码(层次分组编码)
    RS编码的问题:需要同组所有的数据块才能恢复。LRC提出的解决方法是将所有的块分为全局校验块(Global Parity Block)和局部校验块(Local Parity Block),故障恢复时分组计算。
    两个概念:块局部性、最小码距
    通过LRC编码,局部校验块可以在局部完成恢复。
    LRC本质上是在RS编码基础上通过增加数据冗余来换取校验数据的局部性。
    LRC同时带来了一个特点:m+n个数据块中,在一定情况下,丢失大于n个的数据块也可以恢复。

  • Pyramid编码(层次分组编码)
    在LRC上增加更多的分组

  • 层次分组编码

分组重叠可以吗

  • 纠删码进行数据容错的挑战:
  1. 编码实现
  2. 数据修复
  3. 数据更新

纠删码是以CPU运算和网络负载为代价的,所以这也是它应用在冷数据上的原因


  • 关于纠删码的优秀总结
  1. 纠删码项目总结
  2. 纠删码深入分析
  3. 纠删码

本文地址:https://blog.csdn.net/m0_46201214/article/details/111005356