Gefahr für gelöschte Daten: TRIM-Befehl bei Solid State Drives
Die Chancen einer Datenwiederherstellung bei gelöschten Daten auf SSDs hängen in erster Linie von der Verwendung und Ausführung von TRIM ab. Im schlimmsten Fall sind bereits alle Daten weg, bevor man entsprechend reagieren kann - Attingo kennt die Problematik sehr genau.
DIREKT ZUR ANFRAGE

Gefahr für gelöschte Daten: TRIM-Befehl bei Solid State Drives

Wenn Daten von einer SSD gelöscht werden, dann ist die erste Handlung zu der Attingo Datenrettung rät: Schnellstmöglich das System abschalten - oder noch besser den Stecker ziehen - und nicht wieder anschalten. Eine aktive SSD oder Speicherkarte ist wie eine tickende Zeitbombe für gelöschte Daten und kann in einem fatalen Datenverlust enden – ohne Chance auf Wiederherstellung.

Hamburg, Wien, Amsterdam - 28. Februar 2020 - Sebastian Evers

Was ist der TRIM-Befehl?

Rein technisch betrachtet handelt es sich bei TRIM um ein Kommando für die ATA-Schnittstelle nach dem T13-Standard. Je nach System-Konfiguration kann sich dieser Befehl jedoch unterscheiden und in verschiedenen Betriebssystemen eine abweichende Bezeichnung aufweisen; ist jedoch überwiegend als "TRIM"-Befehl bekannt. TRIM informiert den Controller des Solid State Drives oder der Flash-Speicherkarte darüber, welche Daten gelöscht worden sind und physisch nicht mehr benötigt werden.

Dabei unterstützt TRIM die SSD bei ihrer regelmäßigen Garbage Collection, wodurch die SSD gelöschten Speicherbereich mitgeteilt bekommt. Nicht alle - vor allem ältere - Betriebssysteme und SSDs unterstützen TRIM, somit stellt es keine technische Notwendigkeit dar. Im Falle eines Datenverlusts und insbesondere gelöschter Daten kann TRIM sogar ein fataler Nachteil sein.

Was ist der Nutzen von TRIM?

TRIM übermittelt dem Speichercontroller, welche Speicherbereiche noch Daten enthalten, die jedoch keine Verwendung mehr finden. Basierend darauf, wie Solid State Drives Informationen verarbeiten, erfolgt die Löschung der Daten auf dem Laufwerk nicht auf direkten Befehl des Anwenders hin. Statt der Löschung der Daten werden diese als nicht mehr verwendete Speicherbereiche mit einem Vermerk versehen. Dem Datenträger wird durch TRIM mitgeteilt, dass diese Daten entfernt werden können.

Bei einem Schreibzugriff auf einen Teilbereich des betroffenen Daten-Blocks - dieser besteht bei einer SSD aus einer Vielzahl an Pages die gleichzeitig verarbeitet werden - werden die Pages mit den gelöschten Daten nicht mehr neu geschrieben sondern bleiben leer. Bei anderen SSD Modellen werden derartige gelöschte Pages im Leerlauf auch von der Active Garbage Collection gelöscht.

In der Prä-Windows 7 bzw. Prä-macOS 10.6.8 Ära existierte der TRIM-Befehl noch nicht: Somit hatten SSDs keinerlei Informationen darüber, dass bestimmte Sektoren nicht mehr benötigte Informationen beinhalten. Diese wurden erst bekannt, sobald der Computer die SSD dazu anwies, dass neue Informationen an diesen Ort geschrieben werden sollen.

Dieser Vorgang erforderte wesentlich mehr Zeit für Schreibvorgänge, da belegte Bereiche immer erst geleert werden müssen, bevor neue Informationen hinein geschrieben werden können. Mit der Ausführung von TRIM und der anschließenden Active Garbage Collection lassen sich zukünftige Schreibbefehle wesentlich effizienter ausführen.

