Blog: Datenverluste bei Flash SSDs durch plötzlichen Stromverlust

Starnberg, 5. Jan. 2014 – Kommentar zur Analyse von Data Corruption bei NAND SSDs im Rahmen der 11. USENIX File & Storage Konferenz in San Jose (US)...

Um was es hier geht: Im Vergleich zu herkömmlichen Festplatten liefern Flash (NAND) basierte Solid State Disks (SSDs) mehr Leistung bei reduziertem Stromverbrauch und sind deshalb dabei, in Anwendungsbereichen wie VDI, Datenbanken oder der Virtualisierung klassische HDD-Konfigurationen zu ersetzen. Nach einer Untersuchung der Universität Ohio mit Unterstützung der HP Labs sind im Gegensatz zur klassischen Festplatte die Eigenschaften von SSDs im täglichen Betrieb unter ungünstigen Bedingungen bislang auf Komponentenebene (1) genauer analysiert worden; aber nicht hinlänglich unter verschärften Fehlerbedingungen, insbesondere bei einem unerwarteten Stromausfall. Nun sind selbst bei großen und gut abgesicherten RZ-Umgebungen ungeplante Power Faults wohl nicht zu 100% auszuschließen, so dass es sich für RZ-Betreiber lohnt, näher auf die folgende Analyse einzugehen.

In der Untersuchung „Understanding the Robustness of SSDs under Power Fault“ von Mai Zheng, The Ohio State University; Joseph Tucek, HP Labs; Feng Qin, The Ohio State University; Mark Lillibridge, HP Labs – vorgestellt auf der 11th USENIX Conference on File and Storage Technologies (FAST ’13) - analysierte das Team durch eine geeignete Versuchsanordnung insbesondere das Auftreten von Data Corruption bei einem unerwarteten Stromausfall.

Die Forscher unterzogen hierzu 15 SSDs von fünf verschiedenen Herstellern plus zwei HDDs diversen Ausfalltest mit folgendem Ergebnis:

  • Bei 13 von 15 Geräten (auch Enterprise Devices) wurde Data Corruption (z.B. auf Bit/Metadata level) beobachtet (zwei Geräte wurden beschädigt, d.h. am SAS-Bus nicht mehr erkannt; ein Drittel der Blöcke nicht mehr adressierbar).
  • Zwei SSDs gingen unter allen Testszenarien zu 100% unbeschädigt hervor 
  • Auch zwei HDDs wurden den Tests unterzogen, wobei eine HDD unserializable write Fehler nach Power Outages aufwies
  • Es wurden keine weiteren Angaben zu getesteten Geräten (Hersteller, Modellbezeichnungen etc.) gemacht

Hier können Sie gesamten Research als Original PDF Dokument herunterladen:

https://www.usenix.org/system/files/conference/fast13/fast13-final80.pdf

Kurzer Auszug aus der Summary des Untersuchungsberichts (Zitat): „The block-level behavior of SSDs exposed in our experiments has important implications for the design of storage systems. For example, the frequency of both bit corruption and shorn writes make update-in-place to a sole copy of data that needs to survive power failure inadvisable. Because many storage systems like filesystems and databases rely on the correct order of operations to maintain consistency, serialization errors are particularly problematic. Write ahead logging, for example, works only if a log record reaches persistent storage before the updated data record it describes. If this ordering is reversed or only the log record is dropped then the database will likely contain incorrect data after recovery because of the inability to undo the partially completed transactions aborted by a power failure...“ Zitatende.

Fazit: So, was also tun? Keine kritischen Daten mehr auf SDDs speichern? Natürlich nicht, wenngleich die Entwicklung bei SSD-Flash-Controllern und der Firmware noch nicht abgeschlossen ist und z.B. bestimmte Betriebs- und Filesysteme erst nach und nach die vollen Möglichkeiten dieser Technik unterstützen. Die Test bezogen sich auf eine extensive Analyse verschiedener Fehlerszenarien, die im Zusammenhang mit einem plötzlichen Stromausfall auftreten (s.a. Research Docu.) und offensichtlich haben nicht alle Anbieter von SSD-Drives auf Device-Ebene hierzu entsprechende Maßnahmen zur Power Loss Protection implementiert. Allerdings wurden laut Dokument ausschließlich einzelne Laufwerke (commercial MLS drives / enterprise SLCs) an einem LSI Logic SAS Controller getestet und nicht komplexe (All-Flash / hybrid) Storage Subsysteme mit entsprechender Firmware bzw. Controller Software.

Bei komplexen (All-/hybrid )Flash Subsystemen führender Storage-Hersteller sind entsprechende Softwarefunktionalitäten innerhalb der Controller/Firmware, Storage Nodes oder dem Storage O/S vorhanden, um möglichen Datenverlusten weitestgehend vorzubeugen. Ob dies unter allen - also auch ungünstigsten Fällen - immer sichergestellt werden kann, kann hier natürlich nicht allgemein verbindlich festgestellt werden.

  • Dabei sind die Testergebnisse für Systemintegratoren und OEM-Lieferanten interessant, wenn z.B aus preiswerteren Komponenten versucht wird, ein "Enterprise Ready" Subsystem herzustellen. Derzeit wohl nicht immer empfehlenswert, wir wir sehen... vor allem dann nicht, wenn man damit die Testumgebung in Richtung Anwender und womöglich heiße Produktionsdaten verschiebt...

