Darren Dunham wrote:
Also, even if it could read the data from a subset of the disks, isn't
it a feature that every read is also verifying the parity for
correctness/silent corruption?
It doesn't -- we only read the data, not the parity.  (See line 708 of
vdev_raidz.c.)  The parity is checked only when scrubbing.

Ah, that's a major misconception on my part then.  I'd thought I'd read
that unlike any other RAID implementation, ZFS checked and verified
parity on normal data access.
That would be useless, and not provide anything extra. ZFS will do a block checksum check (that is, for each block read, read the checksum for that block, and compare to see if it is OK). If the block checksums show OK, then reading the parity for the corresponding data yields no additional useful information.

I'm assuming that in a RAIDZ, RAIDZ2, or mirror configuration, should a block checksum show the corresponding block is corrupted, then ZFS will read the parity (or corresponding mirror) block, and attempt to re-construct the "bad" block, give the corrected info to the calling process, then re-writing the corrected data to a new block section on the disk(s).

Right?

-Erik

_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to