Was ist TRIM genau?

14

Auf der Wikipedia-Seite von TRIM habe ich den Eindruck, dass TRIM eingeführt wurde, um die Schreibvorgänge auf eine SSD zu reduzieren, aber das Dateisystem mit Buchstaben zu versehen, bei denen Blöcke nicht verwendet werden.

Wenn das korrekt ist, bedeutet das, dass SSDs, die kein TRIM verwenden, Nullen in die Blöcke schreiben, wenn eine Datei gelöscht wird, um die SSD zu informieren, dass die Blöcke frei sind?

Lesen Sie das

Dateisysteme in einem Gastsystem verwenden Blöcke in der Regel nicht erneut. Dies bedeutet, dass die tatsächliche Abbildgröße in der Regel wächst, bis sie die maximale Größe erreicht, auch wenn das Dateisystem im Verhältnis zur Größe des virtuellen Abbilds klein bleibt.

veranlasst mich zu denken, SSDs nicht mit Nullen überschreiben? Oder sind Dateisysteme in Gästen etwas ganz anderes?

Sandra
quelle

Antworten:

16

Flash-Speichergeräte (wie sie für heutige SSDs verwendet werden) können zu keinem Zeitpunkt beliebige Daten schreiben. vor dem Schreiben auf eine Zelle (in der Regel 4 KB) muss zuerst gelöscht werden. Leider ist der Löschvorgang sehr langsam. Aus diesem Grund waren Flash-Geräte trotz fehlender beweglicher Teile viel langsamer als magnetische Laufwerke.

Moderne SSDs verbergen die Löschzeit, indem sie einen Satz vorgelöschter Zellen beibehalten. Das bedeutet, dass ein Schreibbefehl vorhandene Daten nicht sofort überschreibt. Stattdessen wählt der Controller des Laufwerks eine gelöschte Zelle aus, ordnet sie neu zu und schreibt sie mit den neuen Daten. Das (und mehrere Schreib dachte Cache - Strategien) gibt dem Antrieb einen großen Speedup, stark magnetische Antriebe übertroffen.

Um sicherzustellen, dass immer ein Satz vorgelöschter Zellen vorhanden ist, plant das Laufwerk das Löschen im Hintergrund und fügt es der Liste der Gebührenzellen hinzu, wenn eine Zelle nicht benötigt wird.

Leider bemühten sich vorhandene Dateisysteme nicht, dem Laufwerk mitzuteilen, wann ein Sektor frei war. Schließlich sollte das Laufwerk nur ein blödes Repository von Bits sein. Das Löschen einer Datei oder eines anderen Vorgangs, der einen Sektor aus Sicht des Dateisystems als frei kennzeichnet, war nur eine Markierung in einer Metadatenstruktur. Der Sektor selbst wurde nicht berührt. Selbst wenn das Dateisystem es löschte, indem es Nullen darüber schrieb, konnte das Laufwerk nicht wissen, ob dies bedeutete, dass der Sektor frei war, oder ob der Benutzer einige Nullen für eine Datei wünschte. Nach einiger Zeit würde das Laufwerk keine freie Zelle mehr haben, die vor dem Schreiben gelöscht werden könnte. und Leistung auf tragische Weise verschlechtert.

Die TRIM-Anweisung wurde schnell erstellt und von den meisten derzeit verwalteten Dateisystemen übernommen. Es ist ein einfaches Signal, das das Dateisystem verwendet, um dem Laufwerk mitzuteilen, dass der Inhalt eines Sektors nicht mehr wichtig ist. Sobald alle auf einer Zelle zugeordneten Sektoren frei sind, hebt der SSD-Controller die Zuordnung der Zelle auf und plant die Löschung. Wenn der Host diese Sektoren liest, stört die SSD das Abrufen von Flash nicht. Sie antwortet sofort mit Nullen. Der wichtigste Effekt ist jedoch, dass die Liste der vorgelöschten Zellen immer aktualisiert wird.

Dennoch weisen die meisten SSDs eine geringere Kapazität als die physische Größe des Flash-Speichers auf, manchmal nur 75%. Das erlaubt es, einige unbenutzte Zellen sogar auf einem 100% vollen System zu behalten, so dass das (Über-) Schreiben von benutzten Sektoren immer noch schnell ist.