Wichtig: Es ist im Bereich von Enterprise SSDs (Flash/NAND) selbstverständlich bei der Beschaffung darauf zu achten, dass herstellerseitig und vom O/S respektive der Applikation alle entsprechenden technologischen Möglichkeiten und Voraussetzungen vorhanden sind, um Data Corruption bzw. Datenverluste auch bei ungeplanten Betriebsstörungen möglichst zu verhindern bzw. idealerweise erst gar nicht erst entstehen zu lassen (USV's, ECC, EDC Software Prüfsummen, Controller Firmware Eigenschaften, Funktionen wie de-clustered RAID, distributed parity usw.); selbstverständlich sind Datensicherungs- (Snapshots, Backups, Spiegelung, near-CDP) und Desaster Recovery – Maßnahmen ebenso je nach Einsatzgebitet zu planen wie auf der HDD-Seite. 

Allerdings legt die genannte Untersuchung nahe, dass Anbieterseitig noch Arbeit geleistet werden muss (z.B. Controller Firmware, Metadaten - Nutzdaten Consisteny bei NAND; write-ahead logging Problem bei Datenbank-Anwendungen vs. unserializable writes etc.). Die SSD ist Stand heute ohne entsprechende Maßnahmen auf der Firmware-Seite eben (noch ?) kein simpler Ersatz für eine langsamere HDD.

  • Nicht die Hardware-Specs sind entscheidend, sondern die Storage Management Software und das Zusammenspiel von Controller, O/S und Applikation (Stichwort: Integration, Tests).

Empfehlung: Die sorgfältige Evaluierung-/Auswahl, eine enge Kommunikation mit dem Hersteller bzw. Systemintegrator und vor allem gründliche Planung ist aus meiner Sicht deshalb Pflicht. Beschaffen Sie Flash SSD's nicht primär über den Preis, sondern über Funktionalität und Sicherheit und mit Blick auf die Anwendungen... Ihre Daten müssen es Ihnen Wert sein! Dies gilt auch im HPC-Umfeld.

Im Videolink (Dauer: ca. 30 Min.) zum Vortrag von Mr. Mai Zheng – gehalten auf der o.g. 11. USENIX Conference on File and Storage Technologies (FAST ’13) – erfahren Sie aus erster Hand die dort vorgestellten Untersuchungsergebnissen:

https://www.usenix.org/conference/fast13/understanding-robustness-ssds-under-power-fault

Abb.1: Testumgebung

Bildquelle Abb.1: "Unterstanding the Robustness of SSDs under Power Fault", 2013 - Mai Zheng u.a. (siehe oben)

Weitere Anmerkungen: Natürlich korreliert rein statistisch eine massive Zunahme von SSD-Kapazitäten (absolute Datenmenge / Anzahl Speichergeräte) mit ansteigenden potentiellen Problemen. Wir beobachten das übrigens seit längerer Zeit im Bereich von konventionellen Festplatten-Arrays... Stichwort: Silent Data Corruption*.

  • Das Verschwinden von Bits ist ein seltenes Phänomen, kann aber über die Zeit dazu führen, dass Informationen unbemerkt verloren gehen. Im Prinzip werden beim Schreiben der Daten Bits geändert und können beim Lesen nicht korrekt wiedergegeben werden. Storage- und Filesysteme sollten eigentlich das fehlerhafte Schreiben erkennen, den Fehler melden und dann beheben. Bei der schleichenden Datenkorruption können jedoch die geänderten Bits oft nicht erkannt werden; indirekt wird damit das Schreiben von fehlerhaften Daten unfreiwillig unterstützt. Bei stark steigenden Datenmengen, sprich Anzahl größerer Festplatten steigt statistisch gesehen damit auch die Gefahr, Daten zu verlieren. Ohne permanente Backups und der Möglichkeit, Silent Data Corruption beim fehlerhaften Schreiben zu erkennen werden diese Fehler erst erkannt wenn Daten bereits verloren sind.

Allerdings sind die Auswirkungen in der Praxis auf Grund der immer weiter verbesserten Datenschutz-Mechanismen der Hersteller bislang in der kommerziellen IT sehr gering. Auch besitzen einige Filesysteme schon „ab Werk“ verschiedene Schutzvorrichtungen, um Data Corruption zu vermeiden. Deshalb wäre es wenig hilfreich, aus den genannten Gründen etwa wichtige Daten nun nicht mehr auf Festplatten-Arrays mit RAID-Verfahren abzuspeichern.


* Link zum Blog „Silent Data Corruption“ mit mehr Hintergrund-Informationen:

http://www.storageconsortium.de/content/content/blog-analyse-zur-möglichen-datenkorruption-im-storage-stack

*Eine wissenschaftliche Studie „An Analysis of Data Corruption in the Storage Stack“ [1] über 1,53 Millionen Festplatten im 41 Monats-Zeitfenster hat ergeben, daß 8,0% der dort untersuchten SATA-Festplatten potentielle Kandidaten für stille Korruption darstellen. Diverse Festplatten-Array-Prüfungen laufen deshalb im Hintergrund (Datenebene, Parity-RAID usw.) und können wie oben beschrieben diese Art von Fehler abfangen. Die Studie ergab auch, dass 13% der Fehler durch die parallel ablaufende Überprüfung verpasst wurden (2% latente Sektoren-Fehler-Rate bei Enterprise Disks innerhalb von 2 Jahren; 19% im selben Zeitraum bei Nearline-Storage-Systemen und Fehlerraten durch stille Datenkorruption von 0.06% bei Enterprise Disks (0.6% bei Nearline)*. Im einzelnen wurde dies auf drei Fehlerklassen zurückgeführt (Checksum mismatches, Identity discrepancies und Parity inconsistencies). 

[1] Quellenangaben und mehr dazu im Blog zu Silent Data Corruption.