alice715 Posted June 24, 2020 Share Posted June 24, 2020 (edited) I had some read-errors today and unraid decided to do a parity check. The triggered parity check told me there was 0 errors in the parity. Which is fine I guess. Now I am wondering, if there was a silent error and the disk does not report it to be an error, when a parity check is done and it was found that the parity is wrong, how does UNRAID determine which disk has the wrong data? How does it determine if it was the parity data is wrong or it was the data disk is wrong? Edited June 24, 2020 by alice715 Added more info Quote Link to comment
trurl Posted June 24, 2020 Share Posted June 24, 2020 It has no way to know so a correcting parity check always corrects parity. What do you mean by this? 2 hours ago, alice715 said: unraid decided to do a parity check. The triggered parity check Only a reboot after an unclean shutdown will trigger a (noncorrecting) parity check. Quote Link to comment
alice715 Posted June 24, 2020 Author Share Posted June 24, 2020 3 hours ago, trurl said: It has no way to know so a correcting parity check always corrects parity. What do you mean by this? Only a reboot after an unclean shutdown will trigger a (noncorrecting) parity check. I see. I guess there is still a risk of data being corrupted silently if there is a bad drive giving off corrupted reads but is not reported to be a bad read from the drive itself. I think it is just a conincidence that there was a read error just a few minutes before my scheduled parity check kicked in. Also probably the parity check itself discovered the data read error. Quote Link to comment
trurl Posted June 25, 2020 Share Posted June 25, 2020 Parity is the same wherever it is used in computers and communications. Parity is just an extra bit that allows a missing bit to be calculated from all the other bits. Whether RAID or Unraid, parity is just extra bits that allow the bits of a failed or missing disk to be calculated from the bits of all the other disks. Since it is just an extra bit with no information about any disks, there is no way to know which of the bits is out-of-sync. Something that sometimes happens with a read error. Unraid will get the failed read data from the parity calculation using all the other disks, then write it back to the drive. If that write-back fails then the disk gets disabled just like any failed write. Quote Link to comment
alice715 Posted June 25, 2020 Author Share Posted June 25, 2020 I was reading a bit about this and found out that ZFS actually protects against silent data corruption since each block of data has its own checksum. Maybe I should explore on how to implement ZFS in unraid (just saw some possible solution by quick Googling) since I already purchased UNRAID; would be a waste to move to an entire different platform now. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.