深入的 scrub 分布

转载

为了验证数据的完整性,Ceph 使用一种称为深入 scrub 的机制,它会每周为每个放置组浏览所有数据。当所有 osd 同时运行深入 scrub 时,这可能是过载的原因。

你可以轻松地查看当前是否正在运行深入 scrub(以及有多少个)使用 ceph status `ceph -w`。但更有趣的是查看一周内的分布情况,以预测负载

获取一周的分布

$ for date in `ceph pg dump | grep active | awk '{print $20}'`; do date +%A -d $date; done | sort | uniq -c
    239 monday
     41 tuesday
      2 saturday
    410 sunday

我们可以很容易地看到深入 scrub 完成的时间(在我的例子中是星期日和星期一)。

深入 scrub 的默认间隔是每周一次,但可以使用参数‘osd deep scrub interval’进行调整:https://ceph.net.cn/docs/master/rados/configuration/osd-config-ref/#scrubbing

每小时的分布

$ for date in `ceph pg dump | grep active | awk '{print $21}'`; do date +%H -d $date; done | sort | uniq -c
     11 00
     26 01
     34 02
     37 03
     26 04
     25 05
     14 06
      1 08
     28 09
     49 10
     52 11
     46 12
     37 13
     31 14
     29 15
     45 16
     34 17
     33 18
     27 19
     33 20
     27 21
     25 22
     22 23