RAID 1 und RAID 5 (und ihre Brüder 10 und 50) erreichen Datenredundanz durch Spiegelung und durch Paritätsprüfung. Auf diese Weise kann ein RAID-Array weiterhin auf Daten zugreifen, wenn ein Sektor auf einer Festplatte (oder einer ganzen Festplatte) nicht mehr lesbar ist. RAID 6 (oder 60) verwendet eine zusätzliche Prüfung, um doppelte Fehler zu berücksichtigen.
Aber wie kann ein RAID-Array mit Daten umgehen, die nicht völlig unlesbar, sondern einfach inkonsistent sind?
Wenn ein Fehler auftritt, bei dem z. B. Daten auf einem Streifen auf einer Festplatte geändert werden, die Änderung jedoch nicht auf die anderen übertragen wird, wird der gesamte Streifen inkonsistent. Wenn in einem gespiegelten Satz eine Festplatte "Dieses Bit ist 0" anzeigt, während die andere Festplatte "Dieses Bit ist 1" anzeigt, wie kann ein RAID-Controller wissen, welches richtig ist? Die gleiche Überlegung könnte auf einen RAID-5-Stripe angewendet werden, mit der zusätzlichen Komplexität, dass Sie nicht leicht erkennen können, welcher Sektor im Stripe tatsächlich falsch ist. Mindert RAID 6 dieses Problem mit seinen doppelten Ckecks oder kann es immer noch Probleme bei der Wiederherstellung nach Datenbeschädigung geben, wenn Daten tatsächlich lesbar sind, aber irgendwo falsch sind, insbesondere da RAID 6-Arrays in der Regel viele Festplatten haben?
Dies könnte theoretisch durch Prüfsummen gelöst werden, um sicherzustellen, welche Kopie der Daten (oder Parität) die richtige ist. Aber implementiert ein RAID-Controller tatsächlich diese Art von Prüfsumme (was natürlich zusätzlichen Platz beanspruchen würde)? Oder muss es auf Betriebssystemebene gehandhabt werden, wo die meisten Dateisysteme ihren Inhalt überprüfen können und werden? Und wenn dies der Fall ist, wie können sie dem RAID-Controller mitteilen, dass "Daten auf Sektor X auf Festplatte Y auf Streifen Z falsch sind", wenn der allgemeine Ansatz eines RAID-Controllers darin besteht, das Betriebssystem so weit wie möglich von der zugrunde liegenden Speicherschicht zu abstrahieren möglich?