Dieser Artikel enthält Informationen dazu, warum die SSD verschleißt.
Übersicht
Warum verschleißen Solid-State-Geräte?
Um zu erläutern, warum eine Flash-basierte SSD eine eingeschränkte Schreiblebensdauer hat, muss zunächst die Mechanik des Flashspeichers betrachtet werden, wie sich diese über die verschiedenen Flashtypen hinweg unterscheidet und welche Techniken zur Verbesserung der Funktionalität verwendet werden.
Ein Flashspeichergerät wird auf Basis von Seiten gelesen und beschrieben. Ein Lesevorgang ist relativ einfach, da ein Lesebefehl mit der Adresse ausgegeben und die entsprechenden Daten zurückgegeben werden. Ein Schreibvorgang kann nur auf die Seiten erfolgen, die gelöscht worden sind. Daher rufen Host-Schreibbefehle Flash-Löschzyklen auf, bevor sie in den Flash-Speicher schreiben. Diese Schreib-/Löschzyklen führen zu Zellenverschleiß, was eine eingeschränkte Schreiblebensdauer zur Folge hat.
NAND-Flashgeräte bestehen entweder aus Single-Level-Zellen (SLC) oder Multi-Level-Zellen (MLC). SLC speichert nur ein Bit an Informationen und benötigt nur zwei Spannungsebenen, um eine 0 oder 1 darzustellen. Dies ist die einfachste Implementierung von NAND und hat die höchste Lebensdauer mit rund 100.000 Zyklen. Da die zukünftigen Generationen von Flash kleinere Geometrien einsetzen, wird die Lebensdauer verringert (es gibt bereits einige mit nur 50.000 Zyklen). MLC speichert in der Regel zwei Bit an Informationen und erfordert vier Spannungsebenen, die für 00, 01, 10 und 11 stehen. Der Zellenverschleiß ist zwischen SLC und MLC ähnlich, aber da mehr Spannungspegel erkannt werden müssen, ist die Lebensdauer deutlich reduziert. MLC liegt in der Regel bei rund 10.000, neuere Generationen jedoch nur bei 3.000 bis 5.000 Zyklen.
Eine Flash-SSD besteht aus einer Anzahl Flashchips, um die hohen Kapazitäten zu erreichen. Zum Verbessern der Schreibdauer von SSDs werden verschiedene Techniken verwendet, die auf beide NAND-Typen angewendet werden können. Host-Schreibzugriff kann an jedem Speicherort erfolgen, was zu Hotspots führen kann und somit zu vorzeitigem Verschleiß dieser Speicherorte. Eine Technik namens Wear-Leveling wird verwendet, um solche Hotspots zu verhindern. Die Wear-Leveling-Funktion führt zu einer fast gleichmäßigen Verteilung der Schreibzugriffe auf die Gesamtkapazität der SSD. Write Amplification ist ein Maß für das Verhältnis der Anzahl der Flash-Schreibvorgänge in Bezug auf den Host-Schreibvorgang. Beispiel: Wenn 2 Flash-Schreibvorgänge pro Host-Schreibvorgang erzeugt werden, ist die Write-Amplification auch 2. Um die Write-Amplification zu reduzieren, verbessert eine Technik mit der Bezeichnung Overprovisioning die Effizienz der Garbage Collection, wodurch die Write-Amplification reduziert wird. Schließlich verwendet eine Technik, die in der Regel bei MLC angewendet wird, niedrigere Spannungspegel während des Schreibzyklus, um den Zellenverschleiß zu verringern und so die Schreiblebensdauer zu verbessern.
Es ist zwar schwierig, genau zu bestimmen, wie lange eine SSD hält, es gibt jedoch Richtlinien für die ungefähre Schätzung. Die SSD verwendet eine Kennzahl, genannt TBW (Terabyte written, geschriebene TB), die von JEDEC entwickelt wurde. Die tatsächliche Schreibdauer wird vom Arbeitslastprofil beeinflusst (z. B. zufällig oder sequenziell, Blockgröße oder Schreibaktivität), TBW bietet jedoch eine Schätzung. Um die erwartete Lebensdauer zu bestimmen, nimmt man die TBW und teilt durch das erwartete durchschnittliche BW der Schreibvorgänge auf das Laufwerk. In der Regel sollten SSDs außerhalb von Umgebungen mit sehr starker Beanspruchung voraussichtlich mehr als drei Jahre halten.
Wear-Leveling
NAND-Flashspeicher sind anfällig für Verschleiß aufgrund von wiederholten Programmier- und Löschzyklen, die üblicherweise bei Datenspeicheranwendungen und Systemen mit Flash Translation Layer (FTL) vorkommen. Durch ständiges Programmieren und Löschen desselben Speicherplatzes verschleißt dieser Teil des Speichers letztlich und wird ungültig. Infolgedessen hätte der NAND-Flash eine eingeschränkte Lebensdauer. Um solche Szenarien zu verhindern, werden bei SSDs spezielle Algorithmen eingesetzt, die als Wear-Leveling bezeichnet werden. Wie die deutsche Übersetzung des Begriffs – Verschleißausgleich – nahelegt, handelt es sich um eine Methode zum gleichmäßigen Verteilen von Programmier- und Löschzyklen über alle Flash-Speicherblöcke innerhalb des SSD. Dies verhindert kontinuierliche Programmier- und Löschzyklen auf demselben Speicherblock, was zu einer längeren Lebensdauer des gesamten NAND-Flashspeichers führt.
Es gibt zwei Arten des Verschleißausgleichs: dynamisch und statisch. Der dynamische Verschleiß-Algorithmus garantiert, dass die Programmier- und Löschzyklen von Daten gleichmäßig über alle Blöcke im NAND-Flash verteilt werden. Der Algorithmus ist dynamisch, weil er jedes Mal ausgeführt wird, wenn Daten im Schreibpuffer des Laufwerks geleert und in den Flashspeicher geschrieben werden. Dynamisches Wear-Leveling allein kann nicht gewährleisten, dass der Verschleiß-Ausgleich für alle Blöcke im selben Maß erfolgt. Es gibt auch den Sonderfall, dass Daten geschrieben und für längere Zeit oder auf unbestimmte Zeit im Flashspeicher gespeichert werden. Während andere Blöcke aktiv getauscht, gelöscht oder im Pool zusammengefasst werden, bleiben diese Blöcke beim Wear-Leveling-Prozess inaktiv. Um sicherzustellen, dass Wear-Leveling für alle Blöcke im selben Maß erfolgt, wird ein zweiter, sogenannter statischer Wear-Leveling-Prozess eingesetzt. Der statische Verschleißausgleich wird an den Blöcken durchgeführt, die inaktiv sind und Daten gespeichert haben.
Dell SSD-Laufwerke enthalten sowohl statische als auch dynamische Verschleißausgleichs-Algorithmen, um sicherzustellen, dass die NAND-Blöcke gleichmäßig verschleißen und eine längere Lebensdauer der SSD zu gewährleisten.
Overprovisioning
Overprovisioning verbessert:
- Schreibleistung und IOPS
- Zuverlässigkeit