
Ich versuche das zu verstehen. Angenommen, ich habe eine 256 GB SSD, von der 180 GB bereits mit permanenten Dateien belegt sind (Betriebssystem, installierte Programme usw.). Auf den verbleibenden 70 GB oder so werden neue Dateien erstellt und gelöscht. Bedeutet das nicht, dass die NAND-Chips dieses Teils früher abgenutzt werden als der Bereich, dessen Dateien nicht geändert werden? Oder verschiebt die SSD im Laufe der Zeit auch die nicht geänderten Dateien?
Antwort1
Die SSD verschiebt im Laufe der Zeit unveränderte Dateien.
Zunächst einmal gibt es die virtuellen Sektoren, die dem Betriebssystem zugänglich sind (nicht zu verwechseln mit Dateisystemclustern), und dann gibt es die physischen Zellen in den Flash-Chips. Wenn der Flash-Controller Zellen zuweist/freigibt, ordnet er die virtuellen Sektoren entsprechend neu zu, sodass dies für das Betriebssystem transparent ist (dieselben virtuellen Sektoren können zu unterschiedlichen Zeiten an unterschiedlichen Stellen in den Flash-Zellen erscheinen).
Zweitens verfügen SSDs tatsächlich über Ersatzzellen, die nicht als freier Speicherplatz genutzt werden können. Sie sind speziell für den Zweck des Wear Leveling, der Minderung der Schreibverstärkung und der Neuzuordnung toter Zellen reserviert. Auf diese Weise hat der Flash-Controller auch dann noch Platz, um Wear Leveling durchzuführen, wenn Ihre SSD null Bytes freien Speicherplatz hat.
Angenommen, Sie haben eine 500 GB große SSD, die zu 100 % voll ist. Nehmen wir nun an, dass 499 GB dieser Daten eine Datei sind, die sich nie ändert, Sie aber eine 1 GB große Datei haben, die sich ständig ändert. Wenn Sie diese 1 GB große Datei löschen und dann eine andere 1 GB große Datei kopieren, führt der Flash-Controller in diesem Moment eines von zwei Dingen aus:
- Alle oder ein Teil der neuen Daten werden Ersatzzellen zugewiesen, wobei die alten Zellen in einem noch gekürzten Zustand verbleiben.
- 1 GB an Zellen innerhalb der 499 GB an Daten, die sich nie ändern, werden in andere verfügbare Zellen kopiert. Die alten Zellen werden dann gelöscht und mit den neuen Daten neu beschrieben.
In beiden Fällen ändern sich die dem Betriebssystem präsentierten virtuellen Sektoren nie, sodass das Betriebssystem nicht weiß, was tatsächlich passiert. Der Flash-Controller führt eine Zuordnungstabelle von Speicherzellen zu virtuellen Sektoren.
Das Lebensziel des Wear-Leveling-Algorithmus besteht darin, alle Zellen gleichmäßig zu beanspruchen, selbst wenn dazu Daten verschoben werden müssen. Dieser Prozess verlangsamt das Laufwerk und verursacht (ironischerweise) zusätzlichen Verschleiß der Flash-Zellen. Er heißtSchreibverstärkungund es ist ein erhebliches Problem bei SSDs. Die tatsächlichen Wear-Leveling-Algorithmen, die von SSDs verwendet werden, und die Art und Weise, wie sie die Schreibverstärkung abschwächen, sind proprietäre Geschäftsgeheimnisse der SSD-Hersteller, daher ist dies nur eine allgemeine Beschreibung des Prozesses.