知识卡片
RS编码的恢复代价催生LRC与SHEC
内容
RS(Reed-Solomon)编码是应用最广的 [[纠删码的空间效率与应用限制|纠删码]]方式(Ceph 默认用开源库 Jerasure 实现,Intel 平台上也有专门加速的 ISA 库),但它有个结构性缺陷:N+M 块数据里任意一块失效,都必须读取其余全部 N 块才能算出丢失的那一块,恢复单个故障付出的网络和 IO 开销和整个条带的宽度成正比。条带越宽(N 越大,空间利用率越高),恢复代价也越高——省下的存储空间某种程度上是拿日常最常见的”单盘故障恢复”效率换来的。LRC 和 SHEC 编码正是分别从不同角度专门针对这个恢复代价问题做的优化。
参考来源
《Ceph源码分析》第8章《Ceph纠删码》