Zusätzlich zur Schreibeffizenz ermöglicht TRIM eine höhere Lebensdauer von Solid State Drives. Jede NAND-Zelle verfügt über eine begrenzte Haltbarkeit, welche mit der Anzahl der getätigten Schreibvorgänge korreliert. Um eine hohe Langlebigkeit gewährleisten zu können sollten alle Zellen in gleichem Maße genutzt werden.

Dieser Verschleißausgleich wird durch das sogenannte "Wear Levelling" ermöglicht und kommt bei SSDs, Speicherkarten sowie USB-Sticks zum Einsatz. TRIM bietet dem Flash-Medium Informationen, um gelöschte aber gefüllte Zellen zum Beschreiben zu organisieren, damit verzichtbare Lösch- und Umschreibvorgänge vermieden werden können.

Was sind Vorteile von TRIM?

Die Zeitersparnis stellt den größten Vorteil von TRIM dar - da die SSD während des Leerlauf-Betriebs des Computers ungültige Informationen aus Blöcken löscht muss sie bei zukünftigen Schreibvorgängen keine Zeit dafür aufbringen um Daten erst zu entfernen, bevor neue Daten geschrieben werden können. Die Verzahnung von TRIM und Active Garbage Collection sorgt dafür die Lebensdauer der SSD erhöhen. Durch die Bündelung von Datensegmenten die zusammen gehören, sodass diese aneinander liegen, wird der Ausgleich des Verschleißes noch effizienter.

Was sind die Nachteile von TRIM?

Versehentlich gelöschte Daten oder formatierte Partitionen auf einer SSD können sehr schnell unwiederbringlich verloren gehen. Sobald der Computer TRIM absendet und die SSD daraufhin die entsprechenden Blöcke bereinigt sind diese auch physisch gelöscht, so dass nur noch 0x00 vom SSD-Controller ausgegeben wird.

Wie ist die Unterstützung von TRIM bei SSDs?

Microsoft Windows bietet eine Unterstützung von TRIM seit Windows 7, anfangs nur für NTFS später auch für ReFS. TRIM läuft automatisiert im Hintergrund des Betriebssystems, es sei denn, dass es manuell deaktiviert wurde. In den Laufwerkseigenschaften des Laufwerks kann man Tools sowie Optimieren auswählen und prüfen, ob TRIM aktiviert ist oder TRIM manuell ausführen. Ebenso lässt es sich über den Terminal mit dem Aufruf

fsutil behavior set DisableDeleteNotify 1 

dauerhaft deaktivieren.

Unter MacOS (mit Apple SSD) ist eine TRIM-Implementierung seit macOS 10.6.8 vorhanden. Diverse MacOS-Versionen unterstützen Dritthersteller-SSDs über eine zusätzliche Software. In den Systeminformationen unter Hardware kann man überprüfen, ob die jeweilige Speicherschnittstelle TRIM-Unterstützung aufweist. Diese wird mit Ja oder Nein dargestellt.

Seit Linux Kernel 3.7 ermöglichen die Dateisysteme ext3, ext4, XFS, JFS und Btrfs die Unterstützung von TRIM. Dafür muss jedoch auch die genutzte SSD TRIM unterstützen, was sich über die Kommandozeile „sudo hdparm -I /dev/sd? | grep TRIM“ ermitteln lässt. Erfolgt die Ausgabe von „Data Set management TRIM Supported“, dann kann die SSD den TRIM-Befehl verarbeiten. Mit „sudo fstrim -v /“ kann der TRIM-Befehl für das auf / gemountete Laufwerk manuell ausgeführt werden. Über crontab -e lässt sich ein automatisch wiederkehrender Cronjob (geplanter Task) einrichten, welcher dann - je nach Bedarf und Konfiguration - einmal wöchentlich aktiv werden kann.

Was ist Wear Levelling bei Flash-Speichern?

