On Tue, 8 Nov 2016, Wido den Hollander wrote: > > Op 8 november 2016 om 9:35 schreef Stefan Priebe - Profihost AG <s.priebe@xxxxxxxxxxxx>: > > > > > > Hello, > > > > i'm wondering if anybody has already thought about automatically > > stopping srub and deep-scrub in case of backfilling or recovering. I've > > seen several situations where scrubbing massivly raises the latency > > while doing backfilling or recovering. > > > > Seems like a sane change to me, but maybe a dev has a better option. I > don't think a stop is easy, but a 'noscrub' flag could be set inside the > OSD. > > Maybe a config option: osd_scrub_during_recovery > > Defaults to true, but can be set to false by the admin. > > Before a scrub starts the OSD will check if there is recovery / > backfilling active on the OSD and if so it will not initiate the scrub. Yeah, it seems reasonable. I think there are two basic options: - Disable scrubbing locally on each OSD if it has scrubbing PGs. Two unrelated OSDs would be free to scrub and backfill at the same time. - Disable scrubbing globally if any pgs are backfilling. The reasoning here is that if backfilling is increasing the latency on some PGs, we don't want to increase the latency on others (by scrubbing) too. The other consideration is that if backfil is happening it probably doesn't mean we want to prevent scrubbing indefinitely. Instead, I'd suggest increasing the scrub intervals by some factor (e.g., 2x). The first option would probably be a change in the scrub scheduling in the OSD. The latter could be accomplished by having the mon publish a scrub interval scaling factor in the OSDMap... sage -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html