• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

TRIM für Dummis - Oder einfach nur mal ordentlich erklärt!

iDevice

Süssreinette (Aargauer Herrenapfel)
Registriert
04.04.11
Beiträge
407
Hallo Gemeinde,

ich habe jetzt schon so einiges hier im Forum gelesen, auf Wikipedia und anderen Seiten. All diese Informationen haben aber noch nicht zu dem Ergebnis geführt, dass ich die Problematik des TRIM-Befehl im Zusammenhang mit OSX verstanden habe.

Mir ist mittlerweile klar warum es den TRIM Befehl überhaupt benötigt. Oder doch nicht? Ich habe auch gelesen, dass die FW der SSD Hersteller teilweise schon so weit gereift sind, dass es den TRIM eigentlich gar nicht mehr benötigt, da die Problematik der Speicherbelegung intern schon geregelt wird.

TRIM ist ja soweit ich das jetzt verstanden habe seit 10.6.8 mit an Bord von OSX. Gilt das jetzt allerdings nur für die "originalen" von Apple verbauten SSDs oder für jede beliebige SSD die man nachrüsten kann?

Wenn ich keine TRIM Funktion habe, merke ich dann überhaupt als User im alltäglichen Gebrauch, dass die SSD langsamer wird?


Wie Ihr schon seht, trotz aller Infos die ich bis jetzt schon in mich aufgesaugt habe, sind doch noch erhebliche Verständnis- und Wissenslücken.

Ich weis, dass hier im Forum ja einige wirklich technisch versierte User sind. Ich gehe mal stark davon aus, dass ebenso wie ich viele Andere hier im Forum auch ähnliche offene Fragen haben wenn es ums Thema SSD geht.

Von daher fände ich es schön, wenn sich jemand der wirklich in dem Thema bewandert ist mal einen aufklärenden Beitrag über die ganze Thematik schreiben würde. (Mein Kama, wäre diesem Jenigen auf jeden Fall sicher) ;)


Bitte liebe Leser, das hier soll kein Diskussionsthread werden welche SSD die beste für Dieses oder Jenes Gerät ist. Hier soll einfach nur mal aufgeklärt werden.

Vielen Dank im Voraus.
 

LL0rd

Allington Pepping
Registriert
18.06.07
Beiträge
194
Okay, ich versuche dir mal das Problem zu erklären.
Zugrunde liegt immer die Frage, wie ein Dateisystem funktioniert. Meinen Studenten erkläre ich es immer so:
Ein Dateisystem ist wie ein Notizbuch. Nehmen wir mal an, du möchtest zwei Texte in diesem Notizbuch speichern. Der eine Text ist 20 Worte lang, der zweite ust 40 Worte lang. Jetzt hast du zwei Möglichkeiten:

1) Du kannst den erste Text auf der ersten Seite anfangen lassen und dann eben 20 Worte hinschreiben + genug Abstand lassen, um den Text notfals erweitern zu können.

2) Du schreibst den ersten Text auf und direkt dahinter den zweiten Text. Dann legst du einen Index an und sagst, dass der erste Text an der Stelle a anfängt und b Zeichen lang ist, bei c weitergeht und d Zeichen lang ist.

Bei der ersten Methode hast du eine große Platzverschwendung. Bei der zweiten Methode hast du eine optimale Platzausnutzung und genau das ist das, was wir möchten. Jetzt sagen wir mal, wir möchten den Text löschen, wie machen wir das am schnellsten? Wir löschen einfach den Index. Dadurch können wir bei einem dritten Text ihn wieder ganz am Anfang hinschreiben und die dort bereits stehenden Informationen ganz einfach überschreiben.

So, nun kommen wir zu den Flash Speichern. Wir bleiben mal bei unserem Notizbuch. Ich kann auch in der Realität eine Papierseite nicht unendlich oft überschreiben. Irgendwann ist die Seite einfach kaputt. Das gleiche passiert bei Flash Speichern schneller, als bei den Magnetplatten. Was macht man also? Man versucht alle Seiten des Notizbuches gleichoft zu beschreiben. (Beispiel: Ich habe einen Text, der genau eine Seite lang ist. Ich schreibe das erste Mal den Text auf die 1. Seite, das zweite Mal auf die 2. Seite, das dritte Mal auf die 3. Seite.) Diese Funktionalität ist allerdings nicht Teil des Dateisystems, denn dadurch würde das Dateisystem fragmentieren. Deshalb würde man in der Realität den Text immer wieder auf die 1. Seite schreiben.

Aber genau das macht auch der Controller der SSD-Festplatte. Er erstellt "virtuelle" Seiten. Wenn ich den Text das erste Mal auf die 1. Seite schreibe, dann landet der Text das erste Mal tatsächlich auf der 1. Hardwareseite. Wenn ich das zweite Mal den Text auf die Seite 1. schreibe, dann landet der Text tatsächlich auf der Hardwareseite 2. Beim dritten Mal auf der Seite 3. (Btw. genau aus diesem Grund ist es unmöglich, Daten 100% sicher von einer SSD zu löschen.) Damit unterliegt die ganze Festplatte einem gleichmäßigen Verschleiß.

Die interessante Frage ist jetzt, wie man Daten löscht. Wenn ich einfach die Indexeinträge lösche, dann weiß die Festplatte nicht, dass sie die die Hardwareseite, auf der die Datei lag, wieder benutzen kann. (Soweit ich es verstanden habe, analysieren die neuen Controller den Index und können die Hardwareseiten trotzdem freigeben. Aber keine Garantie dafür.) Aber genau dafür gibt es den Trim Befehl. Damit sagt das Betriebssystem der Festplatte, dass die Dateien auf der Hardwareseite gelöscht wurden, zusätzlich zur Änderung des Index.

