ZFS scrub/selfheal not really working
Nathanael Hoyle
nhoyle at hoyletech.com
Fri May 29 19:01:50 UTC 2009
Dmitry Marakasov wrote:
> * Andrew Snow (andrew at modulus.org) wrote:
>
>
>> Because your disk subsystem is broken and keeps returning new sets of
>> bad sectors.
>>
>
> Still running my utility fixed them. Running scrub don't.
>
>
scrub isn't trying to repair bad sectors on your hard drive. scrub is
trying to restore the health of all copies of the data based on
available parity or mirrors. These are different goals. As was
suggested, I expect that if you have either power supply or controller
errors, you are having new, unique, device-layer read errors every scrub
pass (note your counts between passes are very different). You are not
having zpool-layer failures (zfs is successfully using parity or mirror
information to ensure that no bad data was returned to the application
layer). In the course of a scrub, a read error should result in a new
sector being written with the appropriate data, based on parity or
mirror data, this does not prevent the original sector from having read
failures if you attempt to read it on a block by block basis. The
diagram you referenced is too high level to be meaningful. For better
treatment, I suggest you refer to
http://dlc.sun.com/pdf/819-5461/819-5461.pdf specifically "Checking ZFS
Data Integrity" beginning on page 251, and continuing through say page 261.
Best of luck,
-Nathanael
More information about the freebsd-fs
mailing list