Flash-Speicherzellen weisen eine endliche Wiederbeschreibbarkeit auf. Abhängig von der Bauart der jeweiligen Zelle sind zwischen 3.000 und 100.000 P/E Zyklen (Program-Erase-Cycles) möglich. Durch das blockweise Löschen (was zum Wiederbeschreiben erforderlich ist) unterliegen die Speicherzellen einer gewissen Abnutzung (englisch: to wear out).

Durch das Wear Levelling („Abnutzungs-Ausgleich“) soll der Verschleiß möglichst gleichmäßig auf alle Zellen des Flash-Datenträgers (SSD, Speicherkarte, USB-Stick) verteilt werden, um eine graduelle Abnutzung einzelner Zellen zu vermeiden und eine möglichst lange Lebensdauer aller Flash-Zellen zu erzielen.

Was ist dynamisches Wear Levelling?

Dynamisches Wear Levelling verteilt ausschließlich dynamische Daten. Das sind die Daten, die sich stetig ändern bzw. die häufig verändert werden. Dabei werden gelöschte Blöcke gebündelt und der jeweilige Block mit der geringsten Löschrate für zukünftige Schreibvorgänge bereitgestellt und bei Bedarf gelöscht. Der SSD-Controller dokumentiert jegliche Schreibvorgänge in einem dedizierten nichtflüchtigen Speicherbereich. Der steht ab Werk auf 0 und erhöht sich mit jedem folgenden Schreibvorgang für betroffene Blöcke um 1.

Die Problematik beim dynamischen Wear Levelling sind Daten, die nur Lesezugriff haben und/oder keine häufigen Aktualisierungen aufweisen. Sie verbleiben dauerhaft innerhalb des zugewiesenen Blocks, ohne dass dieser gleichmäßig abgenutzt wird. Dadurch sinkt automatisch die Haltbarkeit der anderen Speicherblöcke.

Was ist statisches Wear Levelling?

Statisches Wear Levelling verschiebt auch unveränderte (statische) Datensegmente in andere Blöcke. Dadurch wird vermieden, dass bestimmte Bereiche der Speicherzellen nur ein einziges Mal in der gesamten Lebensspanne der SSD beschrieben werden, während andere Speicherbereiche bereits verschleißbedingt ausfallen. Für den Schreibvorgang wählt das Wear Levelling den Block mit der geringsten Schreib- bzw. Löschrate aus und löscht diesen im Bedarfsfall. Danach wird der betroffene Block mit neuen Daten beschrieben. Somit wird sichergestellt, dass Blöcke mit statischen Daten nur dann bewegt werden, wenn diese unter einem fest definierten Schwellenwert bei der Löschrate liegen.

Dieser zusätzliche Schritt der Bewegung von Daten kann sich nachteilig auf die Schreib-Performance auswirken, sodass es zu Overhead des Flash-Controllers kommen kann. In punkto Haltbarkeit ist die Effizienz von statischem Wear Levelling gegenüber dynamischem Wear Levelling weitaus besser.

Was ist die Active Garbage Collection?

Solid State Drives bestehen aus Flash-Speichern. Anders als bei Festplatten: Eine SSD bestehende Daten nicht einfach mit den neuen Daten überschreiben. Eine SSD ist darauf angewiesen, dass ungültige Daten gelöscht werden, bevor neue Informationen geschrieben werden können. Dafür muss die SSD die größere Einheit – "Block" – löschen, um eine wesentliche kleinere Dateneinheit – "Page" (Seite) – zu schreiben.

Befinden sich nun fünf Seiten, von denen drei Seiten gelöscht werden sollen, in einem Block, dann müssen die übrigen zwei Seiten in einen neuen leeren Block geschrieben werden, bevor der ursprüngliche Block gelöscht werden kann. Erst danach können alle fünf Seiten im Block gelöscht werden, um diesen in Zukunft mit neuen Informationen beschreiben zu können.

Was versteht man bei SSDs unter Blöcken und Seiten?

 


Zur Vereinfachung: Ein normaler Aktenordner – wie er in jedem Büro zu finden ist – enthält fünf DIN A4 Seiten beliebigen Inhalts. Von diesen fünf Seiten sollen drei Seiten ihren Weg in den Aktenvernichter finden. Die übrigen zwei Seiten sollen nicht vernichtet werden. Allerdings ist es nicht möglich die verbleibenden zwei Seiten einfach dort zu belassen, da in naher Zukunft zehn neue Seiten dazu kommen werden. Sie sind also gezwungen diese übrigen zwei Seiten zu kopieren und in einen leeren Aktenordner zu heften. Erst danach können Sie alle fünf Seiten aus dem Aktenordner in den Aktenvernichter packen und im Anschluss daran die zehn neuen Seiten in dem geleerten Aktenordner unterbringen.


 

Würde die Solid State Disk den Verschiebeprozess gültiger Informationen nicht vornehmen – damit ungültige Informationen gelöscht werden können – und ohne Bereinigung immer weiter neue Seiten abspeichern, wäre die SSD zunehmend mit Daten gefüllt, von denen viele keine Gültigkeit haben. Zur Vermeidung dessen untersucht die Active Garbage Collection das Speichermedium und verschiebt jede Seite, welche gültige Informationen beinhaltet, in einen anderen Block, sodass der Block mit den ungültigen Daten, welchen TRIM identifizert hat, gelöscht werden kann.

Unterstützung von Active Garbage Collection

Der Verschiebe- und Aufräumprozess im Rahmen der Garbage Collection findet automatisch statt; stets unter Verwendung der jeweiligen proprietären Active Garbage Collection des SSD-Herstellers. In Anbetracht der immens hohen Wichtigkeit für das Funktionieren des Laufwerks, verfügen alle Solid State Drives über diese elementare Funktion.

Was ist der Secure Erase Befehl?

Entsprechend ATA-Spezifikation soll ein Secure Erase sicheres und rückstandsloses Löschen sämtlicher gespeicherter Daten auf dem Speichermedium garantieren. Bei Solid State Disks, bei denen Secure Erase unterstützt wird, bedeutet dies: Das physische Löschen sämtlicher Blöcke und beinhalteter Seiten (Pages). Mit Secure Erase wird – sozusagen – ein Werksreset ausgelöst, durch den die ursprüngliche Performance der SSD wiederhergestellt werden soll.

SSDs mit proprietärer Verschlüsselung können den Secure Erase Befehl allerdings anders implementiert haben, als unverschlüsselte SSDs. Derart konzipierte SSD Laufwerke verschlüsseln automatisch sämtliche Daten im Augenblick des Schreibvorgangs. Wird Secure Erase ausgeführt, so reicht es aus, wenn der Schlüssel sicher entfernt wird – eine Entschlüsselung der Daten ist ausgeschlossen; dennoch wären die Daten noch physisch vorhanden.

Einige Solid State Drive Modelle von Intel löschen – trotz proprietärem Verschlüsselungsalgorithmus und der Möglichkeit den Schlüssel zu löschen – nach wie vor sämtliche Flash-Blöcke der SSD. Das ist darauf zurück zu führen, dass Secure Erase in erster Linie den Zweck erfüllen soll, dass die Performance der SSD in den Ursprungs- bzw. Auslieferungszustand zurück gesetzt werden soll. Bei Ungewissheit sollte bei SSDs mit integrierter Verschlüsselung, bei denen Secure Erase sowie Auswirkungen nicht ausreichend dokumentiert worden sind, ein manueller TRIM-Befehl ausgelöst werden, um eine optimale Wiederherstellung der SSD Performance erreichen zu können.

Attingo-Magazin

Pressemeldungen & Aktuelles
Attingo in der Presse
Messetermine und Konferenzen
Blog
Stichwortverzeichnis
FAQ - Häufig gestellte Fragen
Fallstudien: Datenrettung