Aus LinuxUser 03/2010

Dateisystemwahl für SSDs

© Sachin Ghodke, sxc.hu

Solides System

Bei einer Festplatte, die mit über 100 MByte/s schreibt und doppelt so schnell liest, denkt man eigentlich kaum ans Optimieren. Doch mit dem richtigen Dateisystem und etwas Tuning liegt noch etwas mehr drin.

Linus Torvalds hat eine klare Meinung zu SSDs: „Wenn der Flash-Hersteller anfängt, über Grenzen im Wear Levelling zu erzählen und wie man die Platte beschreiben soll, dann lauf einfach davon. Geh nicht – renne so schnell du kannst.“ So brachte der Linux-Übervater 2008 im Real-World-Tech-Forum [1] seine Meinung zu (schlechten) Solid-State-Disks zum Ausdruck.

Die Platten der ersten oder zweiten Generation verkrafteten aufgrund eines relativ schlechten Designs und unzureichender Kapazität nur rund 100?000 Schreibzyklen, was bei einer 8-GByte-Platte und permanenter Belastung eine theoretische kürzeste Lebensdauer von 115 Tagen ergibt. So machte in Linux-Kreisen schnell der Tipp die Runde, auf einer SSD bloß kein Journaling-Filesystem zu benutzen.

Nicht totzukriegen

Spätestens mit der Markteinführung von Intels X25-Serie (Abbildung 1), von der auch Linus ein Testexemplar erhielt, gehören diese Ratschläge jedoch definitiv der Vergangenheit an: Wer heute eine Solid-State-Disk kauft, muss keinesfalls auf ein aktuelles Dateisystem verzichten – im Gegenteil.

Abbildung 1: Aktuelle SSDs, wie Intels in 34nm-Technik gefertigtes SATA-Model Intel X25-M, halten dank ausgefeilter Wear-Levelling-Algorithmen im Normalbetrieb jahrzehntelang.
Abbildung 1: Aktuelle SSDs, wie Intels in 34nm-Technik gefertigtes SATA-Model Intel X25-M, halten dank ausgefeilter Wear-Levelling-Algorithmen im Normalbetrieb jahrzehntelang.

Aktuelle SSDs halten im Normalbetrieb praktisch ein Leben lang. Selbst bei intensivsten Schreibarbeiten beträgt die rechnerische Lebensdauer einer 64 GByte großen SSD rund 51 Jahre, geht man von den aktuell durchschnittlichen 2 Millionen Zyklen und einer Schreibgeschwindigkeit von 80 MByte/s aus [2]. Die Regel, bei SSDs kein Journaling Dateisystem einzusetzen, kann man demnach getrost als alten Hut betrachten: Sie gilt höchstens noch für EeePCs der ersten Generation oder sehr günstige Solid-State-Disks.

Seit 2008 hat sich die Schreibtechnik stark verbessert, sodass sich aktuelle Platten selbst darum kümmern, wann sie Daten wohin schreiben. Optimierungen am Dateisystem laufen deshalb immer Gefahr, dem SSD-eigenen Schreibverfahren („Wear Levelling“) entgegenzuarbeiten oder kommen – wie beim ATA-Trim-Support von Ext4 (siehe unten) – mangels Support durch die Festplattenhersteller gar nicht oder nur schleppend zum Einsatz.

Der Ext4-Dateisystementwickler Theodore Ts’o untersuchte die Schreibzugriffe bei den Dateisystemen Ext2/3/4 und kam zu dem Schluss, dass das Journaling im Durchschnitt lediglich rund zehn Prozent mehr Schreibzugriffe verursacht [3]. Hinzu kommen die neuen Features von Ext4 und anderen aktuellen Filesystemen, die Dateien erst dann auf die Platte schreiben, wenn es unbedingt nötig ist („Delayed Allocation“). Daher darf man getrost behaupten, dass Ext4 auch für Solid-State-Disks das zurzeit beste und ausgereifteste Dateisystem darstellt (siehe Tabelle „Benchmark-Resultate“).

Benchmark-Resultate

  Ext2 Ext4 Ext4 ohne Journal Btrfs Btrfs -o ssd_spread
dbench -D /test 10 520 MByte/s 407 MByte/s 428 MByte/s 347 MByte/s 347 MByte/s
bonnie++ -d /test -s 2048 38 MByte/s 58 MByte/s 72 MByte/s 64 MByte/s 67 MByte/s

Übrigens lohnt es sich aus Performance-Gründen bei sämtlichen Partitionen, diese mit den Mount-Optionen noatime und nodiratime einzuhängen. Das vermeidet unnötige Schreibzugriffe beim Durchstöbern des Dateisystembaums. Einige Distributionen setzen hier generell auf norelatime: Damit aktualisiert der Kernel die Access Time nur bei Dateien, die über eine aktuellere Mtime oder Ctime verfügen – also solchen, die sich tatsächlich verändert haben. Der damit verbundene Performance-Gewinn lässt sich auf jeder Hardware messen.

Nummer Sicher

Wer Angst um die Lebensdauer einer alten SSD hat, kann Ext4 zudem ohne Journaling benutzen. Dazu muss man das Dateisystem lediglich über folgenden Befehl neu anlegen:

# mke2fs -t ext4 -O ^has_journal /dev/sdXX

Dabei gilt es /dev/sdXX durch den Namen der passenden Gerätedatei zu ersetzen. Ext4 ohne Journaling kombiniert die Geschwindigkeit von Ext2 mit den erweiterten Fähigkeiten aktueller Dateisysteme. Ohne Journal steht zwar nach einem Absturz ein Dateisystemcheck an, der aber in der Regel nicht sehr lange dauert: Die SSDs der ersten Generation sind maximal 8 oder 16 GByte groß und verfügen zudem über eine sehr hohe Lesegeschwindigkeit.

Trotzdem optimieren

Aktuelle Optimierungsversuche von Dateisystementwicklern haben nicht in erster Linie das Ziel, das Leben einer SSD zu verlängern, sondern diese schneller zu machen beziehungsweise Ermüdungserscheinungen vorzubeugen. Letztere treten bei den meisten Solid-State-Platten spätestens dann auf, wenn sämtliche Blöcke einmal belegt waren.

Die Spezifikation von SSDs sieht hier als Erfrischungskur einen sogenannten ATA-Trim-Befehl vor, der dem Laufwerk mitteilt, welche unbenutzten Blöcke es zurücksetzen und komplett neu beschreiben kann. Obwohl Ted Ts’o bereits seit einiger Zeit eine entsprechende Trim-Funktion in das Dateisystem Ext4 eingebaut hatte [4], arbeitet diese mangels Support durch den Kernel lediglich als Benachrichtigungsfunktion für den Block-Layer im Kernel.

LinuxUser 03/2010 KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland

Hinterlasse einen Kommentar

  E-Mail Benachrichtigung  
Benachrichtige mich zu: