首页 > 解决方案 > 未及时深度清理的 Ceph PG 不断增加

问题描述

我大约 4 天前注意到了这一点,现在不知道该怎么办。问题如下:

我有一个 6 节点 3 监视器 ceph 集群,有 84 个 osds、72x7200rpm 旋转磁盘和 12xnvme ssds 用于日志记录。清理配置的每个值都是默认值。集群中的每个 pg 都是 active+clean,每个集群 stat 都是绿色的。然而,没有及时进行深度清洗的PG不断增加,目前为96。ceph -s 的输出:

  cluster:
    id:     xxxxxxxxxxxxxxxxx
    health: HEALTH_WARN
            1 large omap objects
            96 pgs not deep-scrubbed in time

  services:
    mon: 3 daemons, quorum mon1,mon2,mon3 (age 6h)
    mgr: mon2(active, since 2w), standbys: mon1
    mds: cephfs:1 {0=mon2=up:active} 2 up:standby
    osd: 84 osds: 84 up (since 4d), 84 in (since 3M)
    rgw: 3 daemons active (mon1, mon2, mon3)

  data:
    pools:   12 pools, 2006 pgs
    objects: 151.89M objects, 218 TiB
    usage:   479 TiB used, 340 TiB / 818 TiB avail
    pgs:     2006 active+clean

  io:
    client:   1.3 MiB/s rd, 14 MiB/s wr, 93 op/s rd, 259 op/s wr

我该如何解决这个问题?此外,ceph 健康详细信息输出显示此非深度清理 pg 警报于 1 月 25 日开始,但我之前没有注意到这一点。我注意到这一点的时间是一个 osd 宕机 30 秒然后起床的时候。可能与这个问题有关吗?它会自行解决吗?我应该篡改擦洗配置吗?例如,如果我将 osd_max_scrubs 从 1 增加到 2,我可能会在客户端面临多少性能损失?

标签: cephobject-storagedata-scrubbing

解决方案


您可以将深度磨砂期设置为 2 周,以延长深度磨砂期。安装在

 osd_deep_scrub_interval = 604800

利用:

 osd_deep_scrub_interval = 1209600

Eblock 先生有一个好主意,可以手动强制一些 pgs 进行深度清理,以便在 2 周内将这些操作分散开来。


推荐阅读