Vor zwei Wochen haben wir in diesem Blog die Garbage Collection und den Trim-Befehl beschrieben, die beide Methoden zum Markieren und Setzen von Daten sind, die nicht mehr verwendet werden und daher in einer Flash NAND-basierten SSD überschrieben werden können.
Diese beiden Methoden versuchen, ein Problem zu lösen, das jede SSD, die mit Flash NAND-Chips hergestellt wird, von Natur aus hat: die Write Amplification (WA) und den Write Amplication Factor (WAF). Wie wir aus früheren Beiträgen in unserem Blog gelernt haben, besteht einer der Hauptunterschiede zwischen einer "normalen" magnetischen Festplatte (HDD) und einem Solid State Drive (SSD) darin, wie sie mit Datenschreiben umgehen. Während Festplatten "nur" die Daten auf einen freien Platz schreiben, der auf dem Plattenteller verfügbar ist, löscht die SSD immer zuerst die Daten, bevor sie neue Daten in die Flash-Speicherchips schreiben kann. Das bedeutet, dass mit Ausnahme von brandneuen SSDs, auf denen zuvor keine Daten gespeichert und/oder vom Hersteller vor dem Verkauf sicher gelöscht wurden, die Flash-Speicherchips gelöscht werden müssen, bevor sie neu geschrieben werden können.
Dies wäre kein Problem, wenn der Löschvorgang eine einfache Aufgabe wäre, wie z.B. das Löschen eines Speicherplatzes mit Daten auf einem der Flash-Chips und das Schreiben neuer Daten darauf. Dies ist jedoch nicht der Fall, da beim Delting von Daten und beim Schreiben neuer Daten auf eine SSD die Daten und Metadata mehrfach geschrieben werden müssen. Denn Flash-Speicher bestehen aus Datenblöcken und Seiten
Blöcke bestehen aus mehreren Seiten und eine Seite besteht in der Regel aus mehreren Speicherchips. Die größte Herausforderung besteht darin, dass die Flash-Zellen nur blockweise gelöscht und seitenweise beschrieben werden können. Um neue Daten auf eine Seite zu schreiben, muss sie physisch völlig leer sein. Ist dies nicht der Fall, muss der Inhalt der Seite gelöscht werden. Es ist jedoch nicht möglich, eine einzelne Seite zu löschen, sondern nur alle Seiten, die zu einem Block gehören. Denn die Blockgrößen einer SSD sind fest vorgegeben - zum Beispiel 512KB, 1024KB bis 4MB. - ein Block, der nur eine Seite mit nur 4k Daten enthält, nimmt sowieso den vollen Speicherplatz von 512KB ein.
Wie vorstehend beschrieben, hatten Verbraucher-SSDs früher eine hohe WAF, denn wenn Sie z.B. eine neue 4KB-Datei schreiben, kann das Solid State Drive durchschnittlich 40 KB Daten schreiben. Dies liegt daran, dass der SSD-Controller versucht, Daten aus mehreren und nur teilweise verwendeten Blöcken zu kombinieren, um Seiten (Pages) für das Schreiben neuer Daten freizugeben. In diesem Fall ist der Write Amplification Factor (Schreibverstärkungsfaktor) 10. Wenn beispielsweise 2 GB Daten vom Host-Computer an die SSD gesendet und 4 GB auf die SSD geschrieben wurden, ist die WAF 2.
Wie man die Write Amplification (Schreibverstärkung) bekämpft
Sie können die Auswirkungen der Schreibverstärkung bekämpfen, indem Sie den freien Speicherplatz auf der SSD konsolidiert halten. Sie können die Schreibverstärkung tatsächlich minimieren, wenn der TRIM-Befehl aktiviert ist und die TRIM-Operationen automatisch vom Betriebssystem im Hintergrund ausgeführt werden, um ungenutzten Festplattenspeicher zu löschen. Allerdings - und das ist ein großes Risiko - besteht nach der Aktivierung von TRIM und dem Überschreiben des Speicherplatzes keine Möglichkeit, die dort gespeicherten Originaldaten wiederherzustellen.
Trotzdem sollte man, wenn es sich um wichtige Daten handelt, nicht sofort aufgeben, sondern den Fall in die Hände von Datenrettungsspezialisten geben. In einigen Fällen können sie Daten wiederherstellen, die sich z.B. an anderen Speicherplätzen „versteckt“ haben oder wo der TRIM-Befehl nicht richtig ausgeführt wurde.
Weitere Informationen zum Thema finden sie unter: