Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Wikipedia says "RAID 2 is the only standard RAID level, other than some implementations of RAID 6, which can automatically recover accurate data from single-bit corruption in data."

Does anyone know if the RAID 6 mdadm implementation in Linux is one such implementation that can automatically detect and recover from single-bit data corruption. This pertains to CentOS / Red Hat 6 if those are different from other versions. I tried searching online but didn't have much luck.

With SATA error rates being 1 in 1E14 bits, and a 2TB SATA disk containing 1.6E13 bits, this is especially relevant to preventing data corruption.

EDIT 17-Jun-2015

I believe this is less of a concern that I originally thought - see Hard disk / SSDs - detection and handling of errors - is silent data corruption reliably prevented? for more details

share|improve this question
up vote 11 down vote accepted

Linux software RAID is not going to protect you from bit corruption and silent data corruption is a well known issue with it. In fact, if the kernel is able to read the data from one disk it would never know that it is bad. The RAID only kicks in if there is an I/O error when reading the data.

If you are worried about data integrity you should consider using a file system like Btrfs or ZFS that ensure data integrity by storing and verifying checksums. These file systems also take care of the RAID functionality, so you don't need the kernel software raid if you go that way.

share|improve this answer
Thanks. In case it's helpful to anyone, I got some more search ideas from chutz's reply and saw that the maintainer of mdadm (I believe) said on Feb 17, 2011 that he has no plans to add the ability to force parity checking on every read. See – sa289 May 23 '12 at 18:44

RAID5 and RAID6 can detect and usually correct bit corruption if you verify parity of the entire drive. This is called "scrubbing" or "parity checking" and typically takes 24-48 hours on most production RAID system. During that time performance may be significantly degraded. (Some systems allow the operator to prioritize scrubbing over read/write access or below it.) RAID6 has a higher chance of correcting it, because it can correct it if you have two drive failures, whereas RAID5 can only handle 1 drive failure, and drive failures are more likely when you are scrubbing because of the increased activity.

share|improve this answer
It is not universally true that performance will be noticably degraded during a RAID scrub. If the scrub uses all available system resources and is "dumb" then it will. But, all SANs and I imagine most RAID controllers will run the scrub at a lower or "nice" priority, adjusting the resource utilization dynamically so that it doesn't consume resources needed to maintain production performance. – Jeremy Nov 30 '12 at 22:36
You are correct. I edited the answer to add nuance. – vy32 Nov 30 '12 at 22:41
if your mdadm raid 6 array is /dev/md1 then is the command to make it verify the parity and attempt repair of single bit corruption "echo check > /sys/block/md1/md/sync_action" – BeowulfNode42 Nov 18 '13 at 1:20
They don't "protect against bit corruption", they detect bit corruption if you scrub. See my question here for details. – Jack Douglas Jan 17 '15 at 4:40
I suggest changing the answer to "RAID5 and RAID6 is able to repair bit corruption" – Waxhead Jun 7 '15 at 13:18

I would have added this as a comment but I don't have sufficient reputation; I wanted to clarify: RAID5 can DETECT bit corruption but it doesn't know which drive has the corruption without a read error. As a result, a scrub couldn't fix this without a read error - it would most likely just log it and update the parity bit to match. RAID6's algorithm is position-dependant so it can detect which drive contained the error and correct the bit corruption.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.