知识卡片

CRUSH的优点与代价

专业/工作 · 237.k

内容

CRUSH 本质是一种可分层的确定性伪随机选择算法:靠很少的元数据(Cluster Map + 规则)就能支撑大规模集群、能优雅应对扩缩容、依赖概率意义上的统计均衡实现数据分布均衡。但统计均衡这个前提在小规模集群里不成立——样本量不够大时伪随机的方差会显著放大,容易出现某些 OSD 明显冷热不均;另外,增加新设备触发数据迁移时,理论上只应该影响新设备,但受 Bucket 选择算法本身的限制,旧设备之间也会产生额外迁移,不是纯粹的增量式变化。这说明基于统计概率的设计方案要谨慎评估”样本规模是否足够让统计假设成立”,小规模场景可能需要额外补偿手段。

参考来源

《Ceph源码分析》第4章《CRUSH数据分布算法》