= 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 |http://www.heise.de/open/Das-Dateisystem-Ext3-tunen--/artikel/104859/0] auf Heise Open
* FestplatteAufraeumen - Platz sparen z.B. durch Hardlinks und SparseFiles