在构建大规模存储系统时,数据的可靠性和存储效率都是至关重要的考量。为了在这两方面达到平衡,纠删码(Erasure Code,简称EC)技术被广泛应用于分布式存储系统中。本篇博客将为您展开关于纠删码的详细介绍,并提供一个3到40节点支持的所有EC类型的表格,以供参考。
纠删码(Erasure Code)简介
纠删码是一种高级的前向纠错码(FEC),它可以在不需要传输额外数据的情况下,检测并纠正数据中的错误。在存储系统中,EC通过将数据分割成多个数据片(m个)并生成一定数量的校验片(n个),将这些数据和校验片分布存储在不同的节点上,从而提高数据的可靠性和容错能力。
EC类型
EC类型通常表示为m+n或m+n:b的形式,其中:
- m:原始数据片数量
- n:校验片数量
- b:在某些实现中,b代表一个组(stripe)中可以配置的备份数量或分组的宽度
EC支持的节点故障数量
对于一个特定的EC配置(例如,4+2),它可以容忍的最多节点故障数量等于校验片的数量(在这个例子中为2)。如果超出这个数量,数据可能会丢失。
EC的存储效率
存储效率或“得盘率”是指实际用于存储数据的空间与总存储空间的比例。例如,对于4+2的配置,得盘率是4/(4+2)=2/3或大约66.67%。
纠删码表:3~40节点支持的EC类型
下表概述了在3到40节点存储集群中,可能会使用的不同EC配置