AA_nature_discy_sxc_1423348.jpg

© Discy, sxc.hu

Portable Linux-Installationen optimieren

Vitalfunktionen

Flashspeicher reagieren empfindlich auf häufiges Schreiben. Linux bringt aber die richtigen Mittel mit, um die Lebenszeit des mobilen Datenträgers drastisch zu erhöhen.

Linux ist es völlig einerlei, ob Sie es auf eine Festplatte installieren oder auf einen USB-Stick: Der Kernel sieht in beiden Fällen ein Block-Device wie /dev/sda oder /dev/sdb. Das erleichtert die Installation eines portablen Systems (Abbildung 1). Sie finden in dieser Ausgabe einen Artikel, der sich ausführlich mit der Installation verschiedener Varianten beschäftigt.

Abbildung 1: Portable Systeme auf USB-Sticks, die auf jedem angeschlossenen Rechner booten, stellen für Linux kein Problem dar. Allerdings tun Sie gut daran, die Zahl der Schreibzugriffe zu dämpfen.

Doch der Linux-Kernel ist auf Festplatten mit beweglichen Leseköpfen hin getrimmt und nimmt von sich aus keine Rücksicht auf die Besonderheiten von Flashspeichern (vergleiche Kasten "Schreibvorgänge"). Das auf Server-Performance optimierte System schafft es so bei häufig genutzten Installationen, einen USB-Stick innerhalb einiger Monate zu ruinieren.

Schreibvorgänge

Wie eine Festplatte besitzt ein USB-Stick einen Controller für das Laufwerk. Dieser gaukelt dem Betriebssystem ein Medium mit Zugriff auf Blockebene vor. Hinter den Kulissen arbeitet der Datenspeicher jedoch völlig anders als Magnetplatten mit beweglichem Lesekopf.

Der Flashspeicher eines USB-Sticks oder einer Solid State Disk gehört zu den Nachfahren des EPROMs. Die Bastler unter Ihnen wissen: Ein EPROM müssen Sie vor dem Beschreiben löschen – einzelne Bits lassen sich nicht auf null setzen. Allerdings ist es den Ingenieuren gelungen, den Speicher in viele separate Bereiche einzuteilen, die typischerweise eine Größe von 4 MByte aufweisen.

Das bedeutet aber, dass der Controller beim Schreiben eines einzelnen Bits letztlich den ganzen Block in einen neuen freien Bereich kopiert. Er verbirgt diese Bit-Akrobatik vor dem Betriebssystem, doch sie hat große Auswirkungen auf die Geschwindigkeit beim Schreiben.

Jedes Löschen verschleißt die Speicherzellen, anders als Zugriffe beim Lesen. Für USB-Sticks kursieren Werte von 1000 bis 10 000 möglichen Zyklen pro Einheit beim Löschen. Das auf Datensicherheit hin optimierte Verhalten von Linux, den Cache des Laufwerks alle paar Sekunden auf das permanente Speichermedium zurückzuschreiben, ist daher für USB-Sticks alles andere als optimal.

Wear and Tear

Die vom Linux-System geschriebene Datenmenge lesen Sie bei Bedarf aus der Proc- und Sysfs-Hierarchie aus. Die Zahl der seit dem Start auf ein Speichergerät angefallenen Blöcke finden Sie unter /proc/diskstats oder /sys/block/Gerätename/stat.

Der Aufruf aus der ersten Zeile von Listing 1 wandelt dabei die schwer zu entziffernde Reihe von Zahlen in einen MByte-Wert um, indem er Spalte 10 mit der Blockgröße von 512 Byte multipliziert und durch 1024 multipliziert mit 1024 teilt.

Listing 1

# awk '/sdNr/ {print $3"\t"$10 / 2048}' /proc/diskstats
# cat /sys/fs/ext4/sdNr/lifetime_write_kbytes
# tune2fs -l /dev/sdNr | grep created

Die ganze je in ein Dateisystem geschriebene Datenmenge zeigt das Kommando aus Listing 1, Zeile 2, dessen genaues Alter fördert der Befehl aus Zeile 3 zutage. So ergibt sich beim täglich genutzten Arch-Linux-System im Test pro Jahr eine Menge gut 500 GByte geschriebenen Daten für die Root-Partition und 1300 GByte für die Partition mit /home.

Die reine Menge der geschriebenen Daten erlaubt aber nur sehr bedingt Rückschluss auf die sich daraus ergebende Belastung für einen USB-Stick. Wie der Kasten "Schreibvorgänge" erläutert, bewegen die Controller selbst bei kleinen Zugriffen ein Vielfaches der eigentlichen Datenmenge in den Speicherzellen ("Write Amplification").

Gegen diese Abnutzung kämpfen Flashspeichergeräte mit "wear leveling" an (Abbildung 2), bevorzugen also auf Controller-Ebene beim Schreiben bislang weniger belastete Speicherzellen.

Abbildung 2: Anders als bei konventionellen Festplatten ist der Flash-Controller in der Lage, die Daten ohne Einbußen bei der Performance beliebig zu verteilen.

Wie effizient die Controller dabei vorgehen, steht bei USB-Sticks allerdings in den Sternen – eventuell wechseln Steuerchip und Flashspeicher eines Sticks vom gleichen Typ je nach Preis auf dem Weltmarkt. Es existiert auch kein Verfahren wie SMART bei Festplatten, um den aktuellen Grad der Abnutzung auszulesen.

Als erster sehr grober Anhaltspunkt eignet sich die Annahme von 3000 Zyklen und einer Write Amplification von 10. Demnach wären Schreibzugriffe im 300-Fachen der Größe des Mediums möglich. Doch dabei hängt der Zeitpunkt des ersten Verlusts von Daten stark vom Muster des Zugriffs ab, und es existieren noch weniger Möglichkeiten, ihn vorherzusagen, als bei Festplatten.

Schweigen ist Gold

Da bei regelmäßig genutzten Linux-Installationen in weniger als einem Jahr Schreibzugriffe in der Größenordnung von ein bis mehreren Terabyte auflaufen, bietet es sich an, bei einer Installationen auf einem USB-Stick die Schreibwut des Systems zu zügeln.

Zum Glück kennt der Linux-Kernel seit Langem den eigentlich für das Energiesparen auf Notebooks konzipierten Laptop-Mode. Er bündelt das Sichern aus dem Cache im Arbeitsspeicher zu größeren Portionen. Das wirkt sich auch auf den Verschleiß von USB-Sticks oder SSDs positiv aus. Sie aktivieren den Laptop-Mode als root durch den folgenden Befehl:

# echo 5 > /proc/sys/vm/laptop_mode

Um ihn beim Systemstart auszuführen, schreiben Sie ihn unter Ubuntu in das Skript /etc/rc.local oder unter OpenSuse in /etc/init.d/boot.local. Die auf Notebooks oft genutzten Laptop-Mode-Tools [1], die zwischen Batterie- und Netzbetrieb differenzieren, erweisen sich für den Dauerbetrieb des Laptop-Modus als nicht sonderlich praktisch.

Um die Wirkung des Laptop-Modes zu erhöhen, schlägt die Kernel-Dokumentation vor, die Einstellungen dirty_expire_centisecs und dirty_writeback_centisecs auf zehn Minuten (3 600 000 Hundertstelsekunden) zu erhöhen (Listing 2, Zeile 1 und 2).

Um die Einstellungen dauerhaft zu nutzen, schreiben Sie die Befehle in die oben bereits genannten Startskripte. Das bewirkt, dass der Kernel die Daten zehn Minuten lang sammelt, ehe er sie auf die Platte schreibt – was ausreichend Arbeitsspeicher voraussetzt.

Hier zählt aber nicht der verfügbare Arbeitsspeicher, sondern der in dirty_background_ratio (Grenze für Synchronisation im Hintergrund) und dirty_ratio (Grenze, ab der die Synchronisation den Systemfluss unterbricht) festgelegte Prozentsatz. Setzen Sie daher beide Werte deutlich höher als die Standards von fünf und zehn Prozent, zum Beispiel auf 40 und 60 (Listing 2, Zeile 2 und 4).

Listing 2

# echo 3600000 > /proc/vm/dirty_expire_centisecs
# echo 3600000 > /proc/vm/dirty_writeback_centisecs
# echo 40 > /proc/vm/dirty_ratio;
# echo 60 > /proc/vm/dirty_background_ratio
# mke2fs -t ext4 -O ^has_journal Gerätedatei

Allerdings haben Entwickler die Möglichkeit, dieses Bündeln mit dem System Call fsync() zu unterlaufen. Der schreibt die Daten stets sofort auf die Platte. Da außerdem verzögertes Überschreiben existierender Dateien, wie es bei den Konfigurationsdateien von Gnome oder KDE laufend vorkommt, bei Abstürzen zu gefürchteten Null-Byte-Dateien führt [2], hat Ext4 für das Überschreiben von Dateien den alten Standard von Ext3 wieder eingeführt. Dabei sichert der Kernel zumindest die Wiederherstellungsdaten ("Journal") jede Sekunde auf den Stick – und löst eventuell trotz geringer Datenmenge einen Löschzyklus aus.

Wer die Lebensdauer seines Flashspeichers höher gewichtet als die Gefahr des Verlusts von Daten beim versehentlichen Abziehen des Sticks, sollte daher das Journaling bei Ext4-Partitionen ganz abschalten (Listing 2, Zeile 5).

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Probleme mit kleinen Displays beheben
  • Sahnestückchen?
    Eine gute Idee, aber noch Platz für Feinschliff: Der Diskless-PC Linutop kombiniert feine Hardware mit einem noch nicht ganz ausgereiften Betriebssystem.
  • Doppelbilder
    Mit XRandR steuern Sie Beamer und Multihead-Installationen einfacher und intuitiver als mit TwinView, MergedFB oder Xinerama.
  • Auf DVD: Knoppix 6.1
    Traditionell erscheint zur CeBIT eine neue Version das Live-Linux-Systems Knoppix – so auch dieses Jahr. Auf unserer Heft-DVD finden Sie die aktuelle Version 6.1, die Sie booten und sofort einsetzen oder bei Bedarf auch auf Platte installieren können.
  • Linux auf USB-Stick
    Um Linux mit dabei zu haben, müssen Sie nicht unbedingt einen Rechner schleppen: Das freie Betriebssystem lässt sich problemlos auf einem USB-Stick installieren.
Kommentare

Infos zur Publikation

Lu07/2016: GIMP FÜR PROFIS

Digitale Ausgabe: Preis € 5,99
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Aktuelle Fragen

Mit Firewire Videos improtieren?
Werner Hahn, 09.06.2016 11:06, 5 Antworten
Ich besitze den Camcorder Panasonic NV-GS330, bei dem die Videos in guter Qualität nur über den 4...
lidl internetstick für linux mint
rolf meyer, 04.06.2016 14:17, 3 Antworten
hallo zusammen ich benötige eure hilfe habe einen lidl-internetstick möchte ihn auf linux mint i...
thema ändern
a b, 29.05.2016 16:34, 0 Antworten
Hallo Linuxer zuerst alle eine schönen Sonntag, bevor ich meine Frage stelle. Ich habe Ubuntu 1...
Ideenwettbewerb
G.-P. Möller, 28.05.2016 10:57, 0 Antworten
Liebe User, im Rahmen eines großen Forschungsprojekts am Lehrstuhl für Technologie- und Innova...
Welche Drucker sind Linux-mint kompatibel?
Johannes Nacke, 20.05.2016 07:32, 6 Antworten
Hallo Ihr Lieben, ich bitte um mitteilung welche Drucker Kompatibel sind mit Linux-Mint. LG Joh...