Schützt RAID 1 vor Korruption?

13108
Reg Edit

Schützt Raid 1 vor Datenbeschädigung? Nehmen wir zum Beispiel an, dass ich alle meine wichtigen Dateien auf einem NAS verwende, der zwei Festplatten in einem RAID 1 verwendet. Wenn eine Festplatte ein internes Problem hat und die Daten beschädigt werden, erkennt das RAID dies automatisch und korrigiert dies es mit Daten von der anderen guten Festplatte?

Könnte es überhaupt wissen, welche Kopie die gute ist?

Schützt RAID 5 vor Korruption?

Ich weiß, dass RAID keine Sicherungslösung ist. Ich versuche herauszufinden, wie ich sicherstellen kann, dass ich keine beschädigten Daten gesichert habe!

13

4 Antworten auf die Frage

12
tylerl

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 der Inhalt korrekt ist. Wenn aus irgendeinem Grund eines der beiden Laufwerke inkonsistente Daten zurücksendet, wird dieser Fehler vom RAID-System nicht erkannt, und die Anwendung erhält fehlerhafte Daten.

Viele Controller verfügen über einen Überprüfungsprozess, der in regelmäßigen Abständen ausgeführt wird. Der Zweck hiervon ist jedoch das Testen auf Festplattenfehler und nicht auf Datenintegrität. Festplatten implementieren ihre eigenen Datenintegritätstests und Prüfsummen, mit denen sie fehlerhafte Sektoren erkennen. Der Algorithmus ist jedoch so konzipiert, dass er schnell und kompakt ist und nicht gründlich ist, so dass Fehler durchsickern können.

Während Datenkorruption eher die Ausnahme ist als die Regel, ist sie auch nicht unbekannt. Ein Mitglied des ZFS-Teams berichtete beispielsweise in einem Interview, dass korrupte Daten von seinem High-End-RAID-5-Gerät angesprochen wurden, das sie aufgrund der Tatsache, dass ZFS Prüfsummen auf dieser Dateisystemebene implementiert, entdeckt haben.

5
Joshua Levitsky

Es hängt davon ab, woher die Korruption stammt. Wenn ein Laufwerk in einem RAID-1-Spiegel screwey ist und Unsinn schreibt, wird der RAID-Spiegel abgebaut und das gute Laufwerk wird verwendet, und Sie haben die richtigen Dateien. Im Falle von RAID 5 wird dies mit 2 Datenlaufwerken und einem Paritätslaufwerk (in der einfachsten Form) durchgeführt. Wenn eines der 3 Laufwerke keine korrekten Dateien schreibt, fallen die Daten aus und es bleiben zwei Daten übrig Laufwerke oder 1 Datenlaufwerk und ein Paritätslaufwerk.

Schauen wir uns nun an, was passiert, wenn die Beschädigung durch einen Virus oder einen Fehler in einem Programm verursacht wird. Bei 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 Fehler Junk schreibt, und es wird sowohl auf Ihre Laufwerke in einem RAID 1-Spiegel als auch auf alle drei Ihrer Laufwerke in einem RAID 5-System geschrieben.

Aus diesem Grund ist RAID kein Backup. Es verhindert den wahrscheinlichsten Fehler, der ein Festplattenfehler ist, berücksichtigt jedoch nicht viele andere Szenarien.

+1 "Deshalb ist RAID kein Backup" Gott weiß, wie oft ich gehört habe "Ich bin in Ordnung, habe mein Backup mit einem RAID abgedeckt" Urda vor 14 Jahren 4
Wie kann das RAID unterscheiden, welche Daten gut und welche schlecht sind? vor 14 Jahren 2
Shaun ... Wenn Ihre Daten von einem Virus gefressen oder versehentlich gelöscht werden, kann das RAID sie niemals als gut oder schlecht unterscheiden. Alles, was für das RAID zuständig ist, ist sicherzustellen, dass (bei RAID 1) beide Festplatten gleich sind. Wenn ein Sektor eine Prüfsumme nicht erfüllt, kompensiert der RAID-Controller die Reparatur oder löst eine Wiederherstellung aus. Wenn bei einem RAID 5 ein Sektor eine Paritätsprüfung nicht besteht, wird eine Neuerstellung ausgelöst. RAID schützt die physischen Laufwerke vor Ausfall und Datenverlust. Sie können nicht vor Daten schützen, die durch Programmfehler oder Viren verloren gehen. Urda vor 14 Jahren 1
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 zur Verfügung, aber es gibt kein Laufwerk für die Parität. MDMarra vor 14 Jahren 6
@Urda, es gibt keine Prüfsumme, die auf RAID 1 überprüft werden kann, richtig? Wenn das RAID-System feststellt, dass ein Block auf jeder Festplatte unterschiedliche Daten enthält, müsste es dann nicht erraten, welche davon richtig ist, und möglicherweise die Beschädigung des Dateisystems während des Wiederaufbaus riskieren? Renan vor 11 Jahren 1
Ich muss das abstimmen. RAID1 führt ** keine ** Prüfsummen aus, * schützt * nur * vor einem kompletten Laufwerksausfall. Wenn ein Laufwerk anfängt, Müll zurückzugeben, hat es keine Möglichkeit zu sagen, welches Laufwerk richtig ist, und es werden glücklich Mülldaten zurückgegeben. RAID5 bin ich wegen der Paritätsprüfungen nicht sicher. Genau aus diesem Grund wurden Dateisysteme wie ZFS und BTRFS erfunden, so dass Sie ein "datensensitives" RAID-ähnliches System erhalten, das Mülldaten mit Prüfsummen zur Überprüfung von Datenblöcken entsprechend korrigieren kann. Alex vor 9 Jahren 2
5
Bryce

Wie andere bereits bemerkt haben, kann ein System von raid1 nicht feststellen, welcher von zwei Sektoren schlecht ist.

Raid-Systeme mit höheren Endstufen führen im Hintergrund einen Scrub-Vorgang aus, um beide Kopien zu vergleichen und Unterschiede zu kennzeichnen. Besser noch ist ein System, das beide Blöcke jedes Mal vom Laufwerk liest und beim Lesen vergleicht. Das Auflösen dieser Unterschiede ist jedoch für den RAID-Controller nicht möglich.

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

md-Arrays können gelöscht werden, indem in die Datei md / sync_action im Verzeichnis sysfs für das Gerät entweder "check" oder "repair" geschrieben wird.

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

Bei raid1 geht es um den Schutz vor plötzlichem Totalausfall des Laufwerks. Suchen Sie an anderer Stelle nach Schutz vor Korruption. Darüber hinaus bietet Raid1 keine "Historie" und kann sich daher nicht von Benutzer- oder Softwarefehlern erholen. Schauen Sie sich Dateisysteme wie ZFS oder ein historisches Dateisystem wie Hammer an, um sich vor Beschädigungen zu schützen.

3
David Cary

In practice, yes. The vast majority of hard drive failures occur all-or nothing. Either (a) the cable is unplugged or the drive microcontroller have failed, so the RAID controller gets no response at all -- obvious failed drive. Or (b) The cable and drive microcontroller are good, but when it tries to read a sector, the internal drive microcontroller detects data corruption because the internal ECC checksum failed, and repeated attempts to read that sector (in case it's a temporary read glitch) eventually time out, so the RAID controller gets a polite "sorry" response -- obvious failed drive. Either way, it is obvious to the RAID-1 or RAID-5 controller that the drive has failed.

In principle, no. If something has gone so badly wrong that a hard drive is writing nonsense, and yet somehow working well enough to write the correct internal ECC code for that nonsense, then RAID-1 can't tell which drive is correct. The RAID-1 system will likely overwrite the good data with the corrupt data on a resync. RAID-5 is no better. The "RAID-5 write hole" power failure during active writing is one particular rare but not impossible case.

As far as I know, the only way to avoid such corruption is to use end-to-end checksums in addition to file mirroring, either automatically as part of the file system (ZFS or Btrfs) or periodically or manually (recalculating rsync checksums, simple file verification, Parchive file sets, etc.); ideally with a cryptographic hash such as SHA-256.

Jede Chance, dass Sie eine Antwort auf diese Frage geben könnten ... http://superuser.com/questions/736612/raid-1-without-cache-protection-zmcp-backup-battery Mick vor 10 Jahren 0