SSD Fragmentierung

Hallo,
ich wollte hier gerne ein paar Dinge über SSD Platten erfahren. Im Netzt gibt es 1 Million Leute mit 2 Millionen Meinungen dazu.

Ich lese gelegentlich, dass auch SSD Platten von Defragmentierung profitieren. Immerhin ist sequenzielles Lesen doch schneller. (ich weiß, schreibzugriffe sind zu vermeiden, aber das sei grad egal)

Nun haben aber die Platten intern mit ihren ganzen Features wie Wear-Leveling doch einen ganz eigenen Zugriff aufs Dateisystem und bietet dem OS doch gar nicht die Möglichkeit bestimmte Blöcke auszuwählen, da doch der Controller selbst möglichst wenigbenutzte/ungenutzte Blöcke beschreiben will.
Das würde auch erklären, weshalb sich Dateien mitunter in so unglaublich vielen Fragmenten befinden (http://www.hardwareluxx.de/community/f227/ssd-defrag…).

Kurzum, mich würde einfach interessieren, welcher Standpunkt jetzt stimmt. Kann Windows Blöcke direkt adressieren? Kann ein Defragtool sich über Wear-Leveling hinwegsetzen und Dateien defragmentieren? Oder ist dem OS hier vom Controler tatsächlich die „Befugnis genommen“?

Ich hoffe, ihr könnt mir weiterhelfen. Immerhin scheinen selbst die Hersteller nichts genaues sagen zu können (Siehe Trim-debatte und Marvel-Controler usw)

Zur Titelfrage:

  1. Die Defragmentierung sorgt bei einer Festplatte dafür, dass logisch zusammengehörige Blöcke einer Datei auch physisch nebeneinander auf der Platte liegen, damit der Schreib-Lese-Kopf nicht hin-und-herspringen muß. Da eine SSD keinen Schreib-Lese-Kopf hat, nützt eine Defragmentierung bei SSD gar nichts. Jede Zelle einer SSD kann gleich schnell gelesen werden, ganz egal in welcher Reihenfolge Zellen angefordert werden.

  2. Da jede Zelle einer SSD nur eine begrenzte Anzahl oft beschrieben werden kann, nutzen SSD sogenannte Wear-Levelling-Algorithmen, die dafür sorgen, dass jede Zelle etwa gleich oft genutzt wird. Eine Defragmentierung steht dem Wear-Levelling komplett entgegen und darf daher nicht durchgeführt werden. Im besten Falle ignoriert der Controller das einfach, im schlechtesten Falle umgeht man das Wear-Levelling und ruiniert sich seine SSD vorzeitig.

  3. Es ist ein großer VORTEIL von SSD, dass keine Defragmentierung nötig ist. Die Defragmentierung behebt nur ein Problem von mechanischen Platten, das SSDs gar nicht erst haben. Also nicht traurig, sondern glücklich sein!

@serra.avatar: Warum von Prefetch- und Superfetch abgeraten wird, ist mir nicht eingängig, da dabei ja eigentlich nur Lesezugriffe durchgeführt werden, die in der Tat selbst bei SSD noch beschleunigend wirken könnten. Aufgrund der erheblich niedrigeren Zugriffszeiten, dürfte der erzielbare Effekt aber in der Tat nur gering sein. Dies müßte man einfach mal ausprobieren! Wie groß ist der Gewinn durch diese beiden Mechanismen bei SSD wirklich noch?

Quelle: http://www.computerbase.de/forum/showthread.php?t=52…

  1. Die Defragmentierung sorgt bei einer Festplatte dafür, dass
    logisch zusammengehörige Blöcke einer Datei auch physisch
    nebeneinander auf der Platte liegen, damit der
    Schreib-Lese-Kopf nicht hin-und-herspringen muß. Da eine SSD
    keinen Schreib-Lese-Kopf hat, nützt eine Defragmentierung bei
    SSD gar nichts. Jede Zelle einer SSD kann gleich schnell
    gelesen werden, ganz egal in welcher Reihenfolge Zellen
    angefordert werden.

Moment, das ist ja so nicht ganz richtig. Es gibt einen ziemlich großen Unterschied zwischen Sequenziellem Lesen und Zufälligen Blöcken. Das zeigt eigentlich jeder Benchmark (und wenn ich mich nicht sehr irre nicht nur bei meiner SSD).
Von daher kam ja auch meine Frage.
Dass das Defragmentieren Schreibzugriffe braucht und somit schneller altert, ist mir klar, wobei es ja auch Defragprogramme für SSDs gibt, die nur Fragemente zusammenlegen, nicht aber alle Dateien zusammenschieben. Das dürfte vielleicht ja auch ein wenig Schreibarbeit sparen.

Letztlich war aber tatsächlich eher die Frage, die mich verwundert hat, ob bzw. wie Defragmentieren überhaupt möglich ist, wenn der Controler mit Wear-Leveling ja irgendwie dafür sorgen sollte, dass genau das gar nicht möglich ist.
Schien mir irgendwie ein Widerspruch. Naja, danke trotzdem für die Antwort. Vermutlich wird sich das ganze Durcheinander mit den SSDs einfach im Laufe der nächsten Jahre erst zeigen! :smile:

Vielen Dank,
Tobias

Tach!

Moment, das ist ja so nicht ganz richtig. Es gibt einen ziemlich großen Unterschied zwischen Sequenziellem Lesen und Zufälligen Blöcken.

Nur in der Theorie.

Das zeigt eigentlich jeder Benchmark

Bedenke: Benchmarks sind synthetisch und haben im Allgemeinen nicht - aber auch gar nichts - mit der Realität zu tun. NTFS ist schon außerordentlich robust gegen Fragmentierung - und den Rest bügelt der Windows-Cache aus.

Ich hab vor ein paar Wochen zum allerstenmal die Festplatte von unserem Server defragmentiert - da rödeln seit fast 5 Jahren 20 Leute täglich acht bis zehn Stunden drauf rum, die war wirklich völlig und total fragmentiert.

Effekt: davon merkst du bei der täglichen Arbeit nicht das geringste - und wir reden hier von eher gemütlichen Festplatten.

Da eine SSD keine Köpfe hat, die bewegt werden müssen und darauf warten müssen, das der richtige Sektor unter ihnen vorbei rotiert, hast du quer über die gesamte Kapazität prinzipiell die gleiche Zugrifsszeit. Es mag minimale Unterschiede geben, wenn man die Daten so ablegt, das sie nicht nur in aufeinanderfolgenden logischen Clustern, sondern auch in vollen Speicherbänken.
Aberr ersten müsste man dafür erst mal die Organisation deiner SSD in Speicherbänken heraus bekommen und ein Programm finden, das daraufhin optimiert - so was gibt es nämlich bsher meines Wissens nach nicht.

Und selbst dann wirst du in Benchmarks nur eine Verbesseruung in Nanosekunden-Bereich messen können - was mit Cache und realen daten herzhaft wenig zu tun hat.

Glaub mir: Defragmentierung einer SSD ist reine Zeitverschwendung.

lg, mabuse

Tach!

Moment, das ist ja so nicht ganz richtig. Es gibt einen ziemlich großen Unterschied zwischen Sequenziellem Lesen und Zufälligen Blöcken.

Nur in der Theorie.

Du meinst, solche Benchmarks sind gar nicht realistisch?
Ich weiß natürlich nicht, wie solche Werte ermittelt werden, aber wenn Du nach Bildern von SSD Benchmarks googlest, findest Du haufenweise Werte, die meinen gemessenen entsprechen. Und die Unterschiede zwischen Sequenziell (irgendwas um die 200MB/S) und Random 4K Blöcken (vielleich 20MB/S) fand ich dann recht groß. Daher kam ja der Gedanke. Wenn die auch nur den halben Zuwachs von diesn Werten hätten, wäre das ein echter Vorteil.

Aberr ersten müsste man dafür erst mal die Organisation deiner
SSD in Speicherbänken heraus bekommen und ein Programm finden,
das daraufhin optimiert - so was gibt es nämlich bsher meines
Wissens nach nicht.

Ja, genau das ist das Problem, mit dem ich auch zu kämpfen hatte. Keine Ahnung, wie das aussieht. Wie da die Windows Speicherverwaltung und der SSD Controler zusammenarbeiten. Ich hatte gehofft, hier würde irgendwer was wissen.
Bleibt wohl nur abzuwarten…

Na gut, danke trotzdem für die Hilfe. Schauen wir einfach mal, wie die SSDs der nächsten Generation werden. Die Richtung sieht ja ganz nett aus…
Danke!
Tobias