]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
zed: Take no action on scrub/resilver checksum errors
authorBrian Behlendorf <behlendorf1@llnl.gov>
Tue, 24 May 2022 16:36:07 +0000 (09:36 -0700)
committerGitHub <noreply@github.com>
Tue, 24 May 2022 16:36:07 +0000 (09:36 -0700)
commitcf70c0f8ae01c24699767b5ecfbe1882c009d53a
tree9790515a7a2701c7aeadf3c4a5e89e8c81ae9aa8
parent2cd0f98f4aae7110a48cb0623e1e3d66b9f58785
zed: Take no action on scrub/resilver checksum errors

When scrubbing/resilvering a pool it can be counter productive to
cancel the scan and kick of a replace operation to a hot spare
when encountering checksum errors.  In this case, the best course
of action is to allow the scrub/resilver to complete as quickly
as possible and to keep the vdevs fully online if possible.

Realistically, this is less of an issue for a RAIDZ since a
traditional resilver must be used and checksums will be verified.
However, this is not the case for a mirror or dRAID pool which is
sequentially resilvered and checksum verification is deferred
until after the replace operation completes.

Regardless, we apply this policy to all pool types since it's
a good idea for all vdevs.  Degrading additional vdevs has the
potential to make a bad situation worse.  Note the checksum
errors will still be reported as both an event and by
`zpool status`.  This change only prevents the ZED from
proactively taking any action.

Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Reviewed-by: Tony Nguyen <tony.nguyen@delphix.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #13499
cmd/zed/agents/zfs_diagnosis.c