Können Daten auf Festplatten ohne Warnung vor Schäden beschädigt werden?
Wir sorgen uns alle darum, unsere Daten und Dateien sicher und intakt zu halten, aber können Daten beschädigt werden und ein Benutzer ohne Benachrichtigung oder Warnung über das Problem darauf zugreifen? Der heutige Q & A-Beitrag von SuperUser hat die Antwort auf die Frage eines besorgten Lesers.
Die heutige Question & Answer-Sitzung wird dank SuperUser zur Verfügung gestellt - einer Unterteilung von Stack Exchange, einer Community-basierten Gruppierung von Q & A-Websites.
Foto mit freundlicher Genehmigung von Generalizing (Flickr).
Die Frage
SuperUser Reader Topo Morto möchte wissen, ob sich Daten auf Festplattenlaufwerken verschlechtern können und ohne Warnung über den Schaden darauf zugegriffen werden kann:
Ist es möglich, dass die physische Beeinträchtigung einer Festplatte dazu führt, dass Bits im Inhalt einer Datei „kippen“, ohne dass das Betriebssystem die Änderung bemerkt und den Benutzer beim Lesen der Datei darüber informiert? Könnte ein "p" (binär 01110000) in einer ASCII-Textdatei beispielsweise in "q" (binär 01110001) geändert werden, wird ein Benutzer beim Öffnen der Datei "q" sehen, ohne dass ein Fehler aufgetreten ist?
Ich bin an Antworten in Bezug auf FAT, NTFS oder ReFS interessiert (wenn es einen Unterschied macht). Ich möchte wissen, ob Betriebssysteme Benutzer davor schützen, oder ob wir unsere Daten im Laufe der Zeit auf Abweichungen zwischen den Kopien überprüfen sollten.
Können Daten auf Festplattenlaufwerken abgebaut werden und ohne Warnung über den Schaden darauf zugegriffen werden?
Die Antwort
SuperUser-Mitarbeiter Guntram Blohm hat die Antwort für uns:
Ja, es gibt eine Sache, die Bit rot heißt. Aber nein, es wirkt sich nicht unbemerkt auf einen Benutzer aus.
Wenn eine Festplatte einen Sektor auf die Platten schreibt, schreibt sie nicht nur die Bits auf dieselbe Weise, wie sie im RAM gespeichert sind, sondern verwendet eine Codierung, um sicherzustellen, dass keine Sequenzen desselben Bits zu lang sind. Außerdem werden ECC-Codes hinzugefügt, mit denen Fehler behoben werden können, die sich auf einige Bits auswirken, und Fehler erkennen, die sich auf mehr als einige Bits auswirken.
Wenn die Festplatte den Sektor liest, prüft sie diese ECC-Codes und repariert die Daten gegebenenfalls (und wenn möglich). Was als nächstes passiert, hängt von den Umständen und der Firmware der Festplatte ab, die durch die Bezeichnung des Laufwerks beeinflusst wird.
- Wenn ein Sektor gelesen werden kann und keine Probleme mit dem ECC-Code bestehen, wird er an das Betriebssystem weitergeleitet.
- Wenn ein Sektor leicht repariert werden kann, kann die reparierte Version auf die Festplatte geschrieben, zurückgelesen und dann überprüft werden, ob der Fehler zufällig war (d. H. Kosmische Strahlen usw.) oder ob ein systematischer Fehler bei den Medien vorliegt.
- Wenn die Festplatte feststellt, dass ein Fehler aufgetreten ist, ordnet sie den Sektor neu zu.
- Wenn ein Sektor nach wenigen Leseversuchen (auf einer als RAID-Festplatte bezeichneten Festplatte) weder gelesen noch korrigiert werden kann, gibt die Festplatte auf, ordnet den Sektor neu zu und teilt dem Controller mit, dass ein Problem aufgetreten ist . Der RAID-Controller muss den Sektor von den anderen RAID-Mitgliedern rekonstruieren und auf die ausgefallene Festplatte zurückschreiben, die dann im neu zugewiesenen Sektor gespeichert wird (der hoffentlich kein Problem hat)..
- Wenn ein Sektor auf der Festplatte eines Desktops nicht gelesen oder korrigiert werden kann, versucht die Festplatte mehr, ihn zu lesen. Abhängig von der Qualität der Festplatte kann dies dazu führen, dass der Kopf neu positioniert wird, ob beim wiederholten Lesen einige Bits umgedreht werden, ob die Bits am schwächsten sind, und einige andere Dinge. Wenn einer dieser Versuche erfolgreich ist, ordnet die Festplatte den Sektor neu zu und schreibt die reparierten Daten zurück.
Dies ist einer der Hauptunterschiede zwischen Festplatten, die als "Desktop" -, "NAS / RAID" - oder "Videoüberwachungs" -Festplatten verkauft werden. Eine RAID-Festplatte kann nur schnell aufgeben und den Sektor dazu veranlassen, den Sektor zu reparieren, um Latenzen auf der Benutzerseite zu vermeiden. Eine Desktop-Festplatte versucht es immer wieder, da es wahrscheinlich besser ist, wenn der Benutzer einige Sekunden wartet, als ihm zu sagen, dass die Daten verloren gehen. Bei einer Video-Festplatte werden konstante Datenraten höher als bei der Fehlerbehebung, da ein beschädigter Frame normalerweise nicht einmal bemerkt wird.
Auf jeden Fall weiß das Festplattenlaufwerk, ob etwas verrottet ist, erholt sich normalerweise davon, und wenn dies nicht möglich ist, informiert es die Steuerung, die wiederum den Treiber darüber informiert, der dann das Betriebssystem informiert. Es liegt dann am Betriebssystem, den Fehler dem Benutzer anzuzeigen und darauf zu reagieren. Deshalb sagt cybernard:
- Ich habe selbst nie einen einzelnen Fehler erlebt, aber ich habe viele Festplatten gesehen, auf denen ganze Sektoren ausgefallen sind.
Die Festplatte weiß, ob mit einem Sektor etwas nicht stimmt, aber sie weiß nicht, welche Bits ausgefallen sind. Ein einzelnes fehlerhaftes Bit wird immer von ECC abgefangen.
Bitte beachten Sie, dass chkdsk und Dateisysteme, die sich automatisch reparieren, keine Reparaturdaten in Dateien ansprechen. Diese zielen auf eine Beschädigung in der Struktur des Dateisystems selbst ab, z. B. wenn sich die Dateigröße zwischen dem Verzeichniseintrag und der Anzahl der zugewiesenen Blöcke unterscheidet. Die Selbstheilungsfunktion von NTFS erkennt strukturelle Schäden und verhindert, dass diese Ihre Daten weiter beeinflussen, jedoch werden bereits beschädigte Daten nicht repariert.
Es gibt natürlich andere Gründe, warum Daten beschädigt werden können. Beispielsweise kann ein fehlerhafter RAM in einem Controller die Daten ändern, noch bevor diese an die Festplatte gesendet werden. In diesem Fall erkennt oder repariert kein Mechanismus auf der Festplatte die Daten. Dies kann ein Grund dafür sein, dass die Struktur eines Dateisystems beschädigt ist. Andere Gründe sind Softwarefehler, Blackouts beim Schreiben auf die Festplatte (obwohl dies durch Dateisystemjournal behandelt wird) oder fehlerhafte Dateisystemtreiber (der NTFS-Treiber unter Linux war lange Zeit schreibgeschützt, seit NTFS Reverse Engineering ausgeführt wurde. nicht dokumentiert, und die Entwickler trauten ihrem eigenen Code nicht).
- Ich hatte einmal dieses Szenario, in dem eine Anwendung alle ihre Dateien auf zwei verschiedenen Servern in zwei verschiedenen Rechenzentren speichert, um eine Arbeitskopie der Daten unter allen Umständen verfügbar zu halten. Nach einigen Monaten stellten wir fest, dass etwa 0,1 Prozent aller kopierten Dateien nicht mit der MD5-Prüfsumme übereinstimmen, die die Anwendung in ihrer Datenbank gespeichert hat. Es stellte sich heraus, dass es ein fehlerhaftes Glasfaserkabel zwischen dem Server und dem SAN war.
Diese anderen Gründe sind der Grund, warum einige Dateisysteme wie ZFS zusätzliche Prüfsummeninformationen enthalten, um Fehler zu erkennen. Sie sollen Sie vor viel mehr Dingen schützen, die schief gehen können, als nur ein bisschen Fäulnis.
Haben Sie der Erklärung etwas hinzuzufügen? Sound off in den Kommentaren. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange-Benutzern lesen? Hier geht es zum vollständigen Diskussionsthread.