Ceph常见问题
pool_balance(集群均衡)
问题 / 目标
避免因数据分布不均,导致某节点存储占用过高的风险(局部打满、性能倾斜、扩缩容后长期不均衡等)。
可通过开启并配置 Ceph Balancer(均衡器),将 PG / 对象在 OSD 间重新分布,降低单节点过载概率。
推荐操作
按顺序执行:
# 1. 查看均衡器当前状态(是否开启、模式、计划等)
ceph balancer status
# 2. 设置均衡模式为 upmap(基于 pg-upmap,适合较新版本集群)
ceph balancer mode upmap
# 3. 开启均衡器
ceph balancer on
说明
| 命令 | 作用 |
|---|---|
ceph balancer status |
查看均衡器开关、模式、是否有待执行优化等 |
ceph balancer mode upmap |
使用 upmap 模式做 PG 映射优化(一般优于旧的 crush-compat) |
ceph balancer on |
启用自动均衡 |
补充要点:
-
前置条件: 集群宜处于
HEALTH_OK或可接受的健康状态;避免在大规模恢复 / 回填高峰时盲目加大均衡压力。 -
模式选择:
upmap为常见推荐;若版本过旧不支持,再评估crush-compat等兼容模式。 -
观察效果: 开启后可用下列命令观察占用与恢复情况:
ceph -s ceph osd df tree ceph df -
临时关闭(如需):
ceph balancer off -
与“某 pool 不均衡”的关系: Balancer 作用于集群 PG 分布;若仅个别 pool 异常,还需结合该 pool 的
pg_num/pgp_num、CRUSH 规则、OSD 权重与故障域排查,不能只依赖 balancer。
简要流程
查看 status → 设置 mode upmap → balancer on → 观察 osd df / ceph -s