Frage Ist Bit-Rot auf Festplatten ein echtes Problem? Was kann dagegen getan werden?


Ein Freund spricht mit mir über das Problem der Bit Rot - Bits auf Laufwerken nach dem Zufallsprinzip spiegeln, Daten korrumpieren. Unglaublich selten, aber mit genügend Zeit könnte es ein Problem sein, und es ist unmöglich zu erkennen.

Das Laufwerk würde es nicht als einen schlechten Sektor betrachten, und Backups würden einfach denken, dass sich die Datei geändert hat. Es gibt keine Prüfsumme, um die Integrität zu überprüfen. Selbst bei einem RAID-Setup würde der Unterschied erkannt werden, aber es wäre unmöglich zu wissen, welche Spiegelkopie korrekt ist.

Ist das ein echtes Problem? Und wenn ja, was kann dagegen getan werden? Mein Freund empfiehlt zfs als Lösung, aber ich kann mir nicht vorstellen, unsere Dateiserver bei der Arbeit zu verflachen, indem wir auf Solaris und zfs setzen.


31
2017-10-23 17:26


Ursprung


Hier ist ein Artikel dazu: web.archive.org/web/20090228135946/http://www.sun.com/bigadmin/... - scobi
Ich hatte gerade eine schöne S.M.A.R.T. Fehler auf einer alten Seagate-Festplatte mit 200 GB. Die Bits, sie haben zu viel verfault :-( Es ist sechs Monate kürzer als die 5-Jahres-Garantie, also werde ich wahrscheinlich einen Ersatz ohne viel Aufhebens bekommen. - ThatGraemeGuy


Antworten:


Zunächst einmal: Ihr Dateisystem hat möglicherweise keine Prüfsummen, aber Ihre Festplatte selbst hat sie. Es gibt zum Beispiel S.M.A.R.T. Sobald ein Bit zuviele umgedreht wurde, kann der Fehler natürlich nicht korrigiert werden. Und wenn Sie wirklich Pech haben, können sich Bits so ändern, dass die Prüfsumme nicht ungültig wird; dann wird der Fehler nicht einmal erkannt. Also, böse Dinge können geschehen; Aber die Behauptung, dass ein zufälliges Bit-Flipping Ihre Daten sofort korrumpiert, ist falsch.

Aber wenn Sie Billionen von Bits auf eine Festplatte setzen, bleiben sie nicht für immer so; Das ist ein echtes Problem! ZFS kann jedes Mal, wenn Daten gelesen werden, Integritätsprüfungen durchführen. Dies ist vergleichbar mit dem, was Ihre Festplatte bereits selbst tut, aber es ist ein weiterer Schutz, für den Sie etwas Platz einbüßen, so dass Sie die Widerstandsfähigkeit gegen Datenbeschädigung erhöhen.

Wenn Ihr Dateisystem gut genug ist, wird die Wahrscheinlichkeit, dass ein Fehler auftritt, ohne entdeckt zu werden, so gering, dass Sie sich nicht länger darum kümmern müssen und Sie könnten entscheiden, dass Prüfsummen in das von Ihnen verwendete Datenspeicherformat eingebaut sind nicht notwendig.

In jedem Fall: Nein, es ist nicht unmöglich zu erkennen.

Aber ein Dateisystem allein kann niemals eine Garantie sein, dass jeder Fehler behoben werden kann; Es ist keine Wunderwaffe. Sie müssen immer noch Backups und einen Plan / Algorithmus haben, was zu tun ist, wenn ein Fehler entdeckt wurde.


24
2017-10-30 15:56



Ok, laut Wikipedia (en.wikipedia.org/wiki/Error_detection_and_correction) Moderne Festplatten verwenden CRCs, um Fehler zu erkennen, und versuchen, sie mithilfe der CD-Fehlerkorrektur wiederherzustellen. Das ist gut genug für mich. - scobi
Wenn der CRC jedoch am selben Ort (Sektor) wie die Daten gespeichert ist, hilft dies nicht für alle Fehlerfälle. Z.B. Wenn es einen Kopfpositionierungsfehler gibt, könnten Daten in einen falschen Sektor geschrieben werden - aber mit einer korrekten Prüfsumme => könnten Sie das Problem nicht erkennen. Aus diesem Grund werden Prüfsummen in ZFS getrennt von den geschützten Daten gespeichert. - knweiss
Hat ZFS eine Wartung wie Windows jetzt? Das schreibt die Daten im Grunde regelmäßig neu, um die magnetische Codierung aufzufrischen. - TomTom
Moderne Festplatten verwenden keine CRCs, sie verwenden Hamming-Code, der sehr unterschiedlich ist. Es ist die gleiche Sache, die ECC-Speicher verwendet. Ein-Bit-Flip-Fehler können korrigiert werden, Zwei-Bit-Flip-Fehler können detektiert, aber nicht korrigiert werden, drei oder mehr Bits werden umgedreht und die Daten werden tatsächlich beschädigt. In jedem Fall gibt es keinen Ersatz für Datensicherungen. ZFS und andere Dateisysteme bieten keinen besseren Schutz als der Hamming-Code auf den Platten eines Laufwerks. Wenn die Daten beschädigt sind, speichert ZFS Sie nicht. - Jody Lee Bruchon


Ja, es ist ein Problem, hauptsächlich wenn die Laufwerksgrößen steigen. Die meisten SATA-Laufwerke haben eine URE-Rate (uncorrectable read error) von 10 ^ 14. Oder für jede 12 TB Daten, die statistisch gelesen werden, sagt der Laufwerkverkäufer, dass das Laufwerk einen Lesefehler zurückgibt (Sie können normalerweise auf den Laufwerksdatenblättern nachsehen). Das Laufwerk funktioniert weiterhin gut für alle anderen Teile des Laufwerks. Enterprise FC- und SCSI-Laufwerke haben in der Regel eine URE-Rate von 10 ^ 15 (120 TB) sowie eine geringe Anzahl von SATA-Laufwerken, was zur Reduzierung beiträgt.

Ich habe noch nie gesehen, dass die Festplatten nicht mehr genau zur selben Zeit rotieren, aber ich habe ein Raid5-Volume gefunden, das dieses Problem (vor 5 Jahren mit 5400RPM-Consumer-PATA-Laufwerken) ausgelöst hat. Laufwerk schlägt fehl, es ist als tot markiert und das Ersatzlaufwerk wird neu erstellt. Problem ist, dass während der Wiederherstellung ein zweites Laufwerk diesen einen kleinen Datenblock nicht lesen kann. Je nachdem, wer den Überfall ausführt, ist das gesamte Volumen tot oder nur dieser kleine Block ist tot. Angenommen, nur ein Block ist tot. Wenn Sie versuchen, ihn zu lesen, erhalten Sie einen Fehler, aber wenn Sie ihn schreiben, wird das Laufwerk es an einen anderen Ort umwandeln.

Es gibt mehrere Methoden zum Schutz gegen: Raid6 (oder gleichwertig), die vor Doppelplattenausfall schützt, ist am besten, zusätzliche sind ein URE-bewusstes Dateisystem wie ZFS, kleinere Raid-Gruppen verwenden, so statistisch haben Sie eine geringere Chance auf das URE-Laufwerk Grenzen (Spiegel große Laufwerke oder raid5 kleinere Laufwerke), Disk Scrubbing und SMART hilft auch, ist aber nicht wirklich ein Schutz für sich, sondern zusätzlich zu einer der oben genannten Methoden.

Ich verwalte fast 3000 Spindeln in Arrays, und die Arrays schrubben ständig die Laufwerke nach latenten UREs. Und ich erhalte einen ziemlich konstanten Strom von ihnen (jedes Mal, wenn es einen findet, repariert es es vor dem Laufwerksausfall und warnt mich), wenn ich raid5 anstelle von raid6 benutzen würde und eines der Laufwerke wäre komplett tot ... ich würde in Schwierigkeiten geraten, wenn es bestimmte Orte trifft.


14
2017-10-23 18:20



In welchen Einheiten sprechen Sie? "10 ^ 14" ist keine "Rate". - Jay Sullivan
Die Einheit wäre z.B. "10 ^ 14 Bits pro Fehler gelesen", was 12 TB pro Fehler entspricht. - Jo Liss
Und natürlich, wenn man bedenkt, dass die Fehlerrate normalerweise in Form von vollen Sektorfehlern pro gelesenen Bits angegeben wird. Wenn ein Hersteller URE-Raten bei 10 ^ -14 angibt, meinen sie damit, dass die Wahrscheinlichkeit, dass ein zufälliger Sektor einen URE-Wert erreicht, 10 ^ -14 beträgt. Wenn dies der Fall ist, kommt der gesamte Sektor als nicht lesbar zurück. Das und die Tatsache, dass dies Statistiken sind; In der realen Welt neigen UREs dazu, in Chargen zu kommen. - α CVn


Festplatten codieren Datenbits normalerweise nicht als einzelne magnetische Domänen. Festplattenhersteller waren sich immer bewusst, dass magnetische Domänen umkehren und Fehlererkennung und -korrektur für Laufwerke ermöglichen können.

Wenn ein Bit umkehrt, enthält das Laufwerk genug redundante Daten, die korrigiert werden können und werden, wenn der Sektor das nächste Mal gelesen wird. Sie können dies sehen, wenn Sie die SMART-Werte auf dem Laufwerk als 'Korrigierbare Fehlerrate' überprüfen.

Abhängig von den Details des Laufwerks sollte es sogar in der Lage sein, sich von mehr als einem umgedrehten Bit in einem Sektor zu erholen. Es gibt ein Limit für die Anzahl der Flipped-Bits, die unbeaufsichtigt korrigiert werden können, und wahrscheinlich eine weitere Grenze für die Anzahl der Flipp-Bits, die als Fehler erkannt werden können (selbst wenn es nicht mehr genügend zuverlässige Daten gibt, um es zu korrigieren).

Dies alles führt zu der Tatsache, dass Festplattenlaufwerke die meisten Fehler automatisch korrigieren können, wenn sie auftreten, und den Großteil des Rests zuverlässig erkennen können. Sie müssten eine große Anzahl von Bitfehlern in einem einzelnen Sektor haben, die alle aufgetreten sind, bevor dieser Sektor erneut gelesen wurde, und die Fehler müssten so sein, dass die internen Fehlererkennungscodes sie wieder als gültige Daten sehen würde jemals einen stillen Fehler haben. Es ist nicht unmöglich, und ich bin mir sicher, dass Unternehmen, die sehr große Rechenzentren betreiben, dies auch sehen (oder vielmehr, es kommt vor und sie nicht sehen Sie es passieren), aber es ist sicherlich nicht so ein großes Problem, wie Sie vielleicht denken.


9
2017-10-23 18:34



Tatsächlich habe ich regelmäßig Bit-Rot-Fehler (in Teilen lese ich nicht viel), die das System stillschweigend wiederherstellt (falsch). Wenn es mir zumindest mitteilte, dass es etwas Faule gab, konnte ich die Daten noch einmal lesen, um sie wiederherzustellen, bevor sie nicht mehr wiederhergestellt werden konnte. und wenn nicht behebbar, könnte ich es mit der anderen Festplatte vergleichen. - Alex
Alex, überprüfen Sie bitte Ihre HDD SMART-Daten und System-RAM, um sicherzustellen, dass kein anderes Problem die Beschädigung verursacht. Bit Rot / Random Corruption ist extrem selten, also kann es etwas anderes auf Ihrem Rechner geben. - Brian D.
@BrianD. Ein Problem war, dass ich die Festplatten in ihrem (isolierten) Verpackungsmaterial aufbewahrte; Dies führte dazu, dass Festplatten über Tage hinweg bei Temperaturen über 60 ° C heiß wurden. Klingt das nach einem legitimen Grund, warum Bit-Fäule aufgetreten sein könnte? - Alex
Es wird definitiv nicht empfohlen, da die meisten Festplatten kleine Luftlöcher haben, die nicht abgedeckt werden sollten, um richtig zu funktionieren. Ob Ihr Problem Bit-Rot oder etwas anderes war, würde ich eine vollständige Diagnose auf dem PC ausführen, um zu überprüfen, ob alles korrekt funktioniert. - Brian D.


Moderne Festplatten (seit 199x) haben nicht nur Prüfsummen, sondern auch ECC, die ein bisschen "zufällige" Bit Rot erkennen und korrigieren können. Sehen: http://en.wikipedia.org/wiki/S.M.A.R.T.

Auf der anderen Seite können bestimmte Fehler in der Firmware und Gerätetreiber auch Daten in seltenen Fällen (sonst QA würde die Fehler abfangen) Daten, die schwer zu erkennen sind, wenn Sie keine höheren Prüfsummen haben. Frühe Gerätetreiber für SATA und NICs hatten Daten auf Linux und Solaris beschädigt.

ZFS-Prüfsummen zielen in erster Linie auf die Fehler in niedrigerer Software ab. Neuere Speicher- / Datenbanksysteme wie Hypertable haben für jedes Update auch eine Checksum, um sich vor Fehlern in Dateisystemen zu schützen :)