Javier
quelle
Interessant. Ich wusste konzeptionell, wie TRIM funktioniert, fragte mich aber, wie viel Speicher eine SSD verfügbar machen würde. Jetzt möchte ich sehen, ob diese Daten für bestimmte SSDs irgendwo veröffentlicht werden ...
Michael B
Die Menge der reservierten Zellen wird normalerweise veröffentlicht. Es liegt normalerweise zwischen 5 und 10% für billigere Consumer-Laufwerke und über 20% für High-End-Consumer-Laufwerke. Enterprise-Flash-Laufwerke (EFDs) verfügen in der Regel über eine Reserve zwischen 100% und 400%. Deshalb sind sie so verdammt teuer, dass sie diese enorme Reserve behalten, weil das Schreiben in einen Flash-Speicher jedes Mal die Speicherorte ein wenig zerstört. Wenn Sie umfangreiche Anwendungen schreiben, die normalerweise in Serverumgebungen zu finden sind, werden die meisten SSDs für Endverbraucher schnell zerstört.
Chris S
"Schreiben auf eine Zelle (in der Regel 4 KB)" - Sie missbrauchen das Konzept der "Zelle" im Vergleich zur herkömmlichen Verwendung für Flash-Speicher. Eine Flash- "Zelle" speichert nur ein (oder einige) Bit (s). Ihre Verwendung von "Zelle" scheint dem viel größeren (Lösch-) Block (möglicherweise 128 KB) zu entsprechen, wie in Flash-IC-Datenblättern beschrieben. Die Datenorganisation ist Zelle <Sektor <Seite <Block <Ebene <Chip.
Sägemehl
8

TRIM wurde eingeführt, damit ein Betriebssystem (das Dateisystem innerhalb des Betriebssystems) mit einem ATA-Speichermedium kommunizieren kann, dass ein Sektor vom Dateisystem nicht mehr verwendet wird. Dies hat nichts mit dem Schreiben auf die Festplatte zu tun.

TRIM garantiert nicht, dass der Sektor in den Medien auf Null gesetzt ist. Wenn das Dateisystem einen Lesevorgang von diesem Sektor anfordert, wird garantiert, dass Nullen zurückgegeben werden (da die SSD weiß, dass der Sektor Nullen sein sollte, werden diese zurückgegeben, unabhängig davon, was tatsächlich auf dem Medium gespeichert ist. Möglicherweise ist eine Wiederherstellung möglich Daten von einer Festplatte, die einfach beschnitten wurde, obwohl SSDs in der Regel tatsächlich den Speicher löschen.

Dateisysteme tendieren dazu, ihre Schreibvorgänge zu verteilen (aus einer Vielzahl von Gründen, angefangen beim Versuch, Schreibebenen zu erstellen, über die Garbage Collection bis hin zur zufälligen Anordnung von Speicherorten und mehr). Wenn der Datenträger nicht weiß, welche Sektoren das Dateisystem nicht verwendet, bedeutet das einfache Schreiben von Nullen nicht unbedingt, dass der Sektor nicht verwendet wird, und es muss schließlich davon ausgegangen werden, dass die gesamte Festplatte verwendet wird.

Bei SSDs bedeutet diese Annahme, dass ein Sektor zum Zeitpunkt des Schreibens gelöscht werden muss, wodurch die Schreibgeschwindigkeit verringert wird. Anstatt den Speicherort zum Zeitpunkt des Löschens der Datei zu löschen. Ähnlich wie bei virtuellen Festplattendateien in Virtualisierungssystemen wird die dynamische Festplattendatei möglicherweise die volle Kapazität der virtuellen Festplatte umfassen. Wenn das Virtualisierungssystem TRIM implementiert, weiß es, wenn ein Sektor nicht mehr verwendet wird, und daher muss die dynamische Festplatte diesen Speicherort nicht mehr verfolgen.

Chris S
quelle
Bedeutet das, dass TRIM eingeführt wurde, um der SSD mitzuteilen, welche Sektoren verwendet werden, damit die neuen Daten auf Sektoren übertragen werden können, die weniger verwendet wurden?
Sandra
1
SSDs verwenden einfach TRIM, um festzustellen, wann ein Sektor nicht mehr benötigt wird. Es wird keine Garantie für den Schreibabgleich oder andere Funktionen übernommen, die das Speichermedium möglicherweise implementiert. Die meisten SSDs verwenden sie jedoch zum Schreiben, zur Speicherbereinigung (in Flash-Medien, zum Löschen nicht verwendeter Sektoren) und zum Führen von Listen mit freien Sektoren, um die Schreibleistung zu verbessern.
Chris S