HomeFreeBSD

Prevent unnecessary resilver restarts

Description

Prevent unnecessary resilver restarts

If a device is participating in an active resilver, then it will have a
non-empty DTL. Operations like vdev_{open,reopen,probe}() can cause the
resilver to be restarted (or deferred to be restarted later), which is
unnecessary if the DTL is still covered by the current scan range. This
is similar to the logic in vdev_dtl_should_excise() where the DTL can
only be excised if it's max txg is in the resilvered range.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: John Gallagher <john.gallagher@delphix.com>
Reviewed-by: Kjeld Schouten <kjeld@schouten-lebbing.nl>
Signed-off-by: John Poduska <jpoduska@datto.com>
Issue #840
Closes #9155
Closes #9378
Closes #9551
Closes #9588

Details

Provenance
jwpoduska <jpoduska@datto.com>Authored on Nov 27 2019, 6:15 PM
Brian Behlendorf <behlendorf1@llnl.gov>Committed on Nov 27 2019, 6:15 PM
Parents
rG894f6696b4cf: Add display of checksums to zdb -R
Branches
Unknown
Tags
Unknown

Event Timeline

Brian Behlendorf <behlendorf1@llnl.gov> committed rG3c819a2c7da4: Prevent unnecessary resilver restarts (authored by jwpoduska <jpoduska@datto.com>).Nov 27 2019, 6:15 PM