ext3 - Filesystem #
ext3 ist ein Journaling Filesystem wie das ReiserFS. Nachdem ich mich vor einiger Zeit bereits mit ReiserFS beschäftigt habe, ist ja inzwischen auch ext3 in den Standard-Kernel-Baum eingeflossen. Also musste ich auch damit herumspielen. Inzwischen glaube ich, das ext3 auf Dauer das Rennen machen wird, also sollte man sich direkt damit anfreunden.
Warum Journaling Filesysteme? #
Journaling Filesysteme führen bei Schreibzugriffen ein sog. Journal. Das ist eine besondere Datei, in der Änderungen am Dateisystem (also Schreibzugriffe) vermerkt werden, bevor sie durchgeführt werden. Normalerweise merkt man da nichts von. Falls aber der Computer abrupt aus seiner Arbeit gerissen wird, weil er z.B. abgestürzt ist (gibts bei Linux ja bekanntlich nicht) oder der Strom ausgefallen ist, kommt der Unterschied zu Tage. Beim Wiedereinschalten weiss ein normales Dateisystem nicht, ob es vielleicht gerade mitten in der Änderung eines Directorys abgestürzt ist. Welche Daten gehören jetzt zu welchem Eintrag? Stimmt die Belegungstabelle der Festplatte überhaupt noch oder ist die Datei, für die schon Platz reserviert wurde, nie geschrieben worden? Um diese Fragen zu klären, machen normale Linux-Systeme (mit einem ext2-Dateisystem) beim Hochfahren nach einem Absturz einen Plattencheck. Je nach Plattengrösse und Rechner kann das bis zu einer halben Stunde dauern. In der Zeit geht dann nix. Was für den Heimanwender lästig ist, ist für einen produktiv eingesetzten Rechner unmöglich.
Jetzt kommt das Journal ins Spiel. Ein Journaling Filesystem schaut ins Journal, wo gerade gearbeitet wurde. Diese Bereiche werden dann gecheckt, ohne, daß die ganze Platte durchgegangen werden muss. Meistens muss sogar überhaupt nichts gecheckt werden, weil halt in der Millisekunde des Absturzes der Rechner gar nichts auf die Platte geschrieben hat.
Warum ext3? #
Ich persönlich glaube, daß es der Standard werden wird. ReiserFS ist bereits länger im stabilen Kernel und es läuft auch schon länger unter Linux. Wenn man der Webseite glauben darf, ist ReiserFS auch schneller und Platzeffektiver. Trotzdem hat ext3 einen entscheidenden Vorteil gegenüber alle anderen journaling Filesystemen: Es ist kompatibel zu ext2. Man kann eine vorhandene ext2-Partition einfach in ext3 umwandeln. Man kann eine ext3-Partition auch als ext2 mounten (weil man z.B. eine Rescue-Disk nur mit ext2-Treiber hat). Und man kann die bekannten und lange bewährten Check- und Rettungstools von ext2 weiterbenutzen. Meine Reiser-Partition hat im Gegensatz zu meinen ext2-Partitionen noch nie ein Problem gehabt. Trotzdem graut mir vor dem Moment, wo das doch einmal der Fall sein sollte.
Jetzt kann man natürlich sagen: Windows ist auch nur Marktführer, weil es MS-DOS-kompatibel ist. Deshalb benutze ich es noch lange nicht. Nun gut - diese Leute sollten also ReiserFS auf jeden Fall ausprobieren, da es nach Aussage seines Autors ein überlegenes Konzept ist. Für die, die auch ext3 probieren wollen, gibts hier eine Schnellanleitung:
Vorbedingungen #
- ext3 kann als Modul oder fest in den Kernel einkompiliert werden. Will man von einer ext3-Partition booten, muss es jedoch einkompiliert sein. Der Kernel erkennt dann den Partitionstyp automatisch.
- Man sollte die aktuellste Version der ext2/3-Tools (Debian-Paket e2fsprogs) installieren
- Man sollte die aktuellste Version des mount-Befehls (Debian-Paket mount) installieren
Umbau auf ext3 #
Bei Reiser habe ich mich bisher noch nicht getraut, die root-Partition umzustellen. Außerdem gibt es keine Installationstools etc. (zumindest für Debian), die das unterstützen. Da ext3 ja ext2-kompatibel sein soll, bin ich jetzt mutig und stelle einen Rechner komplett um.
Zuerstmal erzeugt man nachträglich das Journal auf der entsprechenden Partition (z.B. hda1) mit:
tune2fs /dev/hda1 -j
Danach muss man in der Datei /etc/fstab die Zeile, die zu dieser Partition gehört, ändern. Und zwar ersetzt man am besten "ext2" durch "auto". Dann erkennen die Programme, die die fstab benutzen (mount, fschk, etc.) automatisch, welches Filesystem der Kernel beherrscht und benutzen ext2, falls ext3 aus irgendeinem Grunde nicht geht.
Jetzt ein reboot und Fertig! So einfach kann's gehen...
Besonderheiten #
Übrigens wird der komplette Filecheck immer noch ab und an durchgeführt (wird bei obigem Befehl ausgegeben). Der Rhythmus kann eingestellt werden. Dies dient der zusätzlichen Sicherheit, das das Journal ja nur Fehler beim plötzlichen Absturz verhindert. Andere Fehler im Filesystem durch Bugs im FS oder im Kernel, fehlgeleitete Schreibbefehle oder defekte Festplatten sind immer noch möglich. Wer ein Produktionssystem hat, sollte erwägen, den automatischen Check abzuschalten und stattdessen per cron-job regelmässige Checks durchzuführen. Auf diese Art und Weise kann ich entscheiden, wann diese Checks erfolgen. Dies kann dann z.B. ausserhalb meiner Geschäftszeit sein.
Für Workstations und Laptops, die regelmäßig abgeschaltet werden, kann man statt dem "x-mal gemounted" Kriterium auch angeben, daß alle X Tage gecheckt werden soll.
Links #
- http://www.debianplanet.org/article.php?sid=627&mode=thread&order=0 - englischer Artikel zum gleichen Thema
- Artikel Das Dateisystem Ext3 tunen auf Heise Open
- FestplatteAufraeumen - Platz sparen z.B. durch Hardlinks und SparseFiles