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