Linux mdadm Software RAID 6 - Unterstützt es die Wiederherstellung nach Bit-Korruption?

15

Laut Wikipedia ist "RAID 2 - abgesehen von einigen Implementierungen von RAID 6 - die einzige Standard-RAID-Stufe, mit der genaue Daten automatisch nach einer Einzelbit-Beschädigung in Daten wiederhergestellt werden können".

Weiß jemand, ob die RAID 6 mdadm-Implementierung unter Linux eine solche Implementierung ist, mit der sich Einzelbit-Datenbeschädigungen automatisch erkennen und beheben lassen? Dies betrifft CentOS / Red Hat 6, wenn sich diese von anderen Versionen unterscheiden. Ich habe versucht, online zu suchen, hatte aber nicht viel Glück.

Bei SATA-Fehlerraten von 1 zu 1E14 Bit und einer 2 TB großen SATA-Festplatte mit 1,6E13 Bit ist dies besonders wichtig, um Datenkorruption zu verhindern.

EDIT 17-Jun-2015

Ich glaube, dies ist weniger ein Problem, von dem ich ursprünglich dachte: Siehe Festplatten / SSDs - Erkennung und Behandlung von Fehlern - Wird eine stille Datenkorruption zuverlässig verhindert? für mehr Details

sa289
quelle

Antworten:

15

Linux-Software-RAID schützt Sie nicht vor Bit-Korruption, und eine stille Datenkorruption ist ein bekanntes Problem. In der Tat, wenn der Kernel in der Lage ist, die Daten von einer Festplatte zu lesen, würde er nie wissen, dass es schlecht ist. Das RAID wird nur aktiviert, wenn beim Lesen der Daten ein E / A-Fehler auftritt.

Wenn Sie sich Sorgen um die Datenintegrität machen, sollten Sie ein Dateisystem wie Btrfs oder ZFS verwenden , das die Datenintegrität durch Speichern und Überprüfen von Prüfsummen sicherstellt. Diese Dateisysteme kümmern sich auch um die RAID-Funktionalität, sodass Sie den Kernel-Software-RAID nicht benötigen, wenn Sie diesen Weg einschlagen.

Chutz
quelle
Vielen Dank. Für den Fall, dass es für jemanden hilfreich ist, habe ich aus der Antwort von chutz weitere Suchideen erhalten und festgestellt, dass der Betreuer von mdadm (glaube ich) am 17. Februar 2011 sagte, er habe keine Pläne, die Paritätsprüfung bei jedem Lesevorgang zu erzwingen. Siehe spinics.net/lists/raid/msg32816.html
sa289
3

RAID5 und RAID6 können Bit-Korruption erkennen und normalerweise korrigieren, wenn Sie die Parität des gesamten Laufwerks überprüfen. Dies wird als "Scrubbing" oder "Paritätsprüfung" bezeichnet und dauert bei den meisten RAID-Produktionssystemen in der Regel 24 bis 48 Stunden. Während dieser Zeit kann die Leistung erheblich beeinträchtigt werden. (Bei einigen Systemen kann der Bediener das Scrubben vor dem Lese- / Schreibzugriff oder darunter priorisieren.) Bei RAID6 besteht eine höhere Wahrscheinlichkeit, dass das Problem behoben wird, da es bei zwei Laufwerksfehlern behoben werden kann, während RAID5 nur einen Laufwerksfehler behandeln kann Laufwerksausfälle sind aufgrund der erhöhten Aktivität beim Schrubben wahrscheinlicher.

