fstrim und Mountpoints (btrfs)

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
Benutzeravatar
smutbert
Beiträge: 8350
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

fstrim und Mountpoints (btrfs)

Beitrag von smutbert » 23.03.2016 11:06:42

Hallo allerseits,


vielerorts wird von der Mountoption »discard« abgeraten, speziell bei btrfs [1]. Bei mir ist es bis jetzt zwar gut gegangen und ich habe den Verdacht, dass es keine Probleme mehr damit gibt, aber dennoch denke ich daran, doch lieber fstrim zu verwenden.

Dazu wollte ich einfach
- /usr/share/doc/util-linux/examples/fstrim.timer und
- /usr/share/doc/util-linux/examples/fstrim.service
verwenden und habe vorher mit »fstrim -av« getestet was der Befehl alles macht:

Code: Alles auswählen

# fstrim -av
/mnt/BTRFS2: 150.3 GiB (161386347392 bytes) trimmed
/mnt/data: 150.3 GiB (161386347392 bytes) trimmed
/home: 72.4 GiB (77767597952 bytes) trimmed
/mnt/BTRFS1: 72.4 GiB (77767624576 bytes) trimmed
/: 72.4 GiB (77767638912 bytes) trimmed
Wie man sieht mit dem Ergebnis, dass meine beiden btrfs-Dateisysteme je Mountpoint einmal abgearbeitet werden, das größere Dateisystem, das unter
- /mnt/BTRFS2 und ein subvolume
- /mnt/data
gemountet ist, wird also zwei Mal und das kleinere Dateisystem unter
- /home,
- /mnt/BTRFS1 und
- /
wird drei Mal getrimmt.

Nun könnte ich natürlich in »fstrim.service« fstrim mit nur je einem Mountpoint pro Dateisystem aufrufen, aber vielleicht habt ihr ja eine Idee für ein Skript oä, das jedes gemountete Dateisystem nicht öfter als ein Mal trimmt, ohne dass ich die Mountpoints explizit eintragen muss.


[1] https://wiki.ubuntuusers.de/Btrfs-Mount ... ntoptionen

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: fstrim und Mountpoints (btrfs)

Beitrag von rendegast » 27.03.2016 14:48:46

Die Dinger sind ja nur "examples"

Code: Alles auswählen

$ cat fstrim.*
[Unit]
Description=Discard unused blocks

[Service]
Type=oneshot
ExecStart=/sbin/fstrim -a
[Unit]
Description=Discard unused blocks once a week
Documentation=man:fstrim

[Timer]
OnCalendar=weekly
AccuracySec=1h
Persistent=true

[Install]
WantedBy=multi-user.target
Stattdessen fstrim-lokal.*:

Code: Alles auswählen

[Unit]
Description=Discard unused blocks

[Service]
Type=oneshot
ExecStart=/usr/local/sbin/fstrim.sh
[Unit]
Description=Discard unused blocks once a week
Documentation=man:fstrim

[Timer]
OnCalendar=weekly
AccuracySec=1h
Persistent=true

[Install]
WantedBy=multi-user.target
fstrim.sh:

Code: Alles auswählen

#!/bin/sh

cat /usr/local/sbin/fstrim.list | \
while read mountpoint; do
   /sbin/fstrim $mountpoint
done
Eventuell muß der Aufruf des fstrim.sh anders lauten

Code: Alles auswählen

ExecStart=/bin/sh /usr/local/sbin/fstrim.sh

Statt einer selbst gewarteten fstrim.list

Code: Alles auswählen

/mnt/BTRFS2
/mnt/BTRFS1
denkbar ein Skript, das Fälle von mounts <-> Partitionen/lvm/raid/'blkid' abgleicht,
das könnte aber ungleich komplexer werden.




Und was macht das fstrim eigentlich bei einem Dateisystem,
welches über HDD und SSD verteilt ist?
Further, the kernel block layer
reserves the right to adjust the discard ranges to fit raid stripe geometry, non-trim capable devices in a
LVM setup, etc. These reductions would not be reflected in fstrim_range.len
Diese Art Erwähnung in der manpage zeigt, daß sich darüber jemand Gedanken gemacht hat.
Wird wohl kein Problem sein (hoffentlich).
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
smutbert
Beiträge: 8350
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: fstrim und Mountpoints (btrfs)

Beitrag von smutbert » 28.03.2016 13:46:36

rendegast hat geschrieben:Die Dinger sind ja nur "examples"
ich glaube Debian hat sie zu "examples" gemacht. Beim upstream-orientierten Arch liegen diese units unter »/usr/lib/systemd/system« (und an der gegenüber jessie neueren Version liegt es nicht, weil es in stretch und sid genauso ist)

Ein Skript, das eine von mir geschriebene Liste von Mountpoints abarbeitet bringe ich noch zuwege... aber ich dachte eher ich hätte irgendetwas offensichtliches übersehen.
rendegast hat geschrieben:Und was macht das fstrim eigentlich bei einem Dateisystem,
welches über HDD und SSD verteilt ist?
Das habe ich mich auch schon gefragt. Bei lvm uä kann ich es mir noch vorstellen, dass es trim/discard bei ssds eben durchreicht und bei hdds nicht, aber gerade bei btrfs geht es ja nicht nur um trim/discard sondern um andere Einstellungen, die bei Festplatten wohl kontraproduktiv sind und die nicht für einzelne Geräte sondern nur jedes Dateisystem getrennt festgelegt werden können, wie das

Code: Alles auswählen

[    2.054067] BTRFS info (device sda2): disk space caching is enabled
[    2.083324] BTRFS: detected SSD devices, enabling SSD mode
Danke

Antworten