News SSD-Cache-Problem: Trotz Flush droht Datenverlust bei Stromausfall

MichaG

Redakteur
Teammitglied
Registriert
Juli 2010
Beiträge
13.364
Auf Basis eigener Versuche berichtet der Entwickler Russ Bishop, dass es bei einigen NVMe-SSDs trotz angeblich erfolgter Pufferspeicher-Leerung (Cache Flush) zu Datenverlusten kommen kann. Bei zwei von vier getesteten NVMe-SSDs verschiedener Hersteller sei dies aufgetreten. Bishop will weitere prüfen.

Zur News: SSD-Cache-Problem: Trotz Flush droht Datenverlust bei Stromausfall
 
  • Gefällt mir
Reaktionen: Smartbomb, aid0nex, LuckyMagnum und 25 andere
Tja. Das endet in der Datenapokalypse. Das ist der Mechanismus auf den sich jegliches Dateisystem + Layer in der Applikation verlassen.
 
  • Gefällt mir
Reaktionen: nosound, dualcore_nooby und Schmarall
Könnte daran liegen, dass bei NVMe-SSDs eine parallele Abarbeitung der Befehle erfolgt.
Vielleicht könnte man den Flush-Befehl dann irgendwie anders umsetzen, dass dies nicht passiert.

Bei WD (Sandisk) und Samsung scheint's ja (zumindest bei den beiden Modellen) zu funktionieren.
 
  • Gefällt mir
Reaktionen: Micke
Wer sich bei Stromausfall auf der sicheren Seite fühlt ist immer auf dem Holzweg. Wem Sicherheit wichtig ist betreibt als Backup ein externe USV Stromversorgung… alle anderen sollten damit leben dass es „sein kann“ dass sicher geglaubte Daten vllt nicht mehr da sind ( vor allem wenn man mit den Daten gearbeitet hat in dem
Momement)
 
  • Gefällt mir
Reaktionen: aid0nex, Apple ][, Qyxes und 12 andere
Ich verstehe das Problem nicht ganz.
Bzw das Problem schon, aber die Auswirkungen sollten ja vernachlässigbar sein.

Die SSD verliert Daten die als gesichert geflaggt sind, wenn die Spannung weg ist.
Nur warum ist das erst ein Problem, wenn die "gesichert" flag gesetzt wird? Die Information "Daten wurden gespeichert" kann ja auch nicht gespeichert werden fürs nächste Mal, also muss das Programm theoretisch immer von Datenverlust ausgehen

Also verstehe ich jetzt die praktische Bedeutung nicht ganz.
 
  • Gefällt mir
Reaktionen: racer3 und Rollo3647
Oh, sowas darf natürlich nicht sein. Bin gespannt auf die weiteren Ergebnisse morgen.

Fun fact: Eine Analogie zum deutschen Dieselskandal mit der Abschaltautomatik in der Software ist da nicht allzu weit ;)
 
  • Gefällt mir
Reaktionen: Bigeagle
Dass das nicht unbedingt sofort bemerkt werden kann. Macht das Ganze zu einem echt großen Problem.
 
  • Gefällt mir
Reaktionen: w33werner
Sicherlich nicht schön aber wie oft ist denn bei euch der Strom ausgefallen?

Bei mir? Notebook noch nie. PCs an Standorten mit instabilem Stromversorgung sind mit USVs abgesichert und an anderen Standorten liegt der letzte Stromausfall schätzungsweise 20 Jahre zurück.
 
  • Gefällt mir
Reaktionen: FR3DI
M1ch1 schrieb:
Also verstehe ich jetzt die praktische Bedeutung nicht ganz.

Ist zwar ein Fall, der mit Consumerhardware nicht häufig vorkommen sollte, aber bei verteilten Transaktionen ist sowas schon wichtig. Wenn die eine Datenbank sich auf den Flush des Datenträgers verlässt und dann an die anderen meldet "ja ich habe es gespeichert" obwohl es gar nicht sicher persistiert ist und dann einen Stromausfall kriegt, ist der ganze Zustand nicht mehr korrekt.
 
  • Gefällt mir
Reaktionen: bullit1, aid0nex, Syagrius und 9 andere
War das Thema nicht angefangen dadurch, das aufgefallen ist, dass Macbooks bis zu 5 Minuten nach dem Write noch Daten verlieren können wenn ein plötzlicher Shutdown kommt?

Bei LTT wurde am Freitag in der WAN Show etwas der Art diskutiert.
 
M1ch1 schrieb:
Ich verstehe das Problem nicht ganz.

Das Problem ist, dass die ssd meldet, dass die Daten gespeichert sind, obwohl sie noch nicht gespeichert sind.

