Schützt RAID 1 vor Korruption?

14

Schützt Raid 1 vor Datenkorruption? Angenommen, ich behalte alle wichtigen Dateien auf einem NAS, der zwei Festplatten in einem RAID 1 verwendet. Wenn auf einer Festplatte ein internes Problem auftritt und die Daten beschädigt werden, erkennt das RAID dies automatisch und korrigiert es Verwenden Sie Daten von der anderen guten Festplatte?

Konnte es überhaupt wissen, welches Exemplar das Gute ist?

Schützt RAID 5 vor Korruption?

Ich weiß, dass RAID keine Backup-Lösung ist. Ich versuche herauszufinden, wie ich sicherstellen kann, dass keine beschädigten Daten gesichert werden.

Reg Edit
quelle

Antworten:

13

RAID-1 schützt vor dem vollständigen Ausfall eines der beiden Laufwerke. Wenn das Laufwerk nicht als fehlerhaft markiert ist, wird davon ausgegangen, dass sein Inhalt korrekt ist. Wenn jedoch aus irgendeinem Grund eines der beiden Laufwerke inkonsistente Daten zurückgibt, wird dieser Fehler vom RAID-System nicht erkannt und die Anwendung erhält fehlerhafte Daten.

Viele Controller verfügen über einen Überprüfungsprozess, der regelmäßig ausgeführt wird. Der Zweck dieses Prozesses besteht jedoch darin, den Datenträger auf Fehler und nicht auf Datenintegrität zu testen. Festplatten implementieren ihre eigenen Datenintegritätstests und Prüfsummen, mit denen sie fehlerhafte Sektoren erkennen. Der Algorithmus ist jedoch schnell und kompakt, nicht gründlich, sodass Fehler durchdringen können.

Datenkorruption ist zwar eher die Ausnahme als die Regel, aber auch keine Seltenheit. Ein Mitglied des ZFS-Teams berichtete beispielsweise in einem Interview, dass beschädigte Daten von seinem High-End-RAID-5-Gerät an ihn gesendet wurden, was auf die Tatsache zurückzuführen ist, dass ZFS Prüfsummen auf dieser Dateisystemebene implementiert.

tylerl
quelle
5

Es kommt darauf an, woher die Korruption kommt. Wenn ein Laufwerk in einem RAID 1-Spiegel überlastet ist und Unsinn schreibt, verschlechtert sich der RAID-Spiegel, und das fehlerfreie Laufwerk wird verwendet, und Sie haben die fehlerfreien Dateien. Im Falle von RAID 5 wird dies mit 2 Datenlaufwerken und einem Paritätslaufwerk (in einfachster Form) durchgeführt. Wenn eines der 3 Laufwerke nicht die richtigen Dateien schreibt, tritt ein Fehler auf, und es verbleiben entweder 2 Daten Laufwerke oder 1 Datenlaufwerk und ein Paritätslaufwerk.

Schauen wir uns nun an, was passiert, wenn die Beschädigung durch einen Virus oder einen Programmfehler verursacht wird. In RAID 1 und RAID 5 wird kein Laufwerk außer Betrieb genommen, da die Laufwerke ordnungsgemäß schreiben. Nichts ist gescheitert. Dateien werden jedoch zerstört, da der Virus oder Bug Junk-Daten schreibt und diese sowohl auf Ihre Laufwerke in einem RAID 1-Spiegel als auch auf alle drei Laufwerke in einem RAID 5-System schreibt.

Deshalb ist RAID kein Backup. Es verhindert den wahrscheinlichsten Ausfall, bei dem es sich um einen Festplattenfehler handelt, berücksichtigt jedoch nicht viele andere Szenarien.

Joshua Levitsky
quelle
4
+1 "Dies ist der Grund, warum RAID kein Backup ist" Gott weiß, wie oft ich gehört habe "Ich bin in Ordnung, habe mein Backup mit einem RAID abgedeckt"
Urda
2
Wie kann das RAID zwischen guten und schlechten Daten unterscheiden?
1
Shaun ... wenn Ihre Daten von einem Virus verschluckt oder versehentlich gelöscht werden, kann das RAID sie niemals als gut oder schlecht erkennen. Alles, wofür das RAID zuständig ist, ist sicherzustellen, dass (in einem RAID 1) beide Festplatten gleich sind. Wenn ein Sektor eine Prüfsumme nicht besteht, gleicht der RAID-Controller diese aus, um sie zu reparieren, oder löst eine Neuerstellung aus. Wenn in einem RAID 5 ein Sektor eine Paritätsprüfung nicht besteht, wird eine Neuerstellung ausgelöst. RAID schützt die physischen Laufwerke vor Ausfällen und vor Datenverlust. Sie können nicht vor Daten schützen, die durch Programmfehler oder Viren verloren gegangen sind.
Urda
6
Ihre Charakterisierung von RAID 5 ist ungenau. Es gibt kein separates Paritätslaufwerk, stattdessen wird die Parität auf alle Laufwerke verteilt. Am Ende steht insgesamt n-1 Speicherplatz zur Verfügung, es gibt jedoch kein Laufwerk, das der Parität gewidmet ist.
MDMarra,
2
Ich muss das ablehnen. RAID1 führt keine Prüfsummen durch, sondern schützt nur vor einem vollständigen Laufwerksausfall. Wenn ein Laufwerk anfängt, Müll zurückzugeben, kann es nicht feststellen, welches Laufwerk das Richtige ist, und gibt gerne Mülldaten zurück. RAID5 bin ich mir wegen der Paritätsprüfungen nicht sicher. Genau aus diesem Grund wurden Dateisysteme wie ZFS und BTRFS erfunden, damit Sie ein RAID-ähnliches System erhalten, das Datenmüll mithilfe von Prüfsummen zur Überprüfung von Datenblöcken entsprechend korrigiert.
Alex
5

Wie andere angemerkt haben, kann ein RAID1-System nicht erkennen, welcher der beiden Sektoren schlecht ist.

High-End-Raid-Systeme führen im Hintergrund einen Scrub-Vorgang aus, um sowohl Kopien als auch Flaggenunterschiede zu vergleichen. Besser noch ist ein System, das beide Blöcke jedes Mal vom Laufwerk liest und sie zum Lesezeitpunkt vergleicht. Das Auflösen dieser Unterschiede ist für den RAID-Controller jedoch nicht möglich.

Auf Unix-Systemen unter mdadm kann mit "sync_action" eine Scrub-Prüfung eingeleitet werden:

md-Arrays können gescrubbt werden, indem Sie entweder check oder repair in die Datei md / sync_action im Verzeichnis sysfs für das Gerät schreiben.

Wenn Sie ein Scrub anfordern, liest md jeden Block auf jedem Gerät im Array und überprüft, ob die Daten konsistent sind. Für RAID1 und RAID10 bedeutet dies, dass überprüft wird, ob die Kopien identisch sind. Für RAID4, RAID5, RAID6 bedeutet dies, dass überprüft wird, ob der Paritätsblock korrekt ist (oder ob die Blöcke korrekt sind).

Bei raid1 geht es darum, vor einem plötzlichen Totalausfall der Festplatte zu schützen. Suchen Sie an anderer Stelle nach Schutz vor Korruption. Darüber hinaus bietet Raid1 keine "Historie", kann also nicht von menschlichen oder Softwarefehlern wiederhergestellt werden. Suchen Sie nach Dateisystemen wie ZFS oder einem geschichtserhaltenden Dateisystem wie Hammer, um sich vor Beschädigung zu schützen.

Bryce
quelle
3

In der Praxis ja. Die überwiegende Mehrheit der Festplattenausfälle tritt ganz oder gar nicht auf. Entweder (a) ist das Kabel abgezogen oder der Laufwerk-Mikrocontroller ist ausgefallen, sodass der RAID-Controller überhaupt keine Antwort erhält - offensichtlich ausgefallenes Laufwerk. Oder (b) Das Kabel und der Laufwerksmikrocontroller sind in Ordnung. Wenn jedoch versucht wird, einen Sektor zu lesen, erkennt der interne Laufwerksmikrocontroller eine Datenbeschädigung, da die interne ECC-Prüfsumme fehlgeschlagen ist, und wiederholt Versuche, diesen Sektor zu lesen (falls es sich um einen vorübergehenden Lesefehler handelt) ), so dass der RAID-Controller eine höfliche "Entschuldigungs" -Reaktion erhält - offensichtlich ausgefallenes Laufwerk. In beiden Fällen ist es für den RAID-1- oder RAID-5-Controller offensichtlich, dass das Laufwerk ausgefallen ist.

Im Prinzip nein. Wenn etwas so schlimm schief gelaufen ist, dass eine Festplatte Unsinn schreibt und dennoch irgendwie gut genug funktioniert, um den korrekten internen ECC-Code für diesen Unsinn zu schreiben, kann RAID-1 nicht erkennen, welches Laufwerk korrekt ist. Das RAID-1-System überschreibt wahrscheinlich die fehlerfreien Daten mit den beschädigten Daten bei einer Resynchronisierung. RAID-5 ist nicht besser. Der Stromausfall "RAID-5-Write-Hole" beim aktiven Schreiben ist ein besonders seltener, aber nicht unmöglicher Fall.

Soweit mir bekannt ist, besteht die einzige Möglichkeit, eine solche Beschädigung zu vermeiden, in der Verwendung von End-to-End-Prüfsummen zusätzlich zur Dateispiegelung, entweder automatisch als Teil des Dateisystems (ZFS oder Btrfs) oder periodisch oder manuell (Neuberechnung der Rsync-Prüfsummen). einfache Dateiüberprüfung, Parchive-Dateigruppen usw.); idealerweise mit einem kryptografischen Hash wie SHA-256.

David Cary
quelle
Irgendeine Wahrscheinlichkeit, die Sie eine Antwort für dieses geben könnten .... superuser.com/questions/736612/…
Mick