Allgemeine Frage zum Wear-Levelling

whiper

Lt. Junior Grade
Registriert
März 2009
Beiträge
486
In verschiedenen Foren ist zu lesen, dass sehr volle SSD (oder solche mit Truecrypt verschlüsselten) mit steigender Anzahl an Schreibvorgängen immer langsamer werden. Erklärt wird das damit, dass der Controller kaum freie Blöcke hat, auf die er die zu schreibenden Daten verteilen kann.
Ich verstehe das nicht wirklich, woher soll der Controller denn wissen, welche Blöcke ungenutzt sind? Das Filesystem (beliebig) kennt der Controller ja nicht.
Also höchstens die Blöcke, die das System per TRIM freigegeben hat.
Ich habe das bisher so vertstanden, dass die SSD z.B. 10% Reserveblocks hat, auf welche die Schreibzugriffe mit verteilt werden, so dass immer wieder neue Blocks beschrieben werden.
Wie "voll" die SSD wirklich ist, sollte daher keine Rolle spielen.
Damit wäre der Vorschlag, die Partition etwas kleiner als die SSD zu wählen, ebenfalls quatsch, der Controller kann gar nicht beurteilen, dass das Ende der Platte ungenutzt ist, ausser er hat mal TRIMs für diesen Bereich bekommen.

Und Sonderfall Raid: Hier ist die Struktur einer Platte ja völlig anders, an sich sind da ja immer alle Blöcke genutzt, es gibt keine freien und trotzdem funktioniert eine ssd dort einwandfrei.

Hat jemand da irgendwo technische Informationen zum Lesen?
 
Ne HDD hat natürlich auch keine Ahnung, wo Platz ist und wo nicht, das regelt ja das Betriebssystem. Nur habe ich halt so komische Aussagen zu den SSDs gefunden
 
was passiert, wenn du eine hdd ausbaust und in ein anderen pc einbaust? ..
dann wüsste das dortige bs ja nicht wie es um die hdd steht, bzw müsste die hdd erst komplett scanen ..

die festplatten wissen sehrwohl wo die daten als daten liegen (nicht was dort liegt)

eine ssd wird in der tat im schreiben langsamer wenn sie voll ist, eben weil sie nicht mehr so viel parallel schreiben kann. das pegelt sich dank der reserve auf ein gewisses minimum ein.
 
Hi,

kann Karre nur zustimmen, selbstverständlich "weiß" eine Festplatte (egal ob HDD / SSD), wo Daten speicherbar sind und wo nicht. Der einzige Unterschied bei einer SSD ist der, dass die Daten eben nicht auf einer Magnetscheibe, sondern in Flash-Zellen gespeichert werden. Ist diese Zelle bereits belegt, muss erst gelöscht werden, bevor neu geschrieben werden kann, daher der massive Geschwindigkeitsverlust.

Und zum Thema RAID: Wieso sollte eine Platte im Raid "immer voll" sein? Absolut nicht der Fall, die ist dan voll wenn ich Sie voll mache. Und wie die Daten organisiert werden hängt vom RAID-Controller ab, die Festplatten speichern intern trotz allem genauso wie sonst auch ihre "Einsen und Nullen" :) Das Ganze hängt natürlich auch noch von der Art des RAID selbst ab.

LG,
Mad
 
