暂时禁用 Ceph scrubbing 以解决高 IO 负载
在一个 Ceph 集群中,带宽 较低,OpenStack 实例的根磁盘在几天内变得非常慢。
当 OSD 正在 scrubbing 一个 placement group 时,它会对性能产生重大影响,这是预期的,持续时间不长。然而,在本例中,它却减慢到 OSD 因为未及时响应而被标记为 down 的程度
2014-07-30 06:43:27.331776 7fcd69ccc700 1 mon.bm0015@0(leader).osd e287968 我们有足够的报告/报告者来将 osd.12 标记为 down
为了摆脱这种状况,scrub 和 deep scrub 都被禁用,使用
root@bm0015:~# ceph osd set noscrub set noscrub root@bm0015:~# ceph osd set nodeep-scrub set nodeep-scrub
一天后,由于 IO 负载保持稳定,确认没有其他因素导致它,scrubbing 被重新激活。导致过高 IO 负载的上下文已被更改,并且在检查同一台机器上的日志后,确认 scrubbing 在 24 小时后没有再次发生
2014-07-31 15:29:54.783491 7ffa77d68700 0 log [INF] : 7.19 deep-scrub ok 2014-07-31 15:29:57.935632 7ffa77d68700 0 log [INF] : 3.5f deep-scrub ok 2014-07-31 15:37:23.553460 7ffa77d68700 0 log [INF] : 7.1c deep-scrub ok 2014-07-31 15:37:39.344618 7ffa77d68700 0 log [INF] : 3.22 deep-scrub ok 2014-08-01 03:25:05.247201 7ffa77d68700 0 log [INF] : 3.46 deep-scrub ok