3 ms·
Yep. "What happens if you read all the disks successfully but the redundancy doesn't agree?" is a great question. Mirrors and RAID5: there's obviously no way t
by willglynn 9y ago
Yep. "What happens if you read all the disks successfully but the redundancy doesn't agree?" is a great question.
Mirrors and RAID5: there's obviously no way that `md` software RAID can help, since it doesn't know which is correct. What about RAID6 though? Double parity means `md` would have enough information to determine which disk has provided incorrect data. Surely it does this, right?
Wrong. In the event of any parity mismatch, `md` assumes the data disks are correct and rewrites the parity to match. See "Scrubbing and Mismatches" section in `man 4 md`:
https://linux.die.net/man/4/md https://linux.die.net/man/4/md
If you scrub a RAID 6 array with a disk that returns bad data, `md` helpfully overwrites your two disks of redundancy in order to agree with the one disk that's wrong. Array consistent, job done, data... eaten.
- rob-olmos 9y agoThat's incredible! Thanks for the insight. Any recommendations for detecting/correcting bitrot with RHEL 7.4 at the filesystem or lower levels?