HDDs und SSDs werden über logische Adresse angesprochen und die HDD setzt diese eben immer gleich auf einen Kopf/Track/Sektor um, während die SSD diese wegen des Wearlevellings eben immer wieder anderen Speicherbereichen im Flash zuweist. Schreibst Du als 1000mal auf einen Bereich der 1% der Kapazität entspreicht, so werden 99% der HDD nicht davon berührt, bei der SSD aber alle Bereich schon mal beschrieben worden sein. Löscht man die Daten nach jedem Schreiben einmal mit TRIM, so nutzt dem Controller diese Information erstmal nicht viel, weil der nach dem erneuten schreiben der gleichen logischen Adressen ja sowieso weiss, dass diese jetzt "überschrieben" wurden und die alten Daten damit ungültig sind und gelöscht werden können. Er wird natürlich versuchen die neuen Daten woanders zu schreiben um nicht erst auf das Löschen des alten Adressbereiches warten zu müssen und um eben die Löschvorgänge gleichmäßig zu verteilen.
Schreibt man aber über den ganzen Bereich der HDD/SSD und löscht gleich darauf die Daten wieder, so hilft TRIM dem Controller mitzuteilen, dass 99% der Daten schon wieder ungültig sind und er die nicht mehr umkopieren braucht und sie einfach löschen kann. Ohne TRIM ist für ihn die ganze SSD voll mit gültigen Daten und er hat eben Probleme freie Bereiche zum schreiben neuer Daten zu finden bzw. muss diese eben erst schaffen und kopiert dabei vermutlich auch noch Daten um, die schon keiner mehr braucht.
 
Villeicht habe ich mich falsch ausgedrückt: Es muss als Dateisystem ja nicht NTFS zum Einsatz kommen, und das mit dem MBR ist auch nicht immer richtig. Es gibt z.B. GPT anstelle MBR, da ist der Aufbau ganz anders. Und mit "voll" meine ich nicht voll im Sinne eines Dateisystems, sondern dass eine Platte nicht einfach davon ausgehen kann, dass bestimme Blöcke leer sind. Das Bestimmt das Betriebssystem. Bei AmigaOS z.B. standen die Belegungsinformationen des Dateisystems immer in der Mittte.
Ergänzung ()

Aha. Die Platte selbst ist also immer "voll". Daher das TRIM-Kommando

http://de.wikipedia.org/wiki/TRIM

Im Normalfall vermerkt das Betriebssystem in den Verwaltungsstrukturen des Dateisystems, dass die entsprechenden Bereiche wieder für neue Daten zur Verfügung stehen; der Controller des Solid State-Laufwerks erhält diese Informationen in der Regel jedoch nicht.

Also wäre es am geschicktesten, die Platte erstmal komplett zu füllen mit einer Großen Datei und diese dann löschen, dadurch wird mit TRIM der Platte gesagt, welcher Bereich frei ist.
 
Zuletzt bearbeitet:
whiper schrieb:
Ergänzung ()

Aha. Die Platte selbst ist also immer "voll". Daher das TRIM-Kommando
Richtig, ohne TRIM ist die SSD nach einiger Zeit immer fast voll, da ja die Daten über den ganzen Bereich verteilt werden und der Controller erst nach dem zweiten Beschreiben der gleichen Adresse weiss, was wieder weg kann.
whiper schrieb:
http://de.wikipedia.org/wiki/TRIM

Im Normalfall vermerkt das Betriebssystem in den Verwaltungsstrukturen des Dateisystems, dass die entsprechenden Bereiche wieder für neue Daten zur Verfügung stehen; der Controller des Solid State-Laufwerks erhält diese Informationen in der Regel jedoch nicht.
Das ist nur ein Flag im Directoryeintrag: Gelöscht. Wird wieder geschreiben, so sucht das Filesystem entweder einen freien Bereich oder überschreibt die Blöcke, die einem als gelöscht marktierten Eintrag zugeordnet waren.
whiper schrieb:
Also wäre es am geschicktesten, die Platte erstmal komplett zu füllen mit einer Großen Datei und diese dann löschen, dadurch wird mit TRIM der Platte gesagt, welcher Bereich frei ist.
Nein, überhaupt nicht. Hat man TRIM so reicht es auch, die vorhandenen Dateien zu löschen, denn dank TRIM erfährt der Controller davon welche Blöcke diese belegt hatten und kann die Flashbereiche löschen, die diesen Blöcken zugeordnet waren. Ohne TRIM bringt das Löschen der Daten nichts, da dann auch nur ein Bit umgesetzt wird und der ganze Speicher für den Controller weiterhin gültig belegt erscheint.
Um die Lebensdauer einer SSD nicht unnötig zu verkürzen sollte man keine unnötigen Schreibzugriffe darauf ausführen.
 
Zurück
Oben