igozhang

——

    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 启用自动均衡

    补充要点:

    1. 前置条件: 集群宜处于 HEALTH_OK 或可接受的健康状态;避免在大规模恢复 / 回填高峰时盲目加大均衡压力。

    2. 模式选择: upmap 为常见推荐;若版本过旧不支持,再评估 crush-compat 等兼容模式。

    3. 观察效果: 开启后可用下列命令观察占用与恢复情况:

      ceph -s
      ceph osd df tree
      ceph df
      
    4. 临时关闭(如需):

      ceph balancer off
      
    5. 与“某 pool 不均衡”的关系: Balancer 作用于集群 PG 分布;若仅个别 pool 异常,还需结合该 pool 的 pg_num/pgp_num、CRUSH 规则、OSD 权重与故障域排查,不能只依赖 balancer。

    简要流程

    查看 status → 设置 mode upmap → balancer on → 观察 osd df / ceph -s
    

    MP3