Trim testen unter Linux

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?

Comments (13)

  1. 21:14, March 5, 2012_nico  / Reply

    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

  2. 21:20, March 5, 2012Andreas  / Reply

    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.. :(

  3. 21:53, March 5, 2012_nico  / Reply

    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ß

  4. 22:04, March 5, 2012Andreas  / Reply

    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.

  5. 22:06, March 5, 2012Andreas  / Reply

    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!

  6. 22:20, March 5, 2012_nico  / Reply

    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ß

  7. 22:21, March 5, 2012Andreas  / Reply

    Ja, einfach rechts auf “Follow me on Twitter”.

    Ich sehe den Backlink dann ja aber eh als Pingback ;)

  8. 22:24, March 5, 2012Andreas  / Reply

    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 :/

  9. 22:36, March 5, 2012_nico  / Reply

    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. ;-)

  10. 22:40, March 5, 2012Andreas  / Reply

    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 ;)

  11. 22:52, March 5, 2012_nico  / Reply

    Keine Ahnung, Gentoo ist halt auch ziemlich aktuell – so wie Arch^^

    Bei mir hat es gefruchtet. ;-)

  12. 23:05, March 5, 2012Andreas  / Reply

    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^^

  13. 23:14, March 5, 2012Andreas  / Reply

    Okay ich weiß nun woran es liegt: https://aur.archlinux.org/packages.php?ID=31135. Scheinbar nutzen die ein altes initscript oder so.

Leave a Reply

Allowed Tags - You may use these HTML tags and attributes in your comment.

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>