Es ist ja allgemein bekannt wie man Trim unter Linux testen kann:
1.) Root werden
sudo -s
2.) Datei anlegen
dd if=/dev/urandom of=tempfile count=100 bs=512k oflag=direct
3.) Sektoradressen herausfinden (Die erste Zahl unter begin_LBA ergibt dann [ADDRESS] für Punkt 4.) und 6.))
hdparm --fibmap tempfile
4.) Sektoren mit hdparm lesen
hdparm --read-sector [ADDRESS] /dev/sda
5.) Datei löschen
rm tempfile && sync
6.) Sektoren mit hdparm lesen
hdparm --read-sector [ADDRESS] /dev/sda
Nun gibt es aber SSDs die nicht sofort trimmen oder welche die getrimmte Bereiche nicht als 0 zurückgeben. Letzeres kann man mit cat /sys/block/sda/queue/discard_zeroes_data prüfen. Wird 0 ausgegeben, bedeutet dies, dass das Laufwerk getrimmte Sektoren nicht als 0 ausgibt.
Falls man mehr als eine SSD/HDD hat, muss man sda entsprechend ersetzen.
Quellen:
Andy Dufell’s Blog
Linux LVM Mailingliste
Was nun interessant ist: Meine OCZ Vertex 2 hat früher immer “0” zurück gegeben für getrimmte Sektoren, neuerdings macht sie das nicht mehr. Leider hab ich damals nicht die Ausgabe von /sys/block/sda/queue/discard_zeroes_data geprüft als sie noch Nullen für getrimmte Sektoren ausgab, jetzt gibt /sys/block/sda/queue/discard_zeroes_data jedenfalls 0 aus, sprich getrimmte Sektoren werden nicht als 0 ausgegeben. Hat sich das tatsächlich mit einem der FW Updates geändert mal?
21:14, March 5, 2012_nico /
Hi Andreas, gute Sache veröffentlichst du hier im Blog.
Ich würde es gut finden wenn du noch deine Quellen angeben würdest, dein Beitrag deckt sich ziemlich gut mit dem UbuntuUsers-Wiki. ;-)
Aber nun zu meiner Frage:
Ich nutze Arch, habe auch Trim aktiviert. Allerdings werden bei mir immer “nullen” ausgegeben. Selbst wenn ich das File noch nicht gelöscht habe. Hast du eine Idee?
Gruß Nico
21:20, March 5, 2012Andreas /
Hi Nico, meine Quellen sind doch angegeben (ich bemühe mich sogar, immer die Quellen anzugeben)? Nichts davon stammt aus dem UbuntuUsers Wiki Artikel.
Andy Dufell hat das ca. 1 Jahr vor dem UU Wiki Artikel schon gepostet, da gab es den SSD Trim Artikel im UU Wiki noch nicht einmal, das UU Wiki dachte nämlich lange, man würde keine dedizierten SSD Artikel brauchen, da es dazu nichts Ubuntuspezifisches zu sagen gibt… (bisher kannte ich den UU Wiki Trim Artikel nicht mal, ich hatte damals mal gesucht und nur die Diskussionen dazu gefunden, aber seit Mai 2011 gibt es ja tatsächlich einen..)
Allerdings ist das ein gängiges Verfahren, welches du heute nahezu überall findest ;)
Zu deinem Problem: Nein, da habe ich spontan auch keine Idee. Falsche Adresse genommen? Vllt. eine Eigenheit mancher SSDs? Mir fällt spontan auch nicht mehr ein.. :(
21:53, March 5, 2012_nico /
Hi Andreas, ah okay – verstehe – war ja auch nicht böse gemeint. ;-)
Hmm komisch, nene, richtige Platte habe ich schon gewählt. Naja, wer weiß. Vielleicht ist es wirklich eine Eigenheit der Crucial m4. Jedenfalls checke ich ab und an mit …
fstrim -v /
… dort hat er immer …
/: 0 bytes were trimmed
Für mich ein Zeichen das der Online Discard mit ext4, dm-crypt 1.4 und verschlüsselten lvm (/ und swap) funktioniert. ;-)
Gruß
22:04, March 5, 2012Andreas /
Mhh, das ist komisch, bei meinem letzten Versuch ging gar kein “manuelles” Discard auf lvm+dm-crypt, aber tatsächlich scheint das nun zu gehen. Ich bin daher damals wieder auf Online Discard gegangen, was problemlos geht.
Der oben gepostete Test klappt allerdings mit lvm+dm-crypt sowieso meist nicht, keine Ahnung warum, ich hatte dazu mal irgendwo einen Mailing-Listen Eintrag dazu von einem Entwickler, das scheint also normal zu sein. Stattdessen kannst du aber einfach davon ausgehen, dass Trim funktioniert, wenn dmesg keine Fehlermeldungen bringt. Normalerweise meldet mount ansonsten einen Fehler beim “Mounten”.
Auch neu: fstrim trimmt nun nicht immer komplett neu. “Früher” (also vor .. 6 Monaten vllt.?) hat er jedesmal komplett getrimmt, wenn fstrim aufgerufen wurde. Kann aber natürlich auch daran liegen, wenn man fstrim aufruft und gleichzeitig online discard an hat.
Ein Problem könnte natürlich sein dass du den Kernelparameter für Trim mit dm-crypt nicht übergeben hast (cryptdevice=…:bla:allow-discards), obwohl ich nicht weiß, ob man den für manuelles discard braucht, denke aber mal.
Verwirrend das ganze Zeug, ständig ändert sich was… werde wohl dann bald wieder periodisches trimmen via fstrim nutzen.
22:06, March 5, 2012Andreas /
Hier: http://www.spinics.net/lists/dm-crypt/msg04001.html gibts die Diskussion zu dem obigen Test und LVW,DM-Crypt. Es geht also doch .. zumindest hat der Poster es am Schluss geschafft!
22:20, March 5, 2012_nico /
Genau so ist es. Naja wenn mein neues Blog Theme fertig ist, gibt es einen Artikel über ext4, dm-crypt, crypted lvm, grub und trim. Natürlich mit Backlink. ;-)
Hast du Twitter?
Gruß
22:21, March 5, 2012Andreas /
Ja, einfach rechts auf “Follow me on Twitter”.
Ich sehe den Backlink dann ja aber eh als Pingback ;)
22:24, March 5, 2012Andreas /
Gerade mal probiert: fstrim mit lvm und dmcrypt klappt an meinem PC tatsächlich, aber (gleiche SSD übrigens!) auf meinem Laptop kommt “ioctl: failed, blabla nicht erlaubt…”. Konfiguration ist praktisch gleich, beide mit allow discards. Verstehe ich nicht :/
22:36, March 5, 2012_nico /
Der an dem es nicht geht hat ne neuere Kernel-Version drauf oder? Musst im Grub noch …
root_trim=yes
… anhängen – dann klappt es auch – hatte vorhin das gleiche. ;-)
Quelle: http://forums.gentoo.org/viewtopic-t-914520.html
PS: Ich rechne zwar die Sectoren hoch… aber irgendwie will es mit hdparm –read-sector dennoch nicht so richtig klappen… immer noch nullen.
PS2: Stimmt, “ScriptNo” war noch aktiv bzw. deine Domain nicht aktiviert. ;-)
22:40, March 5, 2012Andreas /
Die haben beide die gleiche Kernelversion.. hatte das im Gentooforum auch grad gesehen, aber dass das in Arch tut? Man findet zu dieser Option ja noch fast gar nichts … werde gleich mal testen ;)
22:52, March 5, 2012_nico /
Keine Ahnung, Gentoo ist halt auch ziemlich aktuell – so wie Arch^^
Bei mir hat es gefruchtet. ;-)
23:05, March 5, 2012Andreas /
ne, das löste bei mir das Problem nicht. Mhh schon seltsam, eigentlich müsste das dort genauso gehen. Vllt. liegt es auch am Controller oder so.. dann bleibt dort halt das online discard^^
23:14, March 5, 2012Andreas /
Okay ich weiß nun woran es liegt: https://aur.archlinux.org/packages.php?ID=31135. Scheinbar nutzen die ein altes initscript oder so.