3.3.11. Back fill 状态
当新的 OSD 加入集群时,CRUSH 会将集群中的 OSD 重新分配给新添加的 OSD。强制新 OSD 接受重新分配的 PG,可立即对新 OSD 进行过度负载。使用放置组回填 OSD 使此过程在后台开始。回填完成后,新 OSD 会在请求就绪时开始提供请求。
在回填操作中,您可能会看到状态中的一个:* backfill_wait
表示回填操作处于待处理状态,但没有发生 * backfill
表示回填操作处于路上去 * backfill_too_full
表示请求回填操作,但可能会因为存储容量不足而无法完成。
当 PG 无法回填时,它可能被视为 不完整
。
Ceph 提供了一些设置,用于管理与 PG 相关的负载高峰,特别是新 OSD。默认情况下,osd_max_backfills
将最大并发回填数量(来自或到一个 OSD)设置为 10。如果 OSD 接近全满比率,则 osd 回填比率
可让 OSD 拒绝回填请求,默认为 85%。如果 OSD 拒绝回填请求,osd backfill retry interval
可让 OSD 在 10 秒后重试请求。OSD 也可以设置 osd backfill scan min
和 osd backfill scan max
,以管理扫描间隔(默认为 64 和 512)。
对于某些工作负载,完全避免常规恢复并使用回填会很有帮助。由于回填在后台发生,因此这允许 I/O 继续进行 OSD 中的对象。要强制回填而不是恢复,将 osd_min_pg_log_entries
设为 1
,并将 osd_max_pg_log_en
则设为 2
。当这个情况与您的工作负载相符,请联系您的红帽支持团队。