freeX: Tips & Tricks

Die ausschließlichen Vertriebsrechte an diesem Artikel liegen beim Computer- & Literaturverlag (C&L). Der Artikel darf nicht kopiert oder gar erneut in einer Zeitschrift oder einem Buch veröffentlicht werden ohne vorherige Erlaubnis von C&L. Der Verlag gestattet freundlicherweise die Veröffentlichung auf diesen Seiten. Wer öfter auf diesen Hinweis trifft, sollte sich überlegen, die Zeitschrift freeX zu abonnieren.

Aus Ext2 mach Ext3

Auf Computern, die häufig neu gestartet werden oder an denen große Festplatten angeschlossen sind, ärgert man sich beim Booten oft über den viel zu lange dauernden Festplattencheck, insbesondere nach einem Crash. Ein Crash ist mit Linux zwar recht selten, doch wer immer mal wieder im Kernel bastelt, wird kaum ohne Abstürze auskommen. Eine Möglichkeit, den Bootvorgang zu beschleunigen und die Integrität der Daten auf der Festplatte besser gewährleisten zu können besteht darin, ein Dateisystem mit Journal zu verwenden.

In diesem Journal wird für Schreibzugfiffe ein Logbuch geführt, in dem eingetragen wird, was wo wie auf der Partition geändert wurde. Wenn der Computer crasht oder z.B. durch einen Stromausfall bedingt unsauber herunterfährt, befinden sich die Daten auf der Festplatte dank Pufferung oftmals nicht in dem Zustand, in dem der Kernel sie geglaubt hat.

Wenn der Rechner nach einem derartigen Ereignis wieder gestartet wird, muß mit einem Journal beim Hochfahren hauptsächlich dieses Logbuch gelesen und der Festplatteninhalt entsprechend rekonstruiert werden. Das geschieht auf einer 120GB großen Festplatte signifikant schneller als ein herkömmlicher Plattencheck.

Für Linux gibt es mehrere Dateisysteme, die ein Journal anbieten. Dieses sind XFS von IBM, JFS von SGI sowie Ext3 von den Kernel-Entwicklern von Linux. Allerdings ist nur eines dieser Dateisysteme in den späten 2.4er Kernel und die 2.5er Linie integriert. Dabei handelt es sich um die Erweiterung des Linux-typischen Dateisystems »ext2«, nämlich »ext3« von Ted T'so und Stephen Tweedie. Es ist abwärtskompatibel, womit ein Umstieg erheblich erleichtert wird. Die betroffene Partition muß daher nicht mehr neu formatiert werden. Zudem kann man sehr einfach wieder zum alten Dateisystem »ext2« zurückschalten, da das Dateisystem auch auf Festplattenebene nicht geändert wird.

Für den Umstieg muß zuerst ein Kernel her, in dem das ext3-Dateisystem enthalten ist, ab Red Hat 7.2 ist es z.B. standardmäßig im Kernel eingebunden. Schlimmstenfalls muß ein neuer Kernel compiliert werden und dabei die Option CONFIG_EXT3_FS ("Ext3 journalling file system support") eingeschaltet werden. Als nächstes wird eine hinreichend aktuelle Version des Programms »tune2fs« (aus dem »e2fsprogs«-Paket) benötigt, das den Parameter »-j« unterstützt. Mit dem Befehl »tune2fs -j /dev/hda2« wird anschließend das Journal für das Dateisystem auf der Partition »/dev/hda2« angelegt.

Wenn das Dateisystem bereits im laufenden System eingebunden ist (mit »mount« als Extended-2), wird mit diesem Befehl die Datei ».journal« im Hauptverzeichnis dieses Dateisystems angelegt. Nachdem das Journal angelegt ist, wird das Dateisystem mit »mount -t ext3« ins System eingebunden, falls es noch nicht geschehen ist. Damit das Dateisystem beim nächsten Booten auch gleich als »ext3« eingebunden wird, wird als nächstes der Typ des Dateisystems in der Datei »/etc/fstab« von »ext2« auf »ext3« geändert.

Ein Nebeneffekt der Umstellung ist eine Verbesserung der Geschwindigkeit bei langandauernden Schreibzugriffen. Das Dateisystem Extended-3 versucht, die Bewegungen des Schreibkopfes auf den Festplatten zu optimieren, wodurch ein höherer Durchsatz erziehlt wird. Darüberhinaus bietet das Ext3-Dateisystem drei Arbeitsmodi, mit denen es für unterschiedliche Einsatzgebiete optimiert werden kann. Diese Operationsmodi werden in der Datei »/etc/fstab« im Feld für Optionen eingetragen. Im Einzelnen sind dieses:

»data=writeback«
verringert die Sicherheit bezüglich Datenintegrität ein wenig. Nach einem Crash kann es passieren, daß in einigen Dateien wieder alte Daten auftauchen. Das entspricht ungefähr dem Verhalten des bisherigen Extended-2-Dateisystems ohne Journal. Hauptsächlich wird mit diesem Modus der lange Plattencheck beim Booten vermieden, ohne weitere Sicherheiten zu bieten.
»data=ordered«
ist die Voreinstellung wird dann verwendet, wenn kein Modus angegeben ist. In diesem Modus wird garantiert, daß die Daten mit dem Dateisystem konsistent sind und daß nach einem Crash keine alten Daten mehr in den Dateien auftauchen. Dieses ist der sicherste Modus.
»data=journal«
benötigt in den meisten Fällen ein größeres Journal, um einen Geschwindigkeitsvorteil zu bieten. Daher dauert ein Recover nach einem Crash länger als für die anderen Modi. Für wichtige Datenbankanwendungen ist dieser Modus jedoch wahrscheinlich der beste.
Martin Schulze
Quelle: freeX 5/02