Was ist TRIM?
Um den Zweck dieses Befehls zu erklären, muss zunächst das Verhalten von Solid-State- und mechanischen Festplatten beim Löschen von Dateien verglichen werden. Wenn eine Datei entfernt wird, egal ob von einer SSD oder HDD, markiert das auf diesem Gerät verwendete Dateisystem zunächst den entsprechenden Speicherplatz als nicht mehr verwendet und entfernt den Verweis auf diese Datei. Dadurch kann der freigegebene Speicherplatz für andere Dateien wiederverwendet werden. Ein herkömmliches Festplattenlaufwerk ist in der Lage, solche Bereiche sofort zu überschreiben, sobald neue Daten eingehen. Bei Solid-State-Flash-Speichern funktioniert dies jedoch nicht.
Ein Solid-State-Laufwerk besteht aus Flash-Speicherzellen, die nur beschrieben werden können, wenn sie physisch leer sind. Daher müssen entweder neue Zellen verwendet oder, falls diese fehlen, die alten Daten gelöscht werden, bevor ein Schreibvorgang eingeleitet wird. Die Zellen selbst werden in Seiten von 4-16 KB gruppiert, während 128 Seiten zusammen einen Block bilden. Ein Schreibvorgang kann für eine einzelne Seite durchgeführt werden, das Löschen wirkt sich jedoch aufgrund bestimmter Eigenschaften des Flash-Speichers immer auf den gesamten Block aus. Daher muss eine SSD den Inhalt dieses Blocks in den Cache leeren, ihn auf dem Medium löschen, die Daten in den Seiten aus dem Cache, die gelöscht werden sollen, ersetzen und dann den aktualisierten Block an einem neuen Speicherort wiederherstellen. Bei so vielen Schritten, die ausgeführt werden müssen, werden Schreibvorgänge erheblich langsamer als bei der Bearbeitung zunächst unbelegter Seiten. Aus dieser Perspektive wäre es also sinnvoll, diese Speicherzellen im Voraus für das Schreiben vorzubereiten. Das Problem besteht jedoch darin, dass ein Laufwerk definitionsgemäß erst erkennt, dass sie irrelevante Informationen enthält, wenn das Dateisystem entscheidet, diese zu verwenden. Und hier kommt TRIM zum Einsatz.
TRIM ist ein spezieller Befehl, der vom Betriebssystem an eine SSD gesendet wird, wenn eine Datei gelöscht oder eine Partition formatiert wird. Dadurch kann der Controller des Laufwerks die Blöcke, in denen noch gelöschte Dateien gespeichert werden, physisch löschen und sie für den Empfang neuer Daten vorbereiten. Dies geschieht während der Leerlaufzeit durch einen separaten Prozess namens Active Garbage Collection: Er kopiert alle gültigen Daten aus dem Block und schreibt sie auf leere Seiten eines anderen Blocks, sodass der betreffende Block bereinigt werden kann. Solcher Ansatz ermöglicht die Beschleunigung zukünftiger Schreibvorgänge und trägt dazu bei, dass das Laufwerk optimal funktioniert. Darüber hinaus wird die Menge unnötiger Schreibvorgänge reduziert und die Lebensdauer des Laufwerks verlängert.
Es ist zu beachten, dass die Daten nicht sofort gelöscht werden, sobald solcher Befehl gesendet wird. Dies kann jedoch jederzeit passieren, abhängig von verschiedenen Faktoren, beispielsweise wenn das Laufwerk nicht ausgelastet ist oder wenn der nächste Schreibvorgang erfolgt. Zudem neigen SSD-Controller dazu, die ausstehenden Blöcke als leer zu melden, sobald sie TRIM erhalten, auch wenn sie noch nicht gelöscht wurden.
TRIM ist eigentlich ein ATA-Befehl für Serial ATA (SATA)-SSDs, es gibt aber auch einige Analoga für andere SSD-Schnittstellen, wie UNMAP für SCSI- und SAS-Laufwerke oder DEALLOCATE für PCI Express NVMe-Laufwerke.
Wie wird er auf einem Gerät aktiviert?
TRIM wird in der Regel automatisch vom Betriebssystem ausgegeben und erfordert keine Benutzerinteraktion. Allerdings ist der Befehl eigentlich nicht zwingend. Damit er wie erwartet funktioniert, müssen alle folgenden Bedingungen erfüllt sein:
-
Die Firmware des Solid-State-Laufwerks unterstützt TRIM
Die meisten modernen SSDs, die seit 2010 eingeführt wurden, sind darauf ausgelegt, diesen Vorgang zu unterstützen. Allerdings benötigen einige Laufwerke der älteren Generation möglicherweise Firmware-Updates, um sie zu implementieren, oder können sie sogar nicht vollständig nutzen. Der Hersteller sollte diese Informationen in den technischen Spezifikationen des jeweiligen digitalen Mediums bereitstellen.
-
Das Betriebssystem des Computers unterstützt TRIM
Die Haupt-Betriebssysteme erhielten die Unterstützung für TRIM um das Jahr 2010. Auf PCs wird TRIM in Windows 7 und höher unterstützt. Unter macOS ist TRIM ab Version 10.6 Snow Leopard exklusiv für die Apple-eigene SSD verfügbar. Mit der Veröffentlichung von macOS Version 10.10.4 Yosemite wurde der Befehl für Solid-State-Laufwerke von Drittanbietern unterstützt, in diesem Fall ist jedoch seine manuelle Aktivierung erforderlich. Linux unterstützt TRIM ebenfalls, er kann jedoch in einigen Distributionen standardmäßig deaktiviert sein.
Trotzdem scheint nicht jedes Dateisystem kompatibel zu sein. Beispielsweise bietet Windows TRIM für NTFS und ReFS, jedoch nicht für FAT32 und exFAT. Unter Linux funktioniert TRIM mit ext4, Btrfs, F2FS, XFS, JFS und einigen anderen Dateisystemen.
-
Die Schnittstelle zwischen Computer und SSD unterstützt TRIM
Selbst wenn sowohl die SSD als auch das Betriebssystem TRIM-fähig sind, unterstützt der physische Bus zwischen ihnen möglicherweise nicht das Senden dieses Befehls. Obwohl TRIM über die SATA-Schnittstelle (einschließlich eSATA) vollständig unterstützt wird, wird TRIM normalerweise nicht durchgelassen, wenn ein solches Laufwerk extern über USB, FireWire, Thunderbolt usw. angeschlossen wird. Gleichzeitig gibt es einige externe High-End-Gehäuse und USB-zu-SATA-Adapter, die TRIM-ähnliche Befehle über das USB Attached SCSI Protocol (UASP) unterstützen.
-
Die Konfiguration, zu der das Laufwerk gehört, ist für TRIM unterstützt
Mit seltenen Ausnahmen kann TRIM nicht für Mitgliedslaufwerke der meisten RAID-Konfigurationen und bestimmte Arten von zusammengesetzten Volumen, wie Windows Dynamic Disks und Apple Software RAID, durchgeführt werden. Das Gleiche gilt für einige NAS-Geräte.
TRIM im Kontext der Datenrettung
Obwohl TRIM sich positiv auf die SSD-Leistung auswirkt, gilt dies nicht für die Wiederherstellung gelöschter oder formatierter Daten. Der Inhalt von Dateien, die TRIM unterliegen, wird dauerhaft zerstört und ist daher nicht mehr auf dem Speicher vorhanden. Dies macht sie mit keiner automatisierten oder manuellen Technik wiederherstellbar. Selbst wenn die entsprechenden Blöcke auf die Warteliste gesetzt wurden, um später gelöscht zu werden, ist es wahrscheinlich, dass der SSD-Controller Nullen oder zufälligen "Müll" zurückgibt, wenn irgendeine Software sie anfordert. Die einzige Möglichkeit, die Daten auf einer SSD mit aktiviertem TRIM wiederherzustellen, bleibt, wenn der Befehl nicht tatsächlich ausgeführt wurde. Solche Vorfälle sind sehr selten, kommen aber aus folgenden Gründen von Zeit zu Zeit vor:
-
TRIM wird auf einer der "Ebenen" nicht unterstützt
Wie bereits erwähnt, handelt es sich bei TRIM um eine Funktion, die vom Speichermedium, dem Betriebssystem, das es steuert, dem gewählten Dateisystem und der zur Verbindung verwendeten Schnittstelle unterstützt werden muss. Wenn in dieser Kette ein Glied fehlt, kann TRIM nicht ausgeführt werden und die Daten somit weiterhin abrufbar bleiben. Ein typisches Beispiel für solche Situation ist das Löschen einer Datei von einer über einen USB-Anschluss verbundenen SSD.
-
Beschädigte Daten
Wenn die Schlüsselelemente der logischen Struktur des Laufwerks beschädigt werden (das Dateisystem, die Partitionstabelle usw.), können die Daten sowohl für den Benutzer als auch für das Betriebssystem unzugänglich werden. Obwohl sie de facto verloren gehen, betrachtet das Betriebssystem sie möglicherweise nicht als gelöscht, wenn kein ordnungsgemäßer Löschvorgang durchgeführt wurde, und sendet daher den TRIM-Befehl nicht.
-
Plötzliche Trennung oder Stromausfall
Wenn die Stromversorgung des Laufwerks unterbrochen wird oder das Laufwerk unmittelbar nach dem Löschen getrennt wird, hat das Betriebssystem möglicherweise nicht genügend Zeit, um TRIM durchzuführen, sodass die Daten möglicherweise unberührt bleiben.
-
Fehlerhafte SSD-Firmware
Die in Solid-State-Laufwerken verwendete Firmware ist nicht immer perfekt, insbesondere bei Low-End-Modellen. Die darin enthaltenen Fehler können manchmal bestimmte Prozesse, einschließlich TRIM und Garbage Collection, behindern. In diesem Fall können die Originaldaten auch nach der Löschung noch vorhanden sein.