首页/系统与基础设施/存储速查/Ceph 多副本与纠删码的对比
分布式与对象存储70 条

Ceph 多副本与纠删码的对比

多副本整份复制数据,纠删码把数据切块并计算校验块,用更少空间换取更高的写入与恢复成本。选择依据是容量敏感度、对象大小与延迟要求。本文对比两者在空间、写放大、恢复与兼容性上的差异。

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​​​‌​‌‌​​‌‌‌​‌‌​​‌​‌​​‌​‌‌‌‌​‌‌​​​‌‌​‌‌​​‌​‌​‌‌‌​​​​​‌‌​‌​​​​​‌​‌‌​‌​‌‌‌​​‌​​‌‌​​‌​‌​‌‌‌​​​​​‌‌​‌‌​​​‌‌​‌​​‌​‌‌​​​‌‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌‌​‌‌​​‌‌​​‌​‌​‌‌‌​​‌​​‌‌‌​​‌‌​‌‌‌​‌​‌​‌‌‌​​‌‌​​‌​‌‌​‌​‌‌​​‌​‌​‌‌​​​‌‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​

两种冗余方式的本质差异

多副本把对象完整复制若干份,任意一份都能独立读出,恢复就是复制;纠删码把对象切成数据块并计算校验块,读取需要凑齐足够数量的块。前者用空间换简单与低延迟,后者用计算和恢复复杂度换空间效率。

基本信息

空间开销三副本约三倍;纠删码按数据块与校验块比例计算
写入方式副本可整份写入;纠删码涉及条带,存在部分写开销
恢复成本副本直接复制;纠删码需读取多个块重建
延迟特征副本读延迟更低;纠删码受块数量与对齐影响
上层兼容部分需要频繁原地更新的池必须用副本
容错能力副本按份数容错,纠删码按校验块数量容错

典型使用场景

  • 容量紧张的归档与备份落点:优先纠删码降低空间开销
  • 延迟敏感的数据库卷:优先副本,避免重建与对齐开销
  • 对象网关的数据池可用纠删码,桶索引池仍用副本
  • 大文件顺序写:纠删码的整条带写入效率更好
  • 介质成本差异大:热数据用副本、冷数据用纠删码分层承载

两类池的创建与对比

两类池的创建与对比
ceph osd pool create ec-pool erasure default  # 建纠删码池
ceph osd pool create rep-pool 128 128        # 建副本池
ceph osd erasure-code-profile ls             # 查看纠删码配置
ceph osd erasure-code-profile get default    # 查看默认配置详情
ceph osd pool get rep-pool size              # 查看副本池副本数
ceph df detail                               # 对比两类池的实际占用

对比维度对照

维度多副本纠删码
空间开销与副本数成正比按块比例计算,通常更低
写入开销整份写入,开销直观涉及条带与部分写,开销更高
读取延迟较低受块数量与对齐影响,通常更高
恢复代价复制对象,代价低需读多个块重建,代价高
小对象效率不受影响小对象会被填充,效率下降
上层限制通用部分依赖原地更新的组件需用副本池
纠删码的容错能力取决于校验块数量:校验块越多,允许同时丢失的块越多,空间开销也同步上升。具体组合与容量开销以官方文档为准。
把延迟敏感的数据库卷或需要频繁原地更新的索引放到纠删码池上,会同时放大写放大与尾延迟。选择池类型前先确认上层组件的读写模式与硬性约束。

混合使用是常态

实际集群很少只用一种池:热数据与元数据用副本保证延迟,冷数据与归档用纠删码控制成本。分层的关键是明确哪些数据对延迟敏感、哪些只是容量占用,而不是简单按比例拆分。

易错点

  • 为省空间把延迟敏感卷放到纠删码池:写放大与尾延迟同时上升
  • 忽略上层组件对池类型的要求:部分索引类池必须使用副本,误配会导致功能异常
  • 只比较空间开销不看恢复成本:容量省下来,恢复期间带宽压力显著增加
  • 大量小文件写入纠删码池:填充造成的浪费抵消了节省效果
  • 分层却不做数据分类:冷热混放,两种池的优势都无法体现

数据来源与参考

  • Ceph 官方文档《Erasure Coding 与纠删码池》
  • 论文《Erasure Coding in Windows Azure Storage》(USENIX ATC 2012)
  • Ceph 官方文档《Replicated 与 EC 池对比》

整理校对:其其网ICT文档中心 · 本页地址:docs.qiqicto.com/storage/ceph-replication-versus-ec.html

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​​​‌​‌‌​​‌‌‌​‌‌​​‌​‌​​‌​‌‌‌‌​‌‌​​​‌‌​‌‌​​‌​‌​‌‌‌​​​​​‌‌​‌​​​​​‌​‌‌​‌​‌‌‌​​‌​​‌‌​​‌​‌​‌‌‌​​​​​‌‌​‌‌​​​‌‌​‌​​‌​‌‌​​​‌‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌‌​‌‌​​‌‌​​‌​‌​‌‌‌​​‌​​‌‌‌​​‌‌​‌‌‌​‌​‌​‌‌‌​​‌‌​​‌​‌‌​‌​‌‌​​‌​‌​‌‌​​​‌‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​