4
2017-10-23 17:43





Theoretisch ist dies ein Grund zur Besorgnis. Dies ist einer der Gründe, warum wir Backups für Kinder, Eltern und Großeltern aufbewahren. Jährliche Backups müssen für mindestens 5 Jahre aufbewahrt werden, IMO, und wenn Sie einen Fall haben, der weiter reicht, ist die Datei offensichtlich nicht so wichtig.

Es sei denn, du hast es mit Bits zu tun potenziell das Gehirn von jemandem verflüssigenIch bin mir nicht sicher, ob das Risiko oder die Belohnung wirklich so hoch ist, dass Dateisystem geändert wird.


3
2017-10-23 18:28



Ich sehe nicht, wie Kinder- / Eltern- / Großeltern-Backups helfen. Es gibt keine Möglichkeit, mit diesem System zu wissen, wenn ein Bit umgedreht wird, weil ein Benutzer es ändern wollte oder wenn das Laufwerk es selbst gemacht hat. Nicht ohne eine Art Prüfsumme. - scobi
Mehrere Backups helfen nicht, wenn Sie nicht wissen, dass die Daten in ihnen gut sind. Sie können Ihre Dateien manuell überprüfen, aber ZFS macht so viel mehr automatisch und erleichtert das Dateisystem-Management. - Amok
Sicherungen, die länger als eine Woche / Monat zurückreichen, erhöhen die Wahrscheinlichkeit, dass Sie eine gute Kopie der Datei erhalten. Ich hätte das wahrscheinlich besser verstehen können. - Kara Marfia
Das Problem ist: Woher weißt du, dass du eine schlechte Kopie hast? Und woher wissen Sie, welche Kopie, die gesichert wird, die gute ist? Auf automatisierte Weise. - scobi
Ich habe gesehen, dass vielleicht alle paar Jahre eine Datei zu Korruption führt, die eine Folge von Bitfäule sein könnte, aber ich könnte an Small Fish Syndrome leiden. Ich könnte verstehen, dass Backups nutzlos sind, und ich werde es löschen, wenn es beleidigend ist. Es war eine gute Zeit, die anderen Antworten zu lesen. ;) - Kara Marfia


