Wie erreicht SSD einen Verschleiß, wenn die Festplatte fast voll ist?

2069
dotNET

Ich versuche das zu verstehen. Angenommen, ich habe eine 256-GB-SSD, von der bereits 180 GB mit permanenten Dateien (Betriebssystem, installierte Programme usw.) belegt sind. Für die verbleibenden 70 GB werden neue Dateien erstellt und gelöscht. Bedeutet das nicht, dass die NAND-Chips dieses Abschnitts früher abgenutzt werden als der Bereich, dessen Dateien nicht geändert werden? Oder verschiebt SSD die nicht veränderlichen Dateien im Laufe der Zeit auch?

5
Die kurze Antwort ist, dass SSDs ständig Blöcke verschieben und sich nicht wirklich darum kümmern, ob die Daten aktiv referenziert werden oder nicht. Beachten Sie, dass das Löschen von Dateien normalerweise nur den Zeiger auf die Blöcke aus dem Dateisystem entfernt, die Datenblöcke jedoch nicht wirklich löscht. Ich habe jetzt nicht genug Zeit, um eine richtige Antwort zu verfassen, aber das ist wahrscheinlich der Kern einer Antwort, auch mit Referenzen. a CVn vor 9 Jahren 0
Wenn Ihr Betriebssystem von Zeit zu Zeit den TRIM-Befehl verwendet, werden die Datenblöcke nach dem Löschen einer Datei sicherlich gelöscht. Zumindest periodisch. Und selbst wenn nicht: Die Blöcke müssen beim nächsten Schreibvorgang gelöscht werden. Slizzered vor 9 Jahren 0
Das gleiche gilt für die Zellen, die vom Dateisystem nicht als Daten gekennzeichnet sind. Ramhound vor 9 Jahren 0
Ich würde sagen, die richtige Antwort ist "es kommt darauf an" ... hauptsächlich von der SSD oder genauer von deren Controller und Firmware. Wearleveling-Algorithmen unterscheiden sich je nach Sillicon und Hersteller. Fox vor 9 Jahren 0

1 Antwort auf die Frage

3
Wes Sayeed

Die SSD verschiebt nicht veränderliche Dateien im Laufe der Zeit.

Zunächst einmal haben Sie die virtuellen Sektoren, die dem Betriebssystem ausgesetzt sind (nicht zu verwechseln mit Dateisystemclustern), und dann haben Sie die physischen Zellen in den Flash-Chips. Wenn der Flash-Controller Zellen zuweist / freigibt, ordnet er die virtuellen Sektoren entsprechend zu, sodass sie für das Betriebssystem transparent sind (die gleichen virtuellen Sektoren können zu unterschiedlichen Zeiten an verschiedenen Orten in den Flash-Zellen erscheinen).

Zweitens haben SSDs tatsächlich Ersatzzellen, die nicht als freier Speicherplatz verwendet werden können. Sie sind speziell für den Zweck des Abnutzungsniveaus vorgesehen, um die Schreibverstärkung abzuschwächen und tote Zellen neu zuzuordnen. Auf diese Weise hat der Flash-Controller selbst dann noch Platz, um die Verschleißniveaus durchzuführen, selbst wenn sich auf Ihrer SSD null Byte freier Speicherplatz befinden.

Nehmen wir an, Sie haben eine 500 GB große SSD, die zu 100% voll ist. Nehmen wir jetzt an, dass 499 GB dieser Daten eine Datei sind, die sich nie ändert, aber Sie haben eine 1 GB-Datei, die sich ständig ändert. Wenn Sie diese 1 GB-Datei löschen und dann über eine weitere 1 GB-Datei kopieren, führt der Flash-Controller in diesem Moment eine der folgenden zwei Aktionen aus:

  • Alle oder einige der neuen Daten werden Ersatzzellen zugewiesen, so dass die alten Zellen immer noch getrimmt bleiben.
  • Zellen mit 1 GB innerhalb der 499 GB Daten, die sich niemals ändern, werden in andere verfügbare Zellen kopiert. Die alten Zellen werden dann gelöscht und mit den neuen Daten neu geschrieben.

In beiden Fällen ändern sich die virtuellen Sektoren, die dem Betriebssystem präsentiert werden, niemals, sodass das Betriebssystem nicht weiß, was tatsächlich passiert. Der Flash-Controller führt eine Zuordnungstabelle von Speicherzellen zu virtuellen Sektoren.

Das Ziel des Verschleißnivellierungsalgorithmus im Leben ist es, alle Zellen gleichmäßig zu trainieren, auch wenn dazu Daten verschoben werden müssen. Dieser Vorgang verlangsamt den Antrieb und führt (ironischerweise) zu einem zusätzlichen Verschleiß der Flash-Zellen. Dies wird als Schreibverstärkung bezeichnet und ist bei SSDs ein erhebliches Problem. Die von SSDs verwendeten Abnutzungsausgleichsalgorithmen und die Art und Weise, wie sie die Schreibverstärkung abschwächen, sind unter den SSD-Herstellern proprietäre Geschäftsgeheimnisse, daher ist dies nur eine allgemeine Beschreibung des Prozesses.

"Die SSD verschiebt nicht veränderliche Dateien im Laufe der Zeit." Oder zumindest * sollen *, aber das hängt natürlich vom Controller ab. Wenn SSDs * immer * veraltete Daten verschieben (z. B. installierte Betriebssystem- und Programmdateien), dann hätten wir das Samsung 840 Evo-Verzögerungsproblem nie kennen gelernt. Karan vor 9 Jahren 0
Nicht unbedingt. Es hängt vom Controller ab, aber wir werden nie wissen, wie die Firmware ihre Neuzuteilungsentscheidungen trifft. Wenn das Laufwerk die meiste Zeit mit Lesen verbringt (wie es bei einem Betriebssystemlaufwerk der Fall ist), muss nur sehr wenig Verschleiß auftreten. Vermutlich kennt die Firmware die Anzahl der Zyklen jeder Zelle, und es ist logisch anzunehmen, dass die Firmware es vorziehen würde, eine "frische" Zelle anstelle einer gebrauchten, aber getrimmten Zelle zu verwenden. Für eine große SSD ist es denkbar, dass es Jahre dauern kann, bis eine Neuzuweisung erfolgen muss, abhängig von der Nutzung. Wes Sayeed vor 9 Jahren 0
Das Problem mit dem 840 EVO wurde durch einen Firmwarefehler verursacht. Wie wir festgestellt haben, werden die Zellen im Laufe der Zeit durch Spannungsabweichungen schwach und müssen gelegentlich aktualisiert werden, unabhängig davon, ob Daten geschrieben werden sollen oder nicht. Samsungs Problem bestand darin, dass der Verschleißnivellierungsalgorithmus die Zellen bei Bedarf nicht neu zuzuordnen hatte - wahrscheinlich, weil die Spannungsabweichung schneller ablief, als Samsung es vorhergesagt hatte. Dies ist natürlich eine Vermutung, da Samsung sich nicht mit den Details des Fehlers befasst und nur das Modelllaufwerk betrifft (andere TLC-basierte Laufwerke sind davon nicht betroffen). Wes Sayeed vor 9 Jahren 0