AA_nature_discy_sxc_1423348.jpg

© Discy, sxc.hu

Vitalfunktionen

Portable Linux-Installationen optimieren

20.03.2014
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
 

Ähnliche Artikel

  • 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.
  • 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-Riegel für unterwegs
    Statt auf eine Festplatte können Sie Linux auch problemlos auf einen USB-Stick installieren. Dieser Artikel verrät Ihnen, wie Sie sich mit OpenSuse oder Kubuntu ein Linux zum Mitnehmen basteln.
  • 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.
  • Kugelsicher
    So ein winziger USB-Stick geht schnell mal verloren – Pech nur, wenn sensible Daten darauf lagern. Verschlüsseln hilft gegen solche Pannen.
Kommentare

Infos zur Publikation

LU 09/2015: Paketverwaltung

Digitale Ausgabe: Preis € 4,95
(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!       

Tipp der Woche

Grammatikprüfung in LibreOffice nachrüsten
Grammatikprüfung in LibreOffice nachrüsten
Tim Schürmann, 24.04.2015 19:36, 2 Kommentare

LibreOffice kommt zwar mit einer deutschen Rechtschreibprüfung und einem guten Thesaurus, eine Grammatikprüfung fehlt jedoch. In ältere 32-Bit-Versionen ...

Aktuelle Fragen

Scanner EPSON Perfection V 300 photo und VueScan
Roland Welcker, 19.08.2015 09:04, 1 Antworten
Verehrte Linux-Freunde, ich habe VueScan in /usr/local/src/vuex_3295/VueScan installiert, dazu d...
Empfehlung gesucht Welche Dist als Wirt für VM ?
Roland Fischer, 31.07.2015 20:53, 2 Antworten
Wer kann mir Empfehlungen geben welche Distribution gut geeignet ist als Wirt für eine VM für Win...
Plugins bei OPERA - Linux Mint 17.1
Christoph-J. Walter, 23.07.2015 08:32, 3 Antworten
Beim Versuch Video-Sequenzen an zu schauen kommt die Meldung -Plug-ins und Shockwave abgestürzt-....
Wird Windows 10 update/upgrade mein Grub zerstören ?
daniel s, 22.07.2015 08:31, 7 Antworten
oder rührt Windows den Bootloader nicht an? das ist auch alles was Google mir nicht beantw...
Z FUER Y UND ANDERE EINGABEFEHLER AUF DER TASTATUR
heide marie voigt, 10.07.2015 13:53, 2 Antworten
BISHER konnte ich fehlerfrei schreiben ... nun ist einiges drucheinander geraten ... ich war bei...