Ja, es ist ein Problem.

Dies ist einer der Gründe, warum RAID6 jetzt in Mode ist (ebenso wie zunehmende HD-Größen die Zeit erhöhen, ein Array neu aufzubauen). Mit zwei Paritätsblöcken ist eine zusätzliche Sicherung möglich.

RAID-Systeme führen jetzt auch RAID-Scrubbing durch, das regelmäßig Plattenblöcke liest, gegen die Paritäten prüft und sie ersetzt, wenn es einen Block als schlecht erkennt.


2
2017-07-12 20:55



Seien Sie vorsichtig, Datenintegrität ist kein Merkmal aller RAID-Systeme. - duffbeer703
Bei Terabyte-Laufwerken teilen sich so viele Bits das Schicksal und der physische Speicherbereich eines Bits ist so klein, dass dieses Problem wichtiger wird. Gleichzeitig erhöht sich die Ausfallwahrscheinlichkeit bei Terabyte-Laufwerken so stark, dass RAID6 nicht ausreicht, es sei denn, Sie legen viele Laufwerke in den Pool, sagen 8 oder mehr. Bei einer kleineren Anzahl von Laufwerken ist es besser, einen Streifen von Spiegeln zu verwenden, die als RAID 10 bezeichnet werden. Sowohl RAID 6 (raidz2) als auch RAID 10 (zpool create mypool Spiegel c0t1d0 c0t2d0 Spiegel c0t3d0 c0t4d0) sind auf ZFS möglich. - Michael Dillon
RAID kann nicht erkennen, welche Daten gut sind und welche nicht, damit Fehler nicht behoben werden können. - Amok
Amuck: Nicht als Teil des "RAID-Standards" an sich, sondern bei fortgeschrittenen RAID-Systemen (Firmwares, etc.) - Matt Rogish
@ Michael Dillion - RAID6 Zuverlässigkeit erhöht sich nicht, wenn Sie die Anzahl der Laufwerke erhöhen. Für alle Daten gibt es nur die ursprünglichen Daten + 2 Parität. Die Erhöhung der Laufwerksnummer ist für die Zuverlässigkeit schlechter, da sie die mögliche Laufwerksausfallrate erhöht, ohne die Redundanz von Daten zu erhöhen. Der einzige Grund, die Anzahl der Laufwerke zu erhöhen, besteht darin, die verfügbare Speichergröße zu erhöhen. - Brian D.


In Bezug auf die Aussage des OP über RAID nicht zu verstehen, welche Daten gut oder schlecht sind.

RAID-Controller verwenden zumindest (ungerade / gerade) Paritätsbits in jedem Datenstreifen. Dies ist für alles; die Daten-auf-Datenträger-Streifen und die Paritäts- (Sicherungs-) Datenstreifen.

Dies bedeutet, dass der Controller für jeden RAID-Typ, der über Striping für Redundanz verfügt (RAID 5/6), genau erkennen kann, ob sich der ursprüngliche Datenstreifen geändert hat und ob sich der Redundanzdatenstreifen geändert hat.

Wenn Sie einen zweiten redundanten Stripe wie RAID6 einführen, müssen Sie 3 Datenstreifen haben, auf drei verschiedenen Laufwerken werden beschädigte, die alle den gleichen tatsächlichen Dateidaten entsprechen. Denken Sie daran, dass die meisten RAID-Systeme relativ kleine Datenstreifen (128kb oder weniger) verwenden, so dass die Wahrscheinlichkeit, dass die "Bit Rot" auf die gleichen 128kb der gleichen Datei aufläuft, praktisch unmöglich ist.


1
2017-07-29 05:32