Wie versagt SSD gegen Ende des Lebens?

9

Angenommen, eine MLC-SSD hat sehr lange gedauert und die erste Zelle hat ihren letzten Löschzyklus erreicht und weigert sich zu löschen.

Was passiert danach? Erkennt der Controller dies als fehlerhaften Block und wechselt zum nächsten und versucht stattdessen, diesen zu löschen? Würde die Gesamtkapazität des Laufwerks mit der Zeit nur langsam abnehmen?

BEARBEITEN

Und natürlich können wir die Verschleißnivellierung vergessen. Ja, es verlängert die Lebensdauer eines Laufwerks, aber darüber spreche ich nicht. Schließlich erreicht eine Zelle ihren letzten Löschzyklus.

Pyrolistisch
quelle

Antworten:

8

Die NAND-Flash-Chips verfügen über einige integrierte Mechanismen zum Erkennen von Fehlern beim Schreiben und Löschen und alarmieren den Controller, wenn einer ausfällt. In diesem Fall kann der Controller es entweder erneut versuchen oder diesen Block als fehlerhaft behandeln und ihn aus seinem Verschleißausgleichsalgorithmus abbilden. Jede Seite im NAND-Gerät verfügt neben dem Hauptdatenbereich über einen freien Bereich , der für Metadaten wie ECC und andere Formen der Fehlererkennung und -toleranz vorgesehen ist. Die Steuerung kann anhand des Ersatzbereichs ein eigenes Fehlertoleranzschema festlegen. Hamming-Codes sind ein gängiges Schema, obwohl es mehrere gibt, einschließlich einfacher Paritätsbits und Reed-Solomon-Codes. Wenn bei einem Lesevorgang die Dinge nicht übereinstimmen, kann der Controller wieder tun, was er möchte. Im Idealfall werden diese Blöcke auch aus dem Algorithmus für die Verschleißnivellierung zugeordnet, und Sie verlieren nach und nach die Kapazität, bis "zu viele" Blöcke ausfallen, wobei "zu viele" von den Algorithmen und Hardwarestrukturgrößen innerhalb des Controllers abhängen. Viele First-Cut-Controller-Designs melden einfach einen Fehler für das Betriebssystem.

Beachten Sie, dass dies kein MLC-spezifisches Problem ist. Obwohl MLC-Zellen anfälliger für einen Lesefehler sind, da es notwendigerweise eine geringere Fehlerquote gibt, versagen SLC-Zellen mit größtenteils denselben Mechanismen und können von der Steuerung auf die gleiche Weise behandelt werden.

Matt J.
quelle
2

Genau wie bei Festplatten liegt es an der Implementierung im Betriebssystem. Der Controller meldet einfach, dass das Schreiben (Löschen ist eigentlich eine Schreiboperation) fehlgeschlagen ist, und es liegt an dem Treiber im Betriebssystemkern, zu entscheiden, was zu tun ist. Nach dem, was ich bisher gesehen habe, geben Microsoft- und Linux-Implementierungen einfach den Fehlercode an die aufrufende Anwendung zurück, sodass E / A-Fehler auftreten.

Kurzum: Sie bekommen einfach irgendwann ein "kaputtes" Gerät.

Milan Babuškov
quelle
Nun, das ist scheiße. Keine sehr gute Abstraktion dann ...
Pyrolistical
1
Und falsch. Dies wird hauptsächlich in der SSD selbst erledigt - nicht im Gerätetreiber. Weil dies normaler Betrieb ist. Durch die Verschleißnivellierung wird der Sektor als fehlgeschlagen erfasst und der Sektor neu zugeordnet.
TomTom
1

SSDs verwenden eine sogenannte "Verschleißnivellierung", bei der das Laufwerk eine Statistik über die Sektornutzung speichert und irgendwann oder wenn es Probleme erkennt, wird der Sektor in eine Reserve verschoben, genau wie dies bei normalen Festplatten der Fall ist.

Sven
quelle
Ja, aber ich sehe, dass die mechanische Festplatte mechanisch ausfällt, bevor ihnen die reservierten Sektoren ausgehen. SSD jedoch möglicherweise nicht. Was passiert, wenn einem Laufwerk die reservierten Sektoren ausgehen?
Pyrolistical
Schreibfehler. Was erwarten Sie sonst noch?
TomTom