在分布式存储领域,数据安全性问题一直备受重点关注,而数据冗余机制的选择有 多副本 和 纠删码 。
本文将和大家一起分享分布式存储系统中的纠删码相关技术。
一、什么是纠删码?
纠删码(Erasure Code)本身是一种数据保护方法,它将数据分割成片段,把冗余数据块扩展、编码,并将其存储在不同的位置,比如磁盘、存储节点或者其它地理位置。
二、纠删码的基本原理
它的基本原理是把传输的信号分段,加入一定的校验再让各段间发生一定的联系,即使在传输过程中丢失掉部分信号,接收端仍然能通过算法把完整的信息计算出来。
三、纠删码的组成
从纠删码基本的形态看,其组成结构如下:
总数据块(n)=原始数据块(k) + 校验块(m)
当小于m个存储块(数据块或校验块)损坏的情况下,整体数据块可以通过计算剩余存储块上的数据得到,使得整体数据不会丢失。
四、纠删码的分类
如果严格的区分,实际上按照误码控制的不同功能,可分为检错、纠错和纠删三种类型。
类型 | 识别错码 | 纠正错码 | 删除无法纠错的信息 |
---|---|---|---|
检错码 | 支持 | 不支持 | 不支持 |
纠错码 | 支持 | 支持 | 不支持 |
纠删码 | 支持 | 支持 | 支持 |
五、常见的纠删码
目前,纠删码技术在分布式存储系统中的应用主要有三类:
在存储行业内的应用中,目前主要使用的是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-1 | M |
适用场景 | 块存储,小文件场景 | 存储空间要求较高的场景 |
关于天玑数据产品的纠删码相关技术,后续会继续和大家一起分享!
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞3
添加新评论2 条评论
2023-08-02 15:50
2023-06-01 09:23