Datenkorruption
Unter Datenkorruption versteht man die ungewollte Veränderung von Computerdaten, die beim Schreiben, Lesen, Speichern, Übertragen oder Verarbeiten auftritt. Computersysteme nutzen eine Reihe von Maßnahmen, um die Datenintegrität über den gesamten Prozess hinweg – also die Fehlerfreiheit – zu gewährleisten.
Im Allgemeinen führt eine Datenbeschädigung dazu, dass eine Datei, die diese Daten enthält, beim Zugriff durch das System oder die zugehörige Anwendung unerwartete Ergebnisse liefert. Die Folgen können von einem geringfügigen Datenverlust bis hin zu einem Systemabsturz reichen. Ist beispielsweise eine Dokumentdatei beschädigt, erhält der Benutzer beim Versuch, diese Datei mit einem Textverarbeitungsprogramm zu öffnen, möglicherweise eine Fehlermeldung, sodass die Datei entweder gar nicht oder nur mit teilweise beschädigten Daten geöffnet wird (oder in manchen Fällen sogar vollständig beschädigt ist, wodurch das Dokument unlesbar wird). Das nebenstehende Bild zeigt eine beschädigte Bilddatei, in der der Großteil der Informationen verloren gegangen ist.
Bestimmte Arten von Malware können Dateien im Rahmen ihrer Schadfunktion absichtlich beschädigen, indem sie diese mit funktionsunfähigem Code oder Müllcode überschreiben, während ein nicht bösartiger Virus Dateien beim Zugriff ebenfalls unbeabsichtigt beschädigen kann. Gelingt es einem Virus oder Trojaner mit dieser Angriffsmethode, Dateien zu verändern, die für den Betrieb der Betriebssystemsoftware oder der physischen Hardware des Computers entscheidend sind, kann das gesamte System unbrauchbar werden.
Manche Programme bieten (nach dem Auftreten des Fehlers) die Möglichkeit, die Datei automatisch zu reparieren, andere können dies nicht. Dies hängt vom Ausmaß der Beschädigung sowie von den integrierten Funktionen der Anwendung zur Behebung des Fehlers ab. Es gibt verschiedene Ursachen für die Beschädigung.
Übersicht
[Bearbeiten | Quelltext bearbeiten]
Es gibt zwei Arten von Datenbeschädigungen im Zusammenhang mit Computersystemen: unentdeckte und entdeckte. Unentdeckte Datenbeschädigungen, auch als „stille Datenbeschädigungen“ bezeichnet, führen zu den gefährlichsten Fehlern, da es keine Anzeichen dafür gibt, dass die Daten fehlerhaft sind. Entdeckte Datenbeschädigungen können dauerhaft sein und zum Datenverlust führen oder vorübergehend auftreten, wenn ein Teil des Systems den Fehler erkennen und beheben kann. Im letzteren Fall liegt keine Datenbeschädigung vor.
Datenbeschädigungen können auf jeder Ebene eines Systems auftreten, vom Host bis zum Speichermedium. Moderne Systeme versuchen Beschädigungen auf vielen Ebenen zu erkennen und diese anschließend zu beheben oder zu korrigieren. Dies gelingt fast immer, doch in sehr seltenen Fällen sind die im Systemspeicher eintreffenden Informationen beschädigt, was zu unvorhersehbaren Ergebnissen führen kann.
Datenverluste während der Übertragung können verschiedene Ursachen haben. Eine Unterbrechung der Datenübertragung führt zu Informationsverlusten. Umgebungsbedingungen können die Datenübertragung beeinträchtigen, insbesondere bei drahtlosen Übertragungsverfahren. Dichte Wolken können Satellitenübertragungen blockieren. Drahtlose Netzwerke sind anfällig für Störungen durch Geräte wie beispielsweise Mikrowellenherde.
Hardware- und Softwarefehler sind die beiden Hauptursachen für Datenverluste. Hintergrundstrahlung, Kopfabstürze sowie Alterung oder Verschleiß des Speichermediums fallen in die erstgenannte Kategorie, während Softwarefehler in der Regel auf Programmfehler zurückzuführen sind.
Kosmische Strahlung verursacht die meisten Soft-Fehler in DRAMs.[1]
Stille Datenbeschädigung
[Bearbeiten | Quelltext bearbeiten]Manche Fehler bleiben unbemerkt, ohne von der Festplatten-Firmware oder dem Host-Betriebssystem erkannt zu werden. Diese Fehler werden als „stille Datenbeschädigung“ bezeichnet.[2]
Es gibt zahlreiche Fehlerquellen, die über das Festplattensubsystem selbst hinausgehen. So können beispielsweise Kabel leicht locker sitzen, die Stromversorgung unzuverlässig sein,[3] externe Vibrationen wie laute Geräusche auftreten,[4] das Netzwerk unentdeckte Datenbeschädigungen verursachen,[5] kosmische Strahlung und viele andere Ursachen für Soft-Speicherfehler vorliegen. Bei 39.000 analysierten Speichersystemen waren Firmware-Fehler für 5–10 % der Speicherausfälle verantwortlich.[6] Die in einer CERN-Studie zu stillen Datenbeschädigungen beobachteten Fehlerraten liegen weit über einem Fehler pro 1016 Bits.[7] Amazon Web Services räumte ein, dass Datenkorruption die Ursache für einen großflächigen Ausfall ihres Amazon-S3-Speichernetzwerks im Jahr 2008 war.[8] Im Jahr 2021 wurden in Veröffentlichungen von Google und Facebook fehlerhafte Prozessorkerne als weitere Ursache identifiziert. Es wurde festgestellt, dass mehrere von tausend Kernen fehlerhaft waren.[9][10]
Ein Problem besteht darin, dass die Kapazitäten von Festplatten zwar erheblich gestiegen sind, ihre Fehlerraten jedoch unverändert geblieben sind. Die Rate der Datenbeschädigungen war im Laufe der Zeit stets in etwa konstant, was bedeutet, dass moderne Festplatten nicht wesentlich sicherer sind als alte. Bei alten Festplatten war die Wahrscheinlichkeit einer Datenbeschädigung sehr gering, da sie nur winzige Datenmengen speicherten. Bei modernen Festplatten ist die Wahrscheinlichkeit viel größer, da sie viel mehr Daten speichern, ohne dabei sicherer zu sein. Daher war eine unbemerkte Datenbeschädigung kein ernsthaftes Problem, solange Speichergeräte relativ klein und langsam waren. Heutzutage und mit dem Aufkommen größerer Laufwerke und sehr schneller RAID-Konfigurationen sind Nutzer in der Lage, 1016 Bits in relativ kurzer Zeit zu übertragen und erreichen damit leicht die Schwellenwerte für Datenkorruption.[11]
So erklärte beispielsweise Jeff Bonwick, der Entwickler von ZFS, dass die Hochgeschwindigkeitsdatenbank bei Greenplum – einem auf groß angelegte Data-Warehousing- und Analyse-Lösungen spezialisierten Datenbanksoftware-Unternehmen – alle 15 Minuten von stillen Datenbeschädigungen betroffen ist.[12] Ein weiteres Beispiel: Eine von NetApp über einen Zeitraum von 41 Monaten durchgeführte Praxisstudie an mehr als 1,5 Millionen Festplatten ergab mehr als 400.000 unbemerkte Datenbeschädigungen, von denen mehr als 30.000 vom Hardware-RAID-Controller nicht erkannt wurden (sondern erst während des Scrubbing-Vorgangs entdeckt wurden).[13] Eine weitere Studie, die vom CERN über einen Zeitraum von sechs Monaten durchgeführt wurde und etwa 97 Petabyte an Daten umfasste, ergab, dass etwa 128 Megabyte an Daten auf dem Weg vom Netzwerk zur Festplatte unbemerkt dauerhaft beschädigt wurden.[14]
Eine unbemerkte Datenbeschädigung kann zu Kettenausfällen führen, bei denen das System eine Zeit lang mit einem zunächst unentdeckten Fehler weiterläuft, der immer mehr Probleme verursacht, bis er schließlich entdeckt wird.[15] So kann beispielsweise ein Fehler, der die Metadaten des Dateisystems betrifft, dazu führen, dass mehrere Dateien teilweise beschädigt werden oder vollständig unzugänglich werden, da das Dateisystem in seinem beschädigten Zustand weiterverwendet wird.
Gegenmaßnahmen
[Bearbeiten | Quelltext bearbeiten]Wenn sich Datenbeschädigungen wie ein Poisson-Prozess verhalten, bei dem jedes Datenbit eine unabhängig voneinander geringe Wahrscheinlichkeit aufweist, verändert zu werden, lassen sich Datenbeschädigungen in der Regel mithilfe von Prüfsummen erkennen und oft durch den Einsatz von Fehlerkorrekturcodes (ECC) beheben.
Wird eine nicht behebbare Datenbeschädigung erkannt, können Maßnahmen wie die automatische Neuübertragung oder die Wiederherstellung aus Sicherungskopien ergriffen werden. Bestimmte RAID-Stufen sind in der Lage, Paritätsbits für Daten über eine Gruppe von Festplatten hinweg zu speichern und auszuwerten und können beschädigte Daten beim Ausfall einer oder mehrerer Festplatten rekonstruieren, je nach der implementierten RAID-Stufe. Einige CPU-Architekturen nutzen verschiedene transparente Prüfmechanismen, um Datenbeschädigungen in CPU-Caches, CPU-Puffern und Befehlspipelines zu erkennen und zu beheben. Ein Beispiel hierfür ist die Intel Instruction-Replay-Technologie, die auf Intel-Itanium-Prozessoren verfügbar ist.[16]
Viele Fehler werden von den Festplatten mithilfe der ECC-Codes erkannt und korrigiert,[17] die für jeden Sektor auf der Festplatte gespeichert sind. Erkennt das Laufwerk mehrere Lesefehler in einem Sektor, kann es eine Kopie des fehlerhaften Sektors an einer anderen Stelle der Festplatte erstellen, indem es den fehlerhaften Sektor ohne Einbeziehung des Betriebssystems auf einen Ersatzsektor umlegt (auch wenn dies möglicherweise bis zum nächsten Schreibvorgang in diesen Sektor verzögert wird). Diese „stille Korrektur“ kann mithilfe von S.M.A.R.T. und für die meisten Betriebssysteme verfügbaren Tools überwacht werden, um das Laufwerk automatisch auf drohende Ausfälle zu überprüfen, indem auf sich verschlechternde S.M.A.R.T.-Parameter geachtet wird.
Einige Dateisysteme, wie beispielsweise Btrfs, HAMMER, ReFS und ZFS, nutzen interne Prüfsummen für Daten und Metadaten, um unbemerkte Datenbeschädigungen zu erkennen. Wird zudem eine Beschädigung festgestellt und nutzt das Dateisystem integrierte RAID-Mechanismen, die für Datenredundanz sorgen, können solche Dateisysteme beschädigte Daten zudem auf transparente Weise rekonstruieren.[18] Dieser Ansatz ermöglicht einen verbesserten Schutz der Datenintegrität über die gesamten Datenpfade hinweg, was üblicherweise als End-to-End-Datenschutz bezeichnet wird – im Gegensatz zu anderen Ansätzen zur Datenintegrität, die nicht über verschiedene Schichten des Speicherstacks hinweg reichen und es zulassen, dass Datenbeschädigungen auftreten, während die Daten die Grenzen zwischen den verschiedenen Schichten passieren.[19]
Das „Data scrubbing“ ist eine weitere Methode, um die Wahrscheinlichkeit von Datenbeschädigungen zu verringern, da Festplattenfehler erkannt und behoben werden, bevor sich mehrere Fehler ansammeln und die Anzahl der Paritätsbits übersteigen. Anstatt die Parität bei jedem Lesevorgang zu überprüfen, erfolgt die Überprüfung im Rahmen eines regelmäßigen Scans der Festplatte, der häufig als Hintergrundprozess mit niedriger Priorität ausgeführt wird. Der Vorgang des „Data scrubbing“ löst eine Paritätsprüfung aus. Wenn ein Benutzer lediglich ein normales Programm ausführt, das Daten von der Festplatte liest, würde die Parität nicht geprüft werden, es sei denn, die Paritätsprüfung beim Lesen (parity-check-on-read) wird vom Festplattensubsystem sowohl unterstützt als auch aktiviert.
Wenn geeignete Mechanismen zur Erkennung und Behebung von Datenbeschädigungen eingesetzt werden, kann die Datenintegrität gewahrt werden. Dies ist besonders wichtig in kommerziellen Anwendungen (z. B. im Bankwesen), wo ein unentdeckter Fehler entweder einen Datenbankindex beschädigen oder Daten so verändern könnte, dass sich dies drastisch auf einen Kontostand auswirkt, sowie bei der Verwendung verschlüsselter oder komprimierter Daten, wo bereits ein kleiner Fehler einen umfangreichen Datensatz unbrauchbar machen kann.[7]
Siehe auch
[Bearbeiten | Quelltext bearbeiten]Weblinks
[Bearbeiten | Quelltext bearbeiten]- Dave Dopson: SoftECC: A System for Software Memory Integrity Checking. (PDF; 327 KB) In: pdos.csail.mit.edu. September 2005 (englisch).
- David Fiala et al.: A Tunable, Software-based DRAM Error Detection and Correction Library for HPC. (PDF; 219 KB) In: fiala.me. (englisch).
- David Fiala et al.: Detection and Correction of Silent Data Corruption for Large-Scale High-Performance Computing. (PDF; 349 KB) In: fiala.me. (englisch).
- Yupu Zhang et al.: End-to-end Data Integrity for File Systems: A ZFS Case Study. (PDF; 264 KB) In: usenix.org. (englisch).
- Bianca Schroeder, Eduardo Pinheiro, Wolf-Dietrich Weber: DRAM Errors in the Wild: A Large-Scale Field Study. (PDF;) In: cs.toronto.edu. Juni 2009 (englisch).
- Peter Kelemen: Silent Corruptions. (PDF; 348 KB) In: nsc.liu.se. 18. Oktober 2007 (englisch).
- Bernd Panzer-Steindel: Data integrity. In: indico.cern.ch. 8. April 2007, archiviert vom (nicht mehr online verfügbar) am 20. Dezember 2014 (englisch).
- Dan Colegrove: End-to-end Data Protection. (PDF; 163 KB) In: hgst.com. 2008, archiviert vom (nicht mehr online verfügbar) am 13. Dezember 2010 (englisch).
Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ Solar Storms: Fast Facts. In: scientificamerican.com. 21. Juli 2008, abgerufen am 4. Oktober 2026 (englisch).
- ↑ Silent Data Corruption. In: support.google.com. Abgerufen am 4. Oktober 2026 (englisch): „Silent Data Corruption (SDC), sometimes referred to as Silent Data Error (SDE), is an industry-wide issue impacting not only long-protected memory, storage, and networking, but also computer CPUs.“
- ↑ Eric Lowe: ZFS saves the day(-ta)! In: blogs.oracle.com. 16. November 2005, archiviert vom (nicht mehr online verfügbar) am 5. Februar 2012; abgerufen am 4. Oktober 2026 (englisch).
- ↑ Bryan Cantrill: Shouting in the Datacenter. In: youtube.com. 1. Januar 2009, abgerufen am 4. Oktober 2026 (englisch).
- ↑ jforonda: Faulty FC port meets ZFS. In: jforonda.blogspot.com. 31. Januar 2007, abgerufen am 4. Oktober 2026 (englisch).
- ↑ Weihang Jiang, Chongfeng Hu, Yuanyuan Zhou, Arkady Kanevsky: Are disks the dominant contributor for storage failures?: a comprehensive study of storage subsystem failure characteristics. In: FAST'08: Proceedings of the 6th USENIX Conference on File and Storage Technologies. Nr. 8. USENIX Association, San Jose, USA 26. Februar 2008, doi:10.5555/1364813.1364821 (usenix.org [PDF; 754 kB; abgerufen am 4. Oktober 2026]).
- 1 2 Bernd Panzer-Steindel: Data integrity. (PDF;) In: indico.cern.ch. 8. April 2007, abgerufen am 4. Oktober 2026 (englisch).
- ↑ Amazon S3 Availability Event. In: status.aws.amazon.com. 20. Juli 2008, archiviert vom (nicht mehr online verfügbar) am 25. Dezember 2008; abgerufen am 4. Oktober 2026 (englisch).
- ↑ Peter H. Hochschild et al.: Cores that don’t count. In: HotOS '21: Proceedings of the Workshop on Hot Topics in Operating Systems. Association for Computing Machinery, New York, USA 3. Juni 2021, S. 9–16, doi:10.1145/3458336.3465297 (sigops.org [PDF; 131 kB; abgerufen am 4. Oktober 2026]).
- ↑ ACM SIGOPS: HotOS 2021: Cores That Don’t Count (Fun Hardware). In: youtube.com. 28. Mai 2021, abgerufen am 4. Oktober 2026 (englisch).
- ↑ Silent data corruption in disk arrays: A solution. In: necam.com. 2009, archiviert vom (nicht mehr online verfügbar) am 29. Oktober 2013; abgerufen am 4. Oktober 2026 (englisch).
- ↑ John Stanik: A Conversation with Jeff Bonwick and Bill Moore: The future of file systems. In: queue.acm.org. 15. November 2007, abgerufen am 4. Oktober 2026 (englisch).
- ↑ David S. H. Rosenthal: Keeping Bits Safe: How Hard Can It Be?: As storage systems grow larger and larger, protecting their data for long-term storage is becoming more and more challenging. In: queue.acm.org. 1. Oktober 2010, abgerufen am 4. Oktober 2026 (englisch).
- ↑ Peter Kelemen: Silent Corruptions. (PDF; 281 KB) In: indico.desy.de. 25. April 2007, abgerufen am 4. Oktober 2026 (englisch).
- ↑ David Fiala et al.: Detection and Correction of Silent Data Corruption for Large-Scale High-Performance Computing. In: SC '12: Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis. IEEE, Salt Lake City, USA November 2012, doi:10.1109/SC.2012.49 (fiala.me [PDF; 349 kB; abgerufen am 4. Oktober 2026]).
- ↑ Steve Bostian: Ratchet Up Reliability for Mission-Critical Applications: Intel Instruction Replay Technology. (PDF; 2,33 MB) In: intel.com. 2012, archiviert vom (nicht mehr online verfügbar) am 2. Februar 2016; abgerufen am 4. Oktober 2026 (englisch).
- ↑ Read Error Severities and Error Management Logic. In: pcguide.com. Archiviert vom (nicht mehr online verfügbar) am 7. April 2012; abgerufen am 4. Oktober 2026 (englisch).
- ↑ Margaret Bierman, Lenz Grimmer: How I Use the Advanced Capabilities of Btrfs. In: oracle.com. August 2012, abgerufen am 4. Oktober 2026 (englisch).
- ↑ Yupu Zhang et al.: End-to-end Data Integrity for File Systems: A ZFS Case Study. In: 8th USENIX Conference on File and Storage Technologies (FAST 10). USENIX Association, San Jose, USA Februar 2010 (usenix.org [PDF; 264 kB; abgerufen am 4. Oktober 2026]).