Bei SSD Trim aktivieren und prüfen?

  • Hallo,

    ich habe einen RPi4B und zwei USB-SSD-Laufwerke dran.

    Wie muss man bei Linux Trim für die SSDs aktivieren?

    Oder macht das der aktuelle Kernel mittlerweile von selbst?

    Wie kann man prüfen, ob Trim aktiviert ist und funktioniert?


    Ich habe mir vor etlichen Monaten folgendes zusammen gegooglet.

    Weiß aber nicht, ob das so noch aktuell ist.


    Gruß

    meute

  • Moin meute,

    Wie kann man prüfen, ob Trim aktiviert ist und funktioniert?

    sudo systemctl list-timers ist die Antwort. In der Liste steht fstrim drin, wenn aktiv.

    udev usw. ist nicht nötig.

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

    Einmal editiert, zuletzt von Bernd666 (19. September 2020 um 17:20) aus folgendem Grund: ein e spendiert

  • sudo systemctl list-timers ist die Antwort. In der Liste steht fstrim drin, wenn aktiv.

    Ich erhalte diese Ausgabe:

    udev usw. ist nicht nötig.

    Ich habe bei mir aber vor Deinem Post schon folgendes gemacht:

    1. udev rule angelegt.

    2. fstrim-Timer-Dienst aktiviert:.

    Kann ich beides wieder rückgängig machen?

    1. udev rule angelegt:

    Code
    # Neue "udev rule" erstellen und folgende Zeile eintragen.
    # Dazu wird die VID:PID (idVendor:idProduct) benötigt:
    $ sudo nano /etc/udev/rules.d/10-ssd-trim-unmap.rules
    # In Datei eintragen:
    # USB-SSD - Transcend ESD240C 120 GB
    ACTION=="add|change", ATTRS{idVendor}=="2174", ATTRS{idProduct}=="2000", SUBSYSTEM=="scsi_disk", ATTR{provisioning_mode}="unmap"
    # USB-SSD - Verbatim Vx500 120 GB
    ACTION=="add|change", ATTRS{idVendor}=="18a5", ATTRS{idProduct}=="025a", SUBSYSTEM=="scsi_disk", ATTR{provisioning_mode}="unmap"
    #

    2. fstrim-Timer-Dienst aktiviert:

    Code
    # Wenn man von einer SSD bootet, sollte man den wöchentlichen fstrim-Timer-Dienst aktivieren:
    sudo systemctl enable fstrim.timer
    sudo systemctl start fstrim.timer
    sudo systemctl status fstrim.timer


    EDIT:

    Benötigt man das Attribut "discard" in der /etc/fstab?

    Einmal editiert, zuletzt von meute (19. September 2020 um 18:00)

  • Wäre sonst die Ergänzung wert.

    Die fstrim-timer-unit wird per default mitinstalliert und aktiviert. Sie führt einmal wöchentlich ein < fstrim -a > auf alle Blockdevices aus.

    Die vorgestellte udev-Regel bezieht sich nur auf das durch Vendor & Produkt spezifizierte (USB)-Gerät, das von der wöchentlichen Trimmung auch bedient wird.

    Mehr als einmal pro Woche sollte eine SD, SSD, HD, Speicherstick nicht getrimmt werden, hier gilt, allzuviel ist ungesund.

    < man fstrim>

    < cat /lib/systemd/system/fstrim.service > < cat /lib/systemd/system/fstrim.timer >

    Servus !

    RTFM = Read The Factory Manual, oder so

  • Ist das das Tutorial, welches Du meinst?

    Nein, das ist das hier:

    [Tutorial] Eine unendliche Geschichte: Raspberry 4B und USB-Boot

    Ich werde das mal mit in den Forumsperlen eintragen.

    Du könntest ein eigenes fstrim-Tutorial verfassen, dann trage ich einen Hinweis darauf in die Unendliche Geschichte ein,

    zusätzlich zu einem Eintrag in die Forumsperlen.

    MfG

    Jürgen

    Edit: Schreibfehler

  • Moin meute,

    laut man mount sollten die Laufwerke, die geprüft werden solllen, den Eintrag discard haben.

    Bei mir, Debian Buster, geht es ohne udev-Regeln.

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Moin!

    @RTMF

    Die fstrim-timer-unit wird per default mitinstalliert und aktiviert

    Das ist weder bei Raspbian noch bei Debian der Fall.

    das Paket "util-linux" ist zwar installiert, aber der fstrim.timer ist nicht aktiviert.

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Moin meute,

    Wie kann man prüfen, ob ein Laufwerk Trim nötig hat?

    Ich kenne keine Methode.

    Wie kann man prüfen, ob ein Laufwerk getrimmt wurde?

    Einmal steht es im Status der Unit drin. Ansonsten sollte ein journalctl -ae | grep trim helfen.

    Müsste ich nachsehen. reiche ich nach....

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Das ist weder bei Raspbian noch bei Debian der Fall.

    das Paket "util-linux" ist zwar installiert, aber der fstrim.timer ist nicht aktiviert.

    Huups, da habe ich einen falschen Schluss gezogen. Habe nur auf einem Image nachgeschaut und die beiden Dateien hatten eine Grösse von > 0

    Merkwürdig, dass der Maintainer das nicht enabled, wo doch primär eine SD eingesetzt wird, die das trimm genauso benötigt, wie eine SSD.

    Servus !

    RTFM = Read The Factory Manual, oder so

  • Moin!

    RTFM,

    naja, eine SD wöchentlich zu trimmen, führt wohl noch eher zum Freitod.

    Was aber eingeschaltet ist fstrim.service. Aber die ist im Status dead. Sie wird erst durch den fstrim.timer angeschoben.

    meute

    Ich muss passen. Kann nicht sagen ob und wie ein Log geführt wird. Kann ich erst am Montag nachreichen, aber dann kannst du auch nachsehen.

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Versuch mal: lsscsi --long, könnte sein das Du es mit sudo apt install lsscsi nachinstallieren mußt.

    Ich kann es im Moment nicht testen, es zeigt warscheinlich nur an ob ein Laufwerk trim-fähig ist.

    Sieh auch mal hier: https://wiki.ubuntuusers.de/SSD/TRIM/

    MfG

    Jürgen

  • Nachtrag:

    https://www.jeffgeerling.com/blog/2020/enab…on-raspberry-pi

    MfG

    Jürgen

    Edit:

    Code
    sudo fstrim -v /
    /: 101,6 GiB (109048180736 bytes) trimmed
  • Moin!

    Eigentlich muss der meute bloß abwarten, bis der fstrim.timer auslöst. Das ist am 21.09.20 00:00.

    Dann sieht man was im Status steht und ob irgendwo in den Logs was eingetragen wird.

    Der Timer schaltet einmal wöchentlich und startet dann die fstrim.service. Dort steht unter Exec: /sbin/fstrim -Av.

    Um zu sehen welches Laufwerk überprüft wird: lsblk --discard.

    Ich denke wir warten einfach auf den Montag!

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Lese jetzt Eure Antworten von gestern Abend.

    Danke erstmal.

    Sorry, aber ich kann Euren Hinweisen nur schwer folgen.

    Ich versuche mal, die letzten Antworten aufzuarbeiten.

    Einmal steht es im Status der Unit drin. Ansonsten sollte ein journalctl -ae | grep trim helfen.

    Status der Unit?

    Wie kann ich die sehen?

    Mit journalctl -ae | grep trim erhalte ich kein Ergebnis.

    Kann ich erst am Montag nachreichen, aber dann kannst du auch nachsehen.

    Wo kann ich nachsehen? :conf:

    Versuch mal: lsscsi --long, könnte sein das Du es mit sudo apt install lsscsi nachinstallieren mußt.

    Mein Ergebnis sagt mir was?

    Code
    $ sudo apt install lsscsi
    ...
    $ lsscsi --long
    [0:0:0:0]    disk    ASMT     Verbatim Vx500   0     /dev/sda
    state=running queue_depth=29 scsi_level=7 type=0 device_blocked=0 timeout=30
    [1:0:0:0]    disk    StoreJet Transcend        0     /dev/sdb
    state=running queue_depth=29 scsi_level=7 type=0 device_blocked=0 timeout=30

    Nachtrag:

    https://www.jeffgeerling.com/blog/2020/enab…on-raspberry-pi

    Code
    sudo fstrim -v /
    /: 101,6 GiB (109048180736 bytes) trimmed

    Bei mir:

    Code
    $ sudo fstrim -v /
    fstrim: /: the discard operation is not supported

    Dann lsblk -D laut der Seite:

    https://www.jeffgeerling.com/blog/2020/enab…on-raspberry-pi

    sda und sdb ist jeweils eine SSD.

    sda = Boot und Root (Ersatz für SD-Karte)

    sdb = Für Datensicherung

    Code
    $ lsblk -D
    NAME        DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
    sda                0        0B       0B         0
    ├─sda1             0        0B       0B         0
    └─sda2             0        0B       0B         0
    sdb                0        0B       0B         0
    └─sdb1             0        0B       0B         0
    mmcblk0            0        4M   455,4G         0
    └─mmcblk0p1  3145728        4M   455,4G         0

    Dann sudo sg_vpd -p bl /dev/sda und sudo sg_vpd -p bl /dev/sdb laut der Seite:

    https://www.jeffgeerling.com/blog/2020/enab…on-raspberry-pi

    Dann sudo sg_vpd -p lbpv /dev/sda und sudo sg_vpd -p lbpv /dev/sdb laut der Seite:

    https://www.jeffgeerling.com/blog/2020/enab…on-raspberry-pi

    Code
    $ sudo sg_vpd -p lbpv /dev/sda
    fetching VPD page failed: Numerical argument out of domain
    sg_vpd failed: Numerical argument out of domain
    ...
    $ sudo sg_vpd -p lbpv /dev/sdb
    fetching VPD page failed: Numerical argument out of domain
    sg_vpd failed: Numerical argument out of domain

    Info laut der Seite:

    https://www.jeffgeerling.com/blog/2020/enab…on-raspberry-pi

    ==========

    If the Maximum unmap LBA count is greater than 0, and Unmap command supported (LBPU) is 1, then the device firmware likely supports TRIM.

    ==========

    Beides ist bei mir nicht der Fall.

    Beide SSDs unterstützen leider kein Trim, wenn ich das richtig verstehe.

    Mist... :cursing:

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!