Replacing a failing disk in a mirrored vdev results in checksum errors on new drive #18846
Replies: 1 comment
|
You generally should not offline the old member first when it is still readable. Keeping it online preserves an additional copy during replacement. The documented semantics of ZFS does not need to choose one source disk for the entire resilver. Mirror reads can be distributed among eligible children; if a returned block fails its checksum or an I/O fails, redundancy lets ZFS read a valid replica and repair the bad copy. Therefore the important guarantee is checksum validation and retry, not whether both old members were being read simultaneously. Offlining the suspect member would merely remove one possible source and reduce the temporary redundancy. The exception worth checking is whether you explicitly used
The part I would investigate is the attribution to the new device. A CKSUM count on that vdev means a later read from that path returned bytes that did not match the block checksum; ZFS repaired them from another replica. It does not by itself mean “bad data was copied from the failing disk.” Repeated CKSUM with few/no READ or WRITE errors often points to the data path—SATA/SAS cable, backplane slot, HBA, power, or RAM—as well as the disk itself. The fact that a scrub repaired the blocks and later scrubs/read traffic have stayed clean is reassuring, but ~500 corrected blocks is enough to inspect rather than dismiss. I would preserve the current evidence (and confirm the backup) before another zpool status -vP <pool>
zpool events -v <pool>
smartctl -x /dev/disk/by-id/<replacement>
dmesg -T | grep -Ei 'ata|sas|scsi|reset|crc|i/o error|zfs'For SATA, pay particular attention to UDMA CRC errors (cable/backplane) versus pending/offline-uncorrectable sectors (media). Run the replacement disk's long SMART self-test and keep monitoring across the next scrub. If CKSUM increments again, move/replace the cable or slot and treat the replacement disk as suspect until the source is isolated. So the short answers are: leaving the old disk online was the correct replacement procedure; |
Uh oh!
There was an error while loading. Please reload this page.
This may be from my own misunderstanding: when replacing a disk in a mirrored vdev setup does ZFS read data from both of the disks at the same time when building out the new disk? My scenario played out like this:
It looks like I should have explicitly offlined the old disk first before starting a replacement/resilver. Before I started the replacement process I had done a
zpool clear, I'm not sure if this would change the behavior of ZFS or not. If ZFS knew the existing disk had errors and the same scenario above played out would ZFS have read data only from the one healthy disk in the mirrored vdev?All reactions