HDFS 中的纠删码:将复制成本从 200% 降低至 50%
纠删码提供了一种比简单复制更高效的数据丢失容错方式。与存储多个完整文件副本不同,纠删码将数据划分为数据块,并利用有限域数学计算生成校验块。即使部分块丢失,只要保留特定数量的数据块和校验块组合,即可重构原始文件。该方法显著降低了存储开销;例如,6+3 方案(六个数据块、三个校验块)仅需增加 50% 的存储空间,而三副本复制则需增加 200%。HDFS、S3 对象存储和 RAID 6 等系统均采用纠删码以确保在硬件故障下的数据持久性。其底层数学原理主要是里德 - 所罗门码(Reed-Solomon codes),具有极高的鲁棒性,并应用于多种技术中。实施纠删码需根据所需的容错能力选择 k+m 方案,并理解其中的权衡。尽管高效,纠删码在数据重构时会产生 CPU 开销,并在数据重建时引入延迟。对于冷数据或不常访问的数据尤为有益,因为小文件可能带来额外开销。此外,碎片分布的合理设计对于实现有效的容错至关重要。使纠删码得以实现的有限域算术同样支撑着二维码、CD 光盘乃至深空通信中的纠错功能。