Worin besteht der Unterschied zwischen Garbage Collection und Trim?

Mittwoch, 5. Dezember 2018 von Michael Nuncic

Viele Heimanwender und erfahrene Computeradministratoren verwechseln die beiden SSD-Begriffe und Funktionen Garbage Collection und Trim. Sie scheinen miteinander verbunden zu sein, aber wie und warum ist hier die Frage. Und gibt es eine Chance auf Datenrettung, wenn die beiden Funktionen ihre Arbeit richtig erledigt haben? Das ist es, was wir heute in diesem kurzen Artikel diskutieren wollen.

Was ist Garbage Collection?

In der Informatik beschreibt der Begriff Garbage Collection eine Form der Speicherverwaltung, bei der der Garbage Collector versucht, den Speicherplatz oder den Speicher aus nicht mehr verwendeten Objekten oder Daten - dem sogenannten Garbage - zurückzugewinnen. Dieser Ansatz, dass Speicher oder Speicherplatz, der mit nicht mehr benötigten Daten belegt ist, als Garbage bezeichnet wird, gilt für SSD. Die Idee ist, dass der als Garbage bezeichnete Platz als leer und zum Schreiben und Speichern verwendbar markiert werden sollte.

Da SSDs ein kombiniertes Produkt aus vielen Flash-NAND-Speicherchips zusammen mit einem Controller-Chip ist, indem die Logik eingebaut ist, wie die vielen Datenteile als Bits und Bytes gespeichert werden sollen, ist es nicht einfach, einen oder mehrere Flash-Chips von seinen Daten „zu befreien“. Das liegt daran, dass Daten in Flash in Units geschrieben und gespeichert werden, die Seiten aufrufen. Daten können jedoch nur in einer größeren Einheit namens Blöcke, die aus vielen dieser Seiten besteht, aus den Chips gelöscht werden.

Seiten (Pages) werden in Blöcke auf einem Flash-Speicher geschrieben, bis er voll ist. Um die Herausforderung zu überwinden, dass das System nicht warten muss, bis - durch Glück - der gesamte Block ausschließlich mit nicht benötigten Daten gefüllt ist, die dann endgültig gelöscht werden können, werden die darin enthaltenen guten Daten in einen anderen leeren Block kopiert und die nicht benötigten oder zu löschenden Daten im alten Block belassen. Dann wird der gesamte ursprüngliche erste Block aus den Daten gelöscht. Diese Methode wird als Garbage Collection bezeichnet. Der wichtigste Punkt dabei ist, dass, obwohl dieser Block (alias Speicherplatz) als leer markiert ist, die alten Daten oder Fragmente davon noch vorhanden sind und wiederhergestellt werden können.

Diese Garbage Collection ist immer ein reines Hardware-Feature und wird vom und innerhalb des Controller-Chips durchgeführt. In den meisten SSDs ist diese Funktion nun meist als Hintergrund-Garbage Collection (BGC) implementiert. Während die genaue Methode, wie die guten Daten in einen anderen Block kopiert werden und die alten, die als zu löschen markiert sind, sich von SSD zu SSD unterscheidet, müssen alle den ursprünglichen Block als Ganzes lesen, das Schreiben von noch gültigen Daten sowie das Schreiben von neuen Daten innerhalb eines neuen Blocks. Wenn Sie dies im Hintergrund tun, während der Computer oder Server andere Aufgaben ausführt, kann die Leistung des Geräts hoch bleiben.

Es gibt jedoch einen Nachteil bei der Garbage Collection (zusammen mit dem Wear Leveling): Es führt zu vielen Datenschreibvorgängen und damit zu einer Verkürzung der Lebensdauer einer SSD bzw. eines Flash-Chips.

Was ist TRIM?

Aus diesem Grund wurde TRIM eingeführt. Auch wenn für die Garbage Collection und damit die Beseitigung ungenutzter Daten kein Trimmen erforderlich ist, löst es das Problem des erhöhten Verschleißes der Flash-Zellen und der reduzierten Lebensdauer. Das Trimmen ermöglicht es der SSD, den GC effizienter zu handhaben, was ansonsten, besonders wenn der Speicher voll wird, die Gesamtleistung aufgrund der vielen Schreibvorgänge aufgrund von GC verlangsamen würde.

Der TRIM-Befehl ermöglicht es einem Betriebssystem (wie Linux, Windows, Mac OS X, Android und anderen), die SSD automatisch über die Seiten zu informieren, die keine gültigen Daten mehr enthalten und daher als leer und frei für neue Daten gekennzeichnet werden können. Da die traditionelle Garbage Collection-Methode des Lesens, Löschens und Modifizierens, wie vorstehend beschrieben, einen wesentlich höheren Schreibdurchsatz sowie eine geringere Schreibverstärkung erreicht.

Der Trim-Befehl ist als TRIM im ATA-Befehlssatz und als UNMAP im SCSI-Befehlssatz implementiert. Da es sich hier um einen normalen Heimcomputer handelt, verlassen wir uns nur auf TRIM unter ATA, da der UNMAP-Befehl unter SCSI jedoch ein vollwertiges Analogon zu TRIM ist, verlassen sich die meisten der hier erwähnten Vor- und Nachteile ebenfalls auf UNMAP.

Unter TRIM wird der Datenblock sofort nach dem Löschen der Daten durch den Benutzer gelöscht. Und dieser Platz ist frei für das Schreiben neuer Daten.

Wie bereits erwähnt, macht TRIM so das Löschen von Dateien, die als nicht benötigt festgelegt wurden, viel effizienter und schneller.

Welche Auswirkungen haben die beiden Funktionen auf die Datenrettung?

Der Nachteil von TRIM in Kombination mit der Garbage Collection ist, dass die Datenrettung auf einem TRIM-fähigen SSD normalerweise überhaupt nicht möglich ist.

Sobald der Papierkorb geleert ist, sind die Dateien dauerhaft verschwunden und selbst der erfahrenste Datenrettungsexperte kann sie nicht mehr wiederherstellen. Der Block, in dem die gelöschten Daten gespeichert wurden, wird zum Zeitpunkt der Datenlöschung des Benutzers endgültig gelöscht.

Auch wenn es unwahrscheinlich ist, dass wertvolle Daten gerettet werden können, ist es ratsam, sie von einem Datenrettungsexperten von Ontrack Datarecovery analysieren zu lassen.

Das liegt daran, dass Sie vielleicht doch Glück haben könnten, dass die Daten noch wiederhergestellt werden können: In einigen Fällen könnte die von Ihnen verwendete SSD eine ältere sein, die TRIM nicht unterstützt oder die standardmäßig nicht aktiviert wurde. Oder Sie haben das FAT32-Dateisystem verwendet, das TRIM auch nicht unterstützt, oder das verwendete Dateisystem wurde kompromittiert und konnte daher gar nicht aufgerufen werden. Oder die SSD war standardmäßig verschlüsselt, was ebenfalls verhindert, dass TRIM funktioniert und dazu führen kann, dass die Daten doch noch wiederherstellbar sind. Und in seltenen Fällen kann es auch vorkommen, dass der Befehl TRIM von jemandem bereits im Betriebssystem deaktiviert wurde.

Ontrack Datenrettungsblog

Das sagen unsere Kunden: