Shredzone

Inhalt abgleichen
Shred's Blog
Aktualisiert: 1 Stunde 5 min ago

Fedora: SSD kurz und schmerzlos

Sa, 15/04/2017 - 19:13

Es gibt schon viele Artikel, wie man SSD-Festplatten richtig in Linux einbindet. Aber entweder sind sie unvollständig oder recht lange. Also, hier eine tl;dr-Fassung – SSD mit Fedora, kurz und schmerzlos.

Trimming

Wenn die SSD trimming kann (was mittlerweile bei ziemlich allen SSDs auf dem Markt der Fall ist), sollte es natürlich auch verwendet werden. Dadurch ermöglicht man wear levelling, gibt also der SSD die Möglichkeit, den Verschleiß der Speicherzellen zu verteilen.

In der /etc/fstab wird bei jedem Mountpoint, der auf eine SSD-Partition verweist, die Parameter discard angehängt. Eine gute Idee ist es außerdem, noatime hinzuzufügen, um die Schreibzugriffe auf die Platte zu reduzieren. Das sieht dann zum Beispiel so aus:

UUID=939446e3-9bb9-40a6-bf03-2d87bb8f5837 /                       ext4    discard,noatime        1 1
UUID=4f75261d-2e40-4e39-bf63-2a9c517fc73d /home                   ext4    discard,noatime        1 2
UUID=05db751b-5c2b-47da-8577-89ee30d90e56 swap                    swap    defaults        0 0

Das funktioniert mit reinen ext4- und btrfs-Partitionen sowie mit RAID-Partitionen. Wird LVM verwendet, muss in der /etc/lvm/lvm.conf zuerst bei der Option issue_discards eine 1 eingetragen und die initramfs mit sudo dracut -f neu gebaut werden. Bei LUKS-Partitionen ist ein Kniff notwendig, den ich weiter unten beschreiben werde. Swap-Partitionen trimmen immer, ein discard-Parameter ist nicht erforderlich.

Nach einem Neustart sollte man einmalig alle SSD-Partitionen von Hand trimmen:

sudo fstrim -v /
sudo fstrim -v /home

Man kann man das Trimmen außerdem automatisch wöchentlich vornehmen lassen:

sudo systemctl enable fstrim.timer

Eventuell kann man sich dann auch das discard in der /etc/fstab sparen, da es Löschoperationen verlagsamt.

LUKS-Partitionen

Verschlüsselte LUKS-Partitionen reichen von sich aus die Trimming-Kommandos nicht an die SSD weiter. Das hat auch einen guten Grund: Das Trimming erlaubt Rückschlüsse darauf, welche Teile der verschlüsselten Partition Daten enthalten und welche nicht. Das erleichtert einen gezielten Angriff auf die verschlüsselten Daten, zumindest theoretisch.

Um bei LUKS das Trimming einzuschalten, wird in der /etc/default/grub in der Zeile GRUB_CMDLINE_LINUX die Kernel-Option rd.luks.options=discard angehängt und mit

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

die GRUB-Konfiguration neu gebaut.

Wenn es sich um ein Upgrade einer älteren Fedora-Installation handelt und nicht um eine Neuinstallation, muss eventuell auch in der /etc/crypttab an allen Einträgen außer der Swap-Partition die Option discard angehängt werden. Danach wird mit sudo dracut -f die initramfs neu gebaut. Da man bei einem Fehler schnell ein nicht mehr bootendes System hat, empfehle ich diesen Schritt nur erfahrenen Linux-Anwendern.

Ab dem nächsten Reboot steht Trimming dann auch auf LUKS-verschlüsselten Partitionen zur Verfügung.

I/O-Scheduler

Was bei mechanischen Festplatten wirklich Zeit kostet, ist das Positionieren des Schreib-Lesekopfes, weshalb Linux versucht, die Daten möglichst zu sammeln und zu gruppieren. Bei SSDs spielt es dagegen keine Rolle, wie fragmentiert die Daten sind. Aus dem Grund kann man das Gruppieren wegfallen lassen und sich über die gewonnene Performance freuen.

Dazu wird eine Datei /etc/udev/rules.d/40-ssd.rules mit folgendem Inhalt angelegt:

ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="noop"

Beim nächsten Neustart verwenden SSD-Platten den noop-Scheduler, mechanische Festplatten weiterhin den für sie optimalen cfq.

Swappiness

SSDs können beliebig oft und schnell gelesen werden, verschleißen aber bei Schreibzugriffen. Swapping auf eine SSD-Partition ist zwar möglich, aber der Lebensdauer nicht sehr zuträglich. Folgende Zeilen in der /etc/sysctl.conf reduzieren das Auslagern auf die Swap-Partition auf ein Minimum.

vm.swappiness=1
vm.vfs_cache_pressure=50

Bei den heutigen Preisen selbst für üppige RAM-Ausstattung wäre es zumindest bei Desktop-Rechnern eine Überlegung wert, ob eine Swap-Partition überhaupt notwendig ist. Nachträglich kann eine Swap-Partition durch Auskommentieren der entsprechenden Zeile in der /etc/fstab deaktiviert werden.

Firefox-Cache

Firefox lagert seinen Cache in das Home-Verzeichnis aus, was eine zusätzliche Belastung für die SSD darstellt. Wer einen Rechner sein Eigen nennt, der mit üppig viel RAM gesegnet ist, kann auf das /tmp-Verzeichnis ausweichen, welches bei Fedora im Arbeitsspeicher statt auf der Festplatte liegt. Das geht leider nur über einen Eingriff in die Eingeweide des Browsers über die URL about:config.

Nach einer Bestätigung, dass man sich benehmen wird, wird mit der rechten Maustaste über Neu - String ein neuer String-Eintrag angelegt. Der Eigenschaftsname lautet browser.cache.disk.parent_directory, der String-Wert /tmp.

Danach muss der Firefox noch neu gestartet werden.

2017-04-15T18:13:47Z