-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
Defer resilver only when progress is above a threshold #15810
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The idea is interesting; however, there seems to be issues showing up in the ZTS tests currently with this commit.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
I wonder what the difference between the test setup and mine dev setup here is... I get all the
|
Looking at the failure on the CentOS 8 build it looks like it might be worth running the tag |
I missed that, thank you :) Meanwhile my local test run got stuck right there too (didn't hit the send/recv problem this time) |
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
da4d202
to
129988f
Compare
129988f
to
26818ad
Compare
26818ad
to
2869830
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@snajpa this looked pretty close to me, just a couple comments inline. You can drop the "Draft" status when you're happy with it.
Restart a resilver from scratch, if the current one in progress is below a new tunable, zfs_resilver_defer_percent (defaulting to 10%). The original rationale for deferring additional resilvers, when there is already one in progress, was to help achieving data redundancy sooner for the data that gets scanned at the end of the resilver. But in case the admin wants to attach multiple disks to a single vdev, it wasn't immediately obvious the admin is supposed to run `zpool resilver` afterwards to reset the deferred resilvers and start a new one from scratch. Signed-off-by: Pavel Snajdr <[email protected]>
2869830
to
6b99e43
Compare
@snajpa Could you take a look on the |
@amotin does it only fail on FreeBSD? I can't get it to fail on Linux 6.11; I guess time to install FreeBSD? \o/ |
Motivation and Context
#14505
#15249
#15739
Description
Defer resilver only when progress is above a threshold
Restart a resilver from scratch, if the current one in progress is below a new tunable, zfs_resilver_defer_percent (defaulting to 10%).
The original rationale for deferring additional resilvers, when there is already one in progress, was to help achieving data redundancy sooner for the data that gets scanned at the end of the resilver.
But in case the admin wants to attach multiple disks to a single vdev, it wasn't immediately obvious the admin is supposed to run
zpool resilver
afterwards to reset the deferred resilvers and start a new one from scratch.How Has This Been Tested?
Manually on a ZVOL-backed single vdev single disk pool, attaching more ZVOLs consecutively at various point of resilver progress to see if it is in fact restarted when progress is below zfs_resilver_defer_percent.
Types of changes
Checklist:
Signed-off-by
.