vy32
quelle
1
Es ist nicht allgemeingültig, dass sich die Leistung während eines RAID-Scrubs merklich verschlechtert. Wenn das Scrub alle verfügbaren Systemressourcen nutzt und "dumm" ist, wird es dies tun. Ich gehe jedoch davon aus, dass alle SANs und die meisten RAID-Controller das Scrub mit einer niedrigeren oder "netten" Priorität ausführen und die Ressourcennutzung dynamisch anpassen, sodass keine Ressourcen verbraucht werden, die für die Aufrechterhaltung der Produktionsleistung erforderlich sind.
Jeremy
Du hast Recht. Ich habe die Antwort bearbeitet, um Nuancen hinzuzufügen.
30.
wenn Ihr mdadm RAID 6 - Array / dev / md1 dann ist der Befehl , um es die Parität und Versuch Reparatur von einzelner Bit Korruption zu machen überprüfen "echo Prüfung> / sys / block / md1 / md / sync_action"
BeowulfNode42
2
Sie "schützen nicht vor Bit-Korruption", sondern erkennen Bit-Korruption, wenn Sie scrubben. Siehe meine Frage hier für Details.
Ich schlage vor, die Antwort auf "RAID5 und RAID6 können Bit-Korruption reparieren" zu
ändern
2

Ich hätte dies als Kommentar hinzugefügt, aber ich habe keinen ausreichenden Ruf. Ich wollte klarstellen: RAID5 kann Bit-Korruption erkennen, aber es weiß nicht, welches Laufwerk die Korruption aufweist, ohne dass ein Lesefehler vorliegt. Infolgedessen konnte ein Scrub dies nicht ohne einen Lesefehler beheben - es würde höchstwahrscheinlich nur protokollieren und das Paritätsbit entsprechend aktualisieren. Der RAID6-Algorithmus ist positionsabhängig, sodass er erkennen kann, auf welchem ​​Laufwerk der Fehler aufgetreten ist, und die Bit-Beschädigung beheben kann.

sbingner
quelle
Das wäre toll, wenn es stimmt! Können Sie bitte Links angeben, wo dies dokumentiert ist?
Alek_A
2

Alle obigen Antworten sind in Bezug auf die Funktionen von RAID 6 falsch. RAID 6-Algorithmen arbeiten byteweise wie RAID 5, und wenn ein einzelnes Byte auf einem Laufwerk beschädigt ist, kann dies auch ohne Angabe eines Fehlers durch das Laufwerk geschehen erkannt und korrigiert werden. Der Algorithmus dazu wird in vollständig erklärt

https://mirrors.edge.kernel.org/pub/linux/kernel/people/hpa/raid6.pdf

Um diese Überprüfung durchzuführen, müssen die Paritätslaufwerke P und Q zusammen mit den Datenlaufwerken gelesen werden. Wenn sich die berechnete Parität P 'und Q' ohne Laufwerksfehler unterscheidet, kann eine Analyse herausfinden, welches der Laufwerke falsch ist, und die Daten korrigieren.

Wenn sich die Laufwerksidentifikation auf ein Laufwerk bezieht, das nicht vorhanden ist (z. B. Laufwerk 137, wenn nur 15 Laufwerke vorhanden sind), stellt mehr als ein Laufwerk für DIESES BYTE beschädigte Daten bereit, was auf einen nicht korrigierbaren Fehler hinweist. Befinden sich weniger als 256 Laufwerke im Satz, wird dies mit hoher Wahrscheinlichkeit pro Byte erkannt, und da ein Block viele Bytes enthält, mit extrem hoher Wahrscheinlichkeit pro Block. Wenn die Laufwerksidentifikation nicht für alle Bytes innerhalb des RAID-Blocks konsistent ist, liefert wieder mehr als ein Laufwerk beschädigte Daten, und im Allgemeinen kann man die Bedingung ablehnen, aber solange alle Laufwerksidentifikationen gültig sind, muss der Block nicht notwendigerweise Abgelehnt werden.

Die Durchführung dieser Korrektur dauert länger als die übliche Überprüfungszeit, sie muss jedoch nur durchgeführt werden, wenn die Berechnung des Syndroms (P und Q) einen Fehler anzeigt.

Trotzdem habe ich den mdadm-Code nicht untersucht, um festzustellen, ob eine Einzelbyte-Beschädigung behandelt wird. Ich bin mir bewusst, dass mdadm beim monatlichen Scan RAID6-Syndrom-Fehler meldet, aber anhand der Fehlermeldung ist nicht klar, ob sie behoben werden - das Laufwerk-Array wird nicht gestoppt, und es wird kein bestimmtes Laufwerk in der Nachricht identifiziert.

Cafe Hunk
quelle