Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

osd: Add config option to disable new scrubs during recovery #11874

Merged
merged 1 commit into from Nov 12, 2016

Conversation

wido
Copy link
Member

@wido wido commented Nov 9, 2016

A new config option allows for configuring if the OSD will schedule
a new scrub while recovery is active.

When set to false no new scrubs will be initiated by the OSD while
there are recovery threads active on that OSD.

Fixes: http://tracker.ceph.com/issues/17866
Signed-off-by: Wido den Hollander wido@42on.com

if (scrubs_pending + scrubs_active < cct->_conf->osd_max_scrubs) {
if (!cct->_conf->osd_scrub_during_recovery && recovery_ops_active > 0) {
dout(20) << __func__ << "not scheduling scrub because recovery is active" << dendl;
} else if (scrubs_pending + scrubs_active < cct->_conf->osd_max_scrubs) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the check should go alongside the load and time checks in sched_scrub()

@wido
Copy link
Member Author

wido commented Nov 10, 2016

Could you check again @liewegas ? Or do you want this to go into the same if as the load and time check?

@liewegas
Copy link
Member

/home/jenkins-build/build/workspace/ceph-pull-requests/src/osd/OSD.cc: In member function ‘void OSD::sched_scrub()’:
/home/jenkins-build/build/workspace/ceph-pull-requests/src/osd/OSD.cc:6579:53: error: ‘recovery_ops_active’ was not declared in this scope
if (!cct->_conf->osd_scrub_during_recovery && recovery_ops_active > 0) {

@wido wido force-pushed the osd-no-scrub-recovery branch 4 times, most recently from 40251b1 to 36f30d7 Compare November 11, 2016 08:27
@wido
Copy link
Member Author

wido commented Nov 11, 2016

There seems to be a erasure coding failure, but I don't see why this might be related to this change

The osd_scrub_during_recovery config option allows for configuring
if the OSD will schedule a new scrub while recovery is active.

When set to false no new scrubs will be initiated by the OSD while
there are recovery threads active on that OSD.

Signed-off-by: Wido den Hollander <wido@42on.com>
@smithfarm
Copy link
Contributor

@liewegas Is this a candidate for backport to jewel?

@liewegas
Copy link
Member

@smithfarm sure, once it lands in master

@liewegas
Copy link
Member

Adding this to one of the thrashers in ceph-qa-suite, see ceph/ceph-qa-suite#1248

@smithfarm
Copy link
Contributor

smithfarm commented Nov 11, 2016

@wido Could you add Fixes: http://tracker.ceph.com/issues/17866 ? (to the commit - I just added it to the PR description)

@liewegas liewegas merged commit 9100d33 into ceph:master Nov 12, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants