王鑫
作者王鑫·2023-05-31 10:10
技术文档·天玑数据

技术干货 | 分布式存储系统的数据保护策略之纠删码

字数 1279阅读 843评论 2赞 3

在分布式存储领域,数据安全性问题一直备受重点关注,而数据冗余机制的选择有 多副本 纠删码

  • 多副本:多个数据的副本, 简单来说就是一个数据拷贝多份完全一样的副本,分别存放在多个不同节点上。 它的高性能和高可靠性成为目前分布式存储配置时的首选,但是 高昂的成本 较低的有效磁盘使用空间 在很多分布式存储应用场景上无法发挥其最大的效能。
  • 纠删码:纠正数据丢失的校验码,可以提供 较高的有效磁盘使用空间 同时也能 降低分布式存储的成本

本文将和大家一起分享分布式存储系统中的纠删码相关技术。

一、什么是纠删码?

纠删码(Erasure Code)本身是一种数据保护方法,它将数据分割成片段,把冗余数据块扩展、编码,并将其存储在不同的位置,比如磁盘、存储节点或者其它地理位置。

二、纠删码的基本原理

它的基本原理是把传输的信号分段,加入一定的校验再让各段间发生一定的联系,即使在传输过程中丢失掉部分信号,接收端仍然能通过算法把完整的信息计算出来。

三、纠删码的组成

从纠删码基本的形态看,其组成结构如下:

总数据块(n)=原始数据块(k) + 校验块(m)

  • 变量n:纠删码过程后创建的符号的总值。
  • 变量k:原始数据或符号的值。
  • 变量m:故障后添加的提供保护的额外或冗余符号的值。
当小于m个存储块(数据块或校验块)损坏的情况下,整体数据块可以通过计算剩余存储块上的数据得到,使得整体数据不会丢失。

四、纠删码的分类

如果严格的区分,实际上按照误码控制的不同功能,可分为检错纠错纠删三种类型。

类型识别错码纠正错码删除无法纠错的信息
检错码支持不支持不支持
纠错码支持支持不支持
纠删码支持支持支持

五、常见的纠删码

目前,纠删码技术在分布式存储系统中的应用主要有三类:

  • 里德-所罗门码Reed-Solomen(简称RS)
  • 级联低密度纠删码
  • 数字喷泉码

在存储行业内的应用中,目前主要使用的是RS类纠删码

例如,

  • 光盘存储中使用 RS 码进行容错,防止光盘上的划痕导致数据不可读。
  • 生活中,常用的二维码就利用了RS类纠删码来提高识别的成功率。

六、纠删码存储的存取过程

纠删码存储的存取过程包含编码修改解码三种基本操作。

  • 编码

n=4+2的配置为例,即,文件数据写入时被分割为4个数据块和2个校验块。

编码

编码

  • 修改

当需要对数据块1修改时

  • 数据块1更新为数据块1^
  • 校验块1更新为校验块1^
  • 校验块2更新为校验块 2^

修改

修改

  • 解码

当任一数据块或校验块丢失时,都可以通过剩余数据块及校验块计算得出。如,当数据块1丢失时,可通过数据块2、数据块3、数据块4、校验块1、校验块2解码计算得出。

n=4+2配置中,冗余度为2,即最多可以同时丢失2块数据块,当丢失的数据块个数大于2时,丢失数据块不可恢复。

解码

解码

七、纠删码 VS 多副本

多副本与纠删码比较:

-多副本(M)纠删码(K+M)
可用容量1/M,较低K/(K+M),较高
读写性能较高读性能较高,写性能一般
重构性能无校验计算,较快有校验计算,较慢
容忍节点故障数量M-1M
适用场景块存储,小文件场景存储空间要求较高的场景

关于天玑数据产品的纠删码相关技术,后续会继续和大家一起分享!

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

3

添加新评论2 条评论

lzw9560lzw9560软件架构设计师CSM
2023-08-02 15:50
讲的很清楚
yulu4314yulu4314技术支持长春
2023-06-01 09:23
谢谢分享,内容很干货!
Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广