fstrim erinnert sich nicht an trmmed-Blöcke nach dem Neustart

361
anonimou

Ich verwende die vollständige Festplattenverschlüsselung von LUKS + LVM (/ boot enthalten).

Nach jedem Neustart wird das System jedoch durch freien Speicherplatz beschnitten, ohne zu wissen, welche Blöcke getrimmt wurden.

Ich fürchte, das wird meine SSD verschleißen.

Aug 07 15:49:18 /: 338.4 GiB (363312041984 bytes) trimmed [REBOOT] Aug 07 15:49:45 /: 225.5 MiB (236392448 bytes) trimmed [NO REBOOT] Aug 07 16:00:01 /: 1.4 GiB (1476653056 bytes) trimmed [REBOOT] Aug 09 08:08:43 /: 338.3 GiB (363260616704 bytes) trimmed [NO REBOOT] Aug 09 10:00:02 /: 1.6 GiB (1708560384 bytes) trimmed [NO REBOOT] Aug 09 16:00:02 /: 1.2 GiB (1317408768 bytes) trimmed [NO REBOOT] Aug 10 09:10:24 /: 4.9 GiB (5261406208 bytes) trimmed [REBOOT] Aug 10 15:02:24 /: 338.3 GiB (363209334784 bytes) trimmed 

Ist das das richtige Verhalten? Nach dem Neustart würde ich davon ausgehen, dass nur ein paar GiB und nicht der gesamte freie Speicherplatz beschnitten wird.

0

1 Antwort auf die Frage

1
Elrond

Soweit ich SSDs fstrimund die relevanten Dinge verstehe, sieht das so aus:

TL; DR Bei normalen SSDs sollte das fstrimerneute Ausführen derselben Bereiche im Allgemeinen nichts schaden.

fstim geht über das gesamte Dateisystem, prüft, welche Blöcke von den fs nicht verwendet werden und teilt dem Laufwerk mit.

Die SSD erhält also einen TRIM-Befehl "Block 123 wird vom Betriebssystem nicht verwendet, Sie können dies tun, was auch immer Sie möchten." Die meisten SSDs kennzeichnen den Block als nicht verwendet und nullen den Inhalt effektiv aus. Beim nächsten TRIM-Befehl für denselben Block führt die SSD normalerweise Folgendes aus: "Hey, es ist bereits als nicht verwendet markiert. Ich tue nichts und sage dem Benutzer, dass es erfolgreich war."

Sie können smartctl --xall /dev/sdXVorher und Nachher verwenden fstrim, um die Verschleißwerte zu überprüfen (die meisten SSDs verfügen über einige Attribute für den Verschleiß). Sie sollten sich nicht viel ändern. Nur sehr wenig für die wenigen Blöcke, die Ihre Daemons / etc geändert haben.