Auch wenn man jetzt beim heimanwender hier nicht unbedingt von Datenverlust ausgehen sollte, ist das trotzdem zumindest ziemlicher Pfusch. Wenn die ssd meldet, dass Daten gespeichert wurden, dann müssen die auch komplett geschrieben und "permanent" sein und nicht noch irgendwo zwischen Cache und nand rumfahren.
 
  • Gefällt mir
Reaktionen: Smartbomb, nosound, aid0nex und 15 andere
das erinnert mich irgendwie an die geschichte mit den xerox druckern vor... über 15 Jahren?
ich finde es aber von ihm nicht sonderlich hilfreich es nicht vorher bei den betroffenen herstellern angesprochen zu haben... er lässt sie hier ins offene messer laufen
 
  • Gefällt mir
Reaktionen: Apple ][, Arne, Kommando und 2 andere
Da wollen sich wohl einige Hersteller einen Geschwindigkeits- oder Laufzeitvorteil erschleichen, der nicht realistisch ist.. oder wie soll man diesen "Fehler" (bzw "Trick") verstehen?
 
  • Gefällt mir
Reaktionen: nosound, ottoman und FR3DI
Elandion schrieb:
Ist zwar ein Fall, der mit Consumerhardware nicht häufig vorkommen sollte, aber bei verteilten Transaktionen ist sowas schon wichtig. Wenn die eine Datenbank sich auf den Flush des Datenträgers verlässt und dann an die anderen meldet "ja ich habe es gespeichert" obwohl es gar nicht sicher persistiert ist und dann einen Stromausfall kriegt, ist der ganze Zustand nicht mehr korrekt.
Vor allem ist dann fraglich, ob Write Barriers allgemein mit der jeweiligen NVMe richtig funktionieren. Ansonsten kann man sich auf Datenbanken (und Dateisysteme...) darauf einfach nicht verlassen.

Ich wette aber auch drauf, dass diverse SSDs bei (häufigem) plötzlichen Stromverlust nicht nur die beschriebenen Probleme haben, sondern u.U. auch den kompletten Inhalt schrotten. Der ganze Krams mit Erase Block Mapping etc. ist einfach relativ komplex, und die Firmwares werden sicher nicht alle Fehlerpfade speziell bei seltenen Problemen wie plötzlichem Stromausfall mitten in hohem Schreib-Load korrekt behandeln.
 
  • Gefällt mir
Reaktionen: uli_2112 und emerald
  • Gefällt mir
Reaktionen: racer3
Gut, dass sich jemand diesem Thema nocheinmal praktisch annimmt. Ich bin sehr gespannt auf die Ergbnisse.

In Tests vor Jahren gab es ja schon ganz ähnliche Ergebnisse bis hin zum Totalschaden an SSDs:
"
Our experimental results with 17 SSDs from six different vendors show that most of the SSDs we tested did not adhere strictly to the expected semantics of behavior under power faults. We have observed five out of the seven expected failure types, including bit corruption, shorn writes, unserializable writes, metadata corruption, and dead device.
"
Reliability Analysis of SSDs Under Power Fault (2016_TOCS_SSD.pdf)
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Apple ][, Bigeagle, MichaG und eine weitere Person
  • Gefällt mir
Reaktionen: noxcivi, Kassandra_89, schneeland und eine weitere Person
wayne_757 schrieb:
Das ist der Mechanismus auf den sich jegliches Dateisystem + Layer in der Applikation verlassen.
Nein, moderne Dateisysteme mit Copy on Write kommen damit deutlich besser zurecht.

Bin aber auch gespannt was bei den weiteren Tests heraus kommt, man will nicht nur Samsung kaufen :watt:
 
  • Gefällt mir
Reaktionen: boxte30:Goas, gr1zzly und Forlorn
Tanzmusikus schrieb:
Könnte daran liegen, dass bei NVMe-SSDs eine parallele Abarbeitung der Befehle erfolgt.
Vielleicht könnte man den Flush-Befehl dann irgendwie anders umsetzen, dass dies nicht passiert.

Bei WD (Sandisk) und Samsung scheint's ja (zumindest bei den beiden Modellen) zu funktionieren.
https://nvmexpress.org/wp-content/u...se-Specification-2.0b-2021.12.18-Ratified.pdf

Punkt 7.1.
Kommt ein Flush, muss auf den nicht flüchtigen Speicher geschrieben und nach Abschluss bestätigt werden. Kommt die Bestätigung bevor die Daten geschrieben werden, ist die NVMe Spezifikation verletzt. Mit Parallelität hat das nichts zu tun!
 
  • Gefällt mir
Reaktionen: Smartbomb, bullit1, noxcivi und 15 andere
Zurück
Oben