EC纠删码与多副本区别

EC纠删码

Erasure Coding(简称EC,即纠删码)是一种冗余保护机制,通过计算校验片的方式实现数据冗余保护。

与RAID区别:可以避免节点发生故障,无法有效恢复数据

原理:
在写入数据时,将数据切分为N个数据块(N为偶数),通过EC编码算法计算得到M个校验块(M取值2、3或4)。将N+M个数据块和校验块存储于不同的节点中,组成一个条带,故障M个节点或M块硬盘,系统仍可正常读写数据

空间利用率:N/(N+M),N越大,空间利用率越高,数据的可靠性由M值的大小决定,M越大可靠性越高。

举例:4+2空间利用率=66.7%

EC配比方式:
(4+2):允许2块硬盘或者2个节点同时发生故障
折叠(4+2:1): 允许2块硬盘,1个节点同时发生故障

****场景1正常EC读写场景
在这里插入图片描述
当存储节点的个数≥N+M时采用N+M冗余配比,当(N+M)/M≤存储节点的个数<N+M时采用N+M:1冗余配比。

①以N=4、M=2、存储节点个数=7为例:
写原理:
− 用户写入数据Data后被系统切分为4个数据块(D1~D4),同时通过EC编码得到2个校验码(C1-C2),系统将6个数据块随机存入6个节点中。
读原理:
−如下图所示,系统从4个节点的不同硬盘中读取数据块(D1~D4),并通过Copy的方式将这4个数据块拼装成Data返回给用户。
在这里插入图片描述
②以N=4、M=2、存储节点个数=5为例:
写原理:如下图所示,用户写入数据Data后被系统切分为4个数据块(D1~D4),同时通过EC编码得到2个校验码(C1-C2),系统将6个数据块随机打散存放在5个节点中。另外,5个节点中的Node3存放了2个数据块,故障1个节点硬盘池的业务仍可正常运行。
在这里插入图片描述
读原理:如下图所示,系统从3个节点的不同硬盘中读取数据块(D1~D4),并通过Copy的方式将这4个数据块拼装成Data返回给用户。
在这里插入图片描述

PS:扩容后,当存储节点数量≥N+M时,系统会通过后台自动均衡将N+M:1展开为N+M。

场景2 故障场景时EC读写原理

− 当故障后的剩余存储节点数量≥N+M,系统会重新分配一个新节点组成N+M冗余,保证数据冗余不降低。
以N=4、M=2、存储节点个数=7为例,如下图所示,当故障Node6节点后,剩余6个节点仍满足4+2的情况,系统分配Node7存放数据块D2。

在这里插入图片描述
− 当故障后的剩余存储节点数量<N+M时,在故障恢复前系统会将新写入的数据缩列为(N-1)+M配比(最小可缩列为N/2+M),保证IO不中断的同时可靠性级别不降低,故障恢复后,系统冗余配比恢复为N+M。
以N=4、M=2、存储节点个数=6为例,如下图所示,数据Data1在以4+2的冗余配比写入过程中,EC成员节点突然故障,此时为了保证可靠性不变,系统将新写入的数据Data2缩列为3+2冗余配比。
在这里插入图片描述
 故障场景写原理(N+M:1冗余配比)
当故障1个节点或M块硬盘后,系统仍然将N+M个数据块和校验块写入所有正常节点中。
 数据读取原理
当EC成员节点或成员盘故障时,系统会读取任意N个数据(不管是数据分片还是校验分片),通过EC解码恢复数据。
以N=4、M=2为例:
− 冗余配比N+M:如下图所示,Node6和Node5发生故障,无法读取该节点的数据块D2和校验块C1,系统会从其他正常节点读取4个数据D1、D3、D4和C2,并通过解码获取Data返回给用户。
在这里插入图片描述
− 冗余配比N+M:1:如下图所示,Node3发生故障,无法读取该节点的数据块D2、D3,系统会从其他正常节点读取4个数据D4、D1、C1和C2,并通过解码获取Data返回给用户。

在这里插入图片描述

场景3 故障场景时EC数据重构原理

当系统的EC成员盘或成员节点发生故障后,将读取其他正常盘的N个数据,通过解码的方式获取故障盘的数据块并将其存放至其他正常盘中,具体原理如下图所示。
在这里插入图片描述
根据不同的故障场景,会采取不同的重构策略:

  • 当硬盘发生故障时,硬盘池等待15分钟后启动数据重构。
  • 当节点发生故障时,硬盘池还存在冗余保护时,延迟7天启动数据重

构;当硬盘池不存在冗余保护时,延迟24小时启动数据重构。
例如,6节点场景,EC冗余配比4+2,当故障1个节点,7天后启动数据重构;故障2个节点,24小时后启动数据重构。

多副本

原理:即同一份数据可以复制保存为 2~3 个副本。针对系统中的每 1 个卷,默认按照 1MB 进行分片,分片后的数据按照 DHT 算法保存集群节点上。
如下图所示,对于节点 Server1 的 磁盘 Disk1 上的数据块 P1,它的数据备份为节点Server2 的磁盘 Disk2 上 P1’,P1 和 P1’构成了同一个数据块的两个副本。

例如,当P1 所在的硬盘故障时,P1’可以继续提供存储服务。
在这里插入图片描述

小结

NameEC多副本
空间利用率22+2 可达91.6%2副本 可达 50%
灵活性按需扩展比较固定
读写性能
成本

综上所述,EC和多副本各有优缺点,选择哪种方式取决于具体的应用场景和需求。在需要高效利用存储空间且对读取性能要求不高的冷数据存储场景中,EC是更好的选择;而在需要高读写性能和可靠性的场景中,则应该考虑使用多副本架构。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值