Ich hoffe, du konntest meiner Erklärung nun folgen. Ich möchte nur Vollständigkeithalber erwähnen, dass der Controller nicht sequentiell sondern randomisiert arbeitet.
 

T-A-Z

Roter Delicious
Registriert
13.10.08
Beiträge
93
Ein Arbeitskollege von mir hat das auf seinem Blog ganz anschaulich erklärt:

Exkurs: Eine Flash-Zelle (aus diesen ist eine SSD aufgebaut) kann nur in Blöcken sehr langsam gelöscht werden. Wenn innerhalb eines Blocks die Daten geändert werden müssen, so muss dieser erst komplett gelesen werden. Danach können im Puffer die Daten wie gewünscht verändert werden. Anschließend wird der Block komplett gelöscht (=vorbereitet für den darauffolgenden Schreibzyklus) und nun mit den veränderten Daten beschrieben werden. Klingt nach viel Arbeit? Das ist es auch und gleichzeitig ist dies auch der Grund für die schlechte Schreibperformance von Flash-Bausteinen.

Am Anfang ist aber eine SSD leer. Dadurch können neue Daten sofort in einen freien Block geschrieben werden. Solange freie Blöcke vorhanden sind ist alles in Ordnung, denn der Löschvorgang kann auf später verschoben werden. Soll ein Block verändert werden und sind noch freie Blöcke vorhanden, so braucht die SSD ja nur die Daten aus dem zu verändernden Block zu lesen, im Puffer mit den Änderungen zu versehen und in einen freien Block zu speichern. Der alte Block wird danach einfach intern als frei gekennzeichnet und bei Gelegenheit (=Leerlauf) gelöscht. Die Schreibrate erreicht so die versprochenen Werte. Was passiert aber wenn irgendwann alle freien Blöcke belegt sind? Jetzt kommt der TRIM-Befehl ins Spiel. Mittels diesem teilt das OS der SSD einfach mit, welche Blöcke sie als leer betrachten kann. Denn die SSD kann ja nicht unterscheiden ob etwas gelöscht oder einfach nur verändert wird.

Sprich, um die hohe Geschwindigkeit die die SSD-Laufwerke bieten dauerhaft halten zu können, brauchen sie immer einen bestimmten Teil als ‘leere Reserve’. Und eben diese wird durch die TRIM-Befehle dauerhaft gebildet. Ohne TRIM wären alle Sektoren schon bald belegt und bei JEDEM Schreibvorgang würde der sehr langsame Lesen/Lösche/Schreibe-Prozess genutzt werden. Allerdings braucht man den freien Bereich dadurch auch, selbst wenn der TRIM-Befehl unterstützt wird.

Der Blog Eintrag "drum herum" beschäftigt sich auch mit Apple's Haltung zu dem Thema (und eine andere Sichtweise ist garantiert nicht verkehrt ;) ) -> http://www.burnyourmac.de/?p=9
 

iDevice

Süssreinette (Aargauer Herrenapfel)
Registriert
04.04.11
Beiträge
407
Vielen dank schonmal für eure wirklich ausführlichen Antworten. :)

Jetzt würde ich doch trotzdem gerne nochmal wissen ob man jede x-beliebeige SSD z.B. in ein neues MacBook einbauen kann und diese Platte dann TRIM unterstützt oder ob es wirklich nur direkt die ab Werk verbauten Platten unterstützen?

Woran kann ich denn sehen ob TRIM aktiv ist? Gibt es in den Systeminformationen irgendwo einen Punkt der mir diese Info gibt?
 

LL0rd

Allington Pepping
Registriert
18.06.07
Beiträge
194
Also ich habe dir mal einen Screenshot hochgeladen, auf dem du sehen kannst, wie man erkennt, ob TRIM aktiv ist oder nicht:
http://screencast.com/t/Hg9IvCsfyr

Mein MBP (mid 2k7) hatte auch keine SSD ab Werk. Ich habe da die Vertex2 Platte eingebaut. Für diese Platte wird von Apple kein Trim Modus unterstützt. Deshalb stand da direkt nach der OS X Installation auch ein "nein". Es gibt aber einen sog. TRIM Enabler, der ändert irgendwas an den Treibern und aktiviert den TRIM Support. Die Platte ist jetzt seit fast einem Jahr in Betrieb und mit im Schnitt nur 10GB freien Speicherplatz hat sich die Geschwindigkeit im Laufe der Zeit kaum verringert.

Wenn du dir aber eine SSD holst, dann würde ich dir empfehlen, keinen Schrott zu kaufen, sondern etwas hochwertigeres zu nehmen.
 

Tangarama

Braeburn
Registriert
17.12.05
Beiträge
46
Jetzt würde ich doch trotzdem gerne nochmal wissen ob man jede x-beliebeige SSD z.B. in ein neues MacBook einbauen kann

Solange Du keine 3,5" SSD versuchst in das MacBook zu rammen, warum nicht?

und diese Platte dann TRIM unterstützt oder ob es wirklich nur direkt die ab Werk verbauten Platten unterstützen?

Soweit mir bekannt, nur Letzteres. Ausserdem solltest Du TRIM nicht zuviel Bedeutung zuschreiben. Stichworte: Grabage collector, Sandforce-Chipsets.

Zu der anderen Frage werden sicherlich die werten Mitstreiter eine Antwort finden:).

Regards
Jeanot Bruchmann
 

iDevice

Süssreinette (Aargauer Herrenapfel)
Registriert
04.04.11
Beiträge
407
Vom Garbage collector habe ich auch schon gelesen. Deswegen war ja auch meine Frage oben im Startpost ob denn Trim überhaupt bei den neueren Platten mit aktueller FW Trim noch so von Bedeutung ist?