Improve resilver ETAs
commitc85ac731a0ec16e4277857b55ebe123c552365b6
authorBrian Behlendorf <behlendorf1@llnl.gov>
Wed, 25 Jan 2023 19:28:54 +0000 (25 11:28 -0800)
committerGitHub <noreply@github.com>
Wed, 25 Jan 2023 19:28:54 +0000 (25 11:28 -0800)
tree27887ebb5f2cbf5b9c7b6ddec90a27c2b1515bb8
parent9cd71c8604d52def22ffaddc35755712f0fb9349
Improve resilver ETAs

When resilvering the estimated time remaining is calculated using
the average issue rate over the current pass.  Where the current
pass starts when a scan was started, or restarted, if the pool
was exported/imported.

For dRAID pools in particular this can result in wildly optimistic
estimates since the issue rate will be very high while scanning
when non-degraded regions of the pool are scanned.  Once repair
I/O starts being issued performance drops to a realistic number
but the estimated performance is still significantly skewed.

To address this we redefine a pass such that it starts after a
scanning phase completes so the issue rate is more reflective of
recent performance.  Additionally, the zfs_scan_report_txgs
module option can be set to reset the pass statistics more often.

Reviewed-by: Akash B <akash-b@hpe.com>
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #14410
cmd/zpool/zpool_main.c
man/man4/zfs.4
module/zfs/dsl_scan.c
module/zfs/spa_misc.c