1.概述

在编码理论里,有一种前向纠错(FEC)编码方式,也称为纠删码。
这种技术可以将原始数据中丢失的k字节数据从n个含编码字节的信息中进行恢复。
在纠删码技术中,Reed-Solomon(里所码)码是一种常见的纠删码。

2.纠删码的应用

对于在分布式环境下数据存储的可靠性保证,有两种策略:
1)引入副本冗余机制策略
2)利用纠删码技术,相比于副本策略,纠删码技术可以节省更多磁盘的空间。即有更高的磁盘利用率

拿Hadoop的HDFS来说,策略一般是三副本,当某个副本丢失时,可以通过其他副本复制回来。所以在这种情况下,Hadoop集群的磁盘利用率为1/3。而如果使用纠删码技术后,可以提高磁盘的利用率。

3.纠删码的思想

上图的含义是:有n个原始数据块,再引入m个数据校验块,然后通过编码(encode)是原始数据块和数据校验块产生关联。

纠删码技术是一种数据恢复技术,最早用于通信行业中数据传输中的数据恢复,是一种编码容错技术。它通过在原始数据中加入新的校验数据,使得各个部分的数据产生关联性。在一定范围内的数据出错情况下,通过纠删码技术都可以进行恢复。
比如:有原始数据块n个,然后加入m个校验数据块。
原始数据块和校验数据块在丢失时,都可以通过现有的数据块进行恢复

举例:
①x=1
②y=2
③z=3
④x+y+z=6
⑤2x+3y+z=11
⑥x+2y+3z=14

1)如果我们丢了3个原始数据块,可以恢复
④x+y+z=6
⑤2x+3y+z=11
⑥x+2y+3z=14
2)如果我们丢失了3个数据校验块,可以恢复
①x=1
②y=2
③z=3
3)可以
②y=2
③z=3
④x+y+z=6
⑤2x+3y+z=11
⑥x+2y+3z=14
4)可以
③z=3
④x+y+z=6
⑤2x+3y+z=11
⑥x+2y+3z=14
5)不可以
③z=3
⑥x+2y+3z=14

4.Reed-solomon codes

4.1.概述

Reed-Solomon里所码(RS)码是存储系统较为常用的一种纠删码,也称为里所码。它有两个参数n和m,记为RS(n,m)。n代表原始数据块个数。m代表校验块个数。接下来介绍RS码的原理。

4.2Reed-Solomon(RS)码的编码和解码过程

1)编码过程(encoding)

数据丢失:

2)解码过程

4.3.RS的优缺点:

优点:低冗余度,高磁盘利用率。
比如一个文件有5个文件块,假设用3副本冗余机制,最后总的文件块是15块,则磁盘利用率是:5/15=1/3=33%
而用RS码来实现,5个文件块+3个数据校验块,则磁盘利用率是:5/8=62.5%

缺点:
1)计算代价高。 丢失数据块或者编码块时, RS需要读取n个数据块和剩余的校验块才能恢复数据。
2)数据更新代价高。 数据更新相当于重新编码, 代价很高, 因此常常针对只读数据,或者冷数据。

工程实践中,一般对于热数据还是会使用多副本策略来冗余,冷数据使用纠删码。

4.4.两种冗余技术对比如下:

Erasure code(纠删码)相关推荐

  1. Hadoop 3.0 Erasure Coding 纠删码功能预分析

    前言 HDFS也可以支持Erasure Coding功能了,将会在Hadoop 3.0中发布,可以凭图为证: 在HDFS-7285中,实现了这个新功能.鉴于此功能还远没有到发布的阶段,可能后面此块相关 ...

  2. MiniO纠删码快速入门

    MiniO纠删码快速入门 Minio使用纠删码erasure code和校验和checksum来保护数据免受硬件故障和无声数据损坏. 即便您丢失一半数量(N/2)的硬盘,您仍然可以恢复数据. 什么是纠 ...

  3. Hadoop3.0时代,怎么能不懂EC技术纠删码? 个推为你解读

    根据云存储服务商Backblaze发布的2021年硬盘"质量报告",现有存储硬件设备的可靠性无法完全保证,我们需要在软件层面通过一些机制来实现可靠存储.一个分布式软件的常用设计原则 ...

  4. Hadoop 3.0纠删码简单调研

    目录: 1.  背景 2. 纠删码(Erasure Coding)介绍 3. 纠删码(Erasure Coding)原理 4. 总结 一. 背景 随着大数据技术的发展,HDFS作为Hadoop的核心模 ...

  5. SDS离全面EC(纠删码)还有多远?

    SDS(软件定义存储)离全协议(块.文件.对象).全介质(全闪.混合) .全场景使用EC(纠删码)还有多远?今天我们来寻找答案. 我们XSKY一直在提升SDS的得盘率.性能.扩展性.通用性,以便SDS ...

  6. Erasure Code - EC纠删码原理

    Erasure Code - EC纠删码原理 查看全文 http://www.taodudu.cc/news/show-3010091.html 相关文章: 楞严咒全文正确注音版_楞严咒全文注音 积分 ...

  7. minio存储之纠删码(Erasure Code)

    纠删码的原理介绍可以参考: https://www.jianshu.com/p/4abf65ad03af 一般上我们如果要保证数据高可用,主流的有两种策略: 多副本 纠删码 副本(Replicatio ...

  8. 分布式系统下的纠删码技术(一) -- Erasure Code (EC)

    近几个月主要参与一个分布式存储系统的纠删码部分(用于数据容错),纠删码在学术界出现比较早,现在ceph,微软的存储系统,Hadoop 3.0等都用了EC.文章会分为多篇,主要将Erasure Code ...

  9. Ceph 进阶系列(四):Ceph的纠删码特性 EC(Erasure Code)

    从GitHub上Clone Ceph项目,我是基于(ceph version 12.2.11 luminous 版本)的代码来分析的 一.EC(Erasure Code)是什么? Ceph的纠删码特性 ...

最新文章

  1. Keepalived+LVS+Nginx+DRBD+Heartbeat+Zabbix集群架构
  2. 我爱我家 CIO 刘东颖:如何靠六大维度提升“数字化”能力?|鲸犀峰会
  3. win10如何关闭文件夹或者照片的最近浏览?
  4. python基础--字符串的内置函数
  5. 网站主机和服务器选哪个,虚拟主机和服务器 你的网站该选择哪一个?
  6. 将Java 8流解析为SQL
  7. Putty(菩提)远程连接服务器教程
  8. 基于visual c++之windows核心编程代码分析(30)Telnet协议编程
  9. 在Eclipse中搭建Python开发环境
  10. Linux下进程/程序网络带宽占用情况查看工具 -- NetHogs
  11. 【图像配准】基于matlab GUI Powell+蚁群算法图像配准【含Matlab源码 928期】
  12. 二维数组最长递增java_动态规划设计之最长递增子序列
  13. Python源码学习(四)
  14. android启用hdcp_如何在Google Android模拟器中启用Android Market
  15. 计算机桌面文字重影,为什么电脑屏幕上的字老是重影,该怎么调?
  16. linux幻灯片制作软件,Marp(代码制作幻灯片软件)
  17. java获取当天星期几
  18. 【BZOJ 3470】3470: Freda’s Walk 期望
  19. anaconda3里pkgs可以删除吗,我试过conda clean -a,但用完之后还有10个G,吐血,C盘没空间了,pkgs删除影响虚拟环境吗,毕竟base大多数人用不到啊,求教
  20. Python Excel操作 xlwt xlrd xlutils三个模块的使用,不删除表,往后累加数据

热门文章

  1. python reshape_Numpy之reshape()使用详解
  2. 1.2 使用电脑测试MC20模块的GPS功能测试
  3. 查找算法——二分查找【代码实现】
  4. 起步平台 WeX5 集成百度echarts实现微信公众号中折线图颜色交错显示
  5. php封装一个用户类,PHP封装的一个单例模式Mysql操作类
  6. 乒乓球比赛人员对战比赛名单
  7. PL/SQL中的注释符
  8. python一维数组使用方法_python中向一维数组添加元素的方法
  9. scipy.interpolate插值方法介绍
  10. 计网实验一 假设Tom和Jerry利用Java UDP进行聊天,请为他们编写程序。具体如下: