3.2.3.7. 回填
当新 OSD 加入集群时,CRUSH 会将 PG 从集群中的 OSD 重新分配到新添加的 OSD。强制新 OSD 立即接受重新分配的 PG 可能会给新 OSD 带来过多的负载。将 OSD 与 PG 回填可让此过程在后台开始。完成回填后,新 OSD 将在准备好时开始为请求提供服务。
在回填操作中,您可能看到以下状态之一: backfill_wait
表示回填操作处于待处理状态,但还没有在进行中; backfill
表示正在进行回填操作; backfill_too_full
表示请求了回填操作,但因为存储容量不足而无法完成。当无法回填 PG 时,可以将其视为 incomplete
。
Ceph 提供了多个设置来管理与将 PG 重新分配到 OSD 相关的负载高峰,特别是新 OSD。默认情况下,osd_max_backfills
将 OSD 的最大并发回填操作数设置为 10。如果 OSD 接近满比率,则 OSD 能够拒绝回填请求,默认为 85%。osd backfill full ratio
如果 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_entries
设置为 2
。有关何时适合您的工作负载的详细信息,请联系您的红帽支持客户团队。