|
|
|
|
![]() Druckversion |
Einer der immer noch lebendigsten Eindrücke des diesjährigen
Chemnitzer Linux-Tages (über den an dieser Stelle später noch
mehr zu lesen sein wird) war zweifelsohne der erste Kontakt mit dem relativ
neuen Reiser-Filesystem.Es waren dort die ersten Experimente mit Computern zu bestaunen, auf denen Linux nicht mehr auf Basis des nunmehr schon fast klassischen ext2-Dateisystems, sondern mit Reiser-FS lief.
....ohne vorheriges Herunterfahren hatte bislang bekanntlich
zur Folge, daß beim nächsten Booten des Systems der
unvermeidliche Filesystem-Check sich anschickte, sämtliche zu mountenden
ext2-Partitionen hinsichtlich eventueller Fehler zu überprüfen.
Normalerweise nur ein lästiger, weil bei großen
Laufwerkskapazitäten
enorm zeitaufwendiger Prozeß, hatte dieser Check doch auch hin und
wieder zur Folge, daß sich ein Filesystem als stark inkonsistent
erwies, was im ungünstigsten Falle auch schon mal mit einem mke2fs
endete. Mindestens ebenso lästig erwies sich im Hinblick auf den FS-Check
die Tatsache, daß dieser zudem noch an eine maximale Anzahl von Mounts
oder aber eine bestimmte Zeitspanne (Standard: 6 Monate) gebunden war.
All dies ist generell nur lästig, kann aber im Hinblick auf
High-Availability-Server,
die auch im Falle eines wie auch immer verursachten Absturzes enorme
Unannehmlichkeiten
mit sich bringen. Entsprechend ist der Ruf nach einer Alternative berechtigt und eine angemessene Lösung für derlei Probleme scheint der Einsatz eines sogenannten Journaling-Filesystems zu sein. Wie vielleicht bekannt ist, rühren die meisten der diesbezüglichen Probleme mit dem ext2-System daher, daß das Betriebssystem Daten aus geöffneten Dateien nicht sofort auf die Platte schreibt, sondern aus Effizienzgründen zunächst in einem Zwischenspeicher hält und dann erst später auf das Speichermedium bringt (die Platte wird synchronisiert). Es ist entsprechend leicht vorstellbar, daß nach einem Crash kurz vor einer solchen Synchronisation einige (die geöffneten und noch nicht wieder geschriebenen) Dateien in einem zweifelhaften Zustand sind, was letztlich dazu führt, daß im Verlauf des nächsten Bootvorganges, bzw. genauer gesagt der Filesystem-Prüfung, jede der Dateien auf dem Filesystem auf Inkonsistenz untersucht werden muß. Genau hier setzt das Journaling-Filesystem ein: In einem sogenannten "Journal" wird jederzeit festgehalten, welche Dateien in Verwendung bzw. geöffnet sind. Damit ist im Falle eines Ausfalls klar, welche Dateien inkonsistenzgefährdet sind und damit überprüft werden müssen. Leicht vorstellbar, daß der FS-Check und eventuelle Recovery-Maßnahmen deutlich schneller vonstatten gehen...
Auf diversen kommerziellen Unix-Systemen sind Journaling
Filesystems längst gang und gäbe (man beachte nur das IRIX von
SGI, deren Dateisystem, das XFS, mittlerweile auch zur Freude von Teilen
der Linux-Gemeinde, auf GPL-Basis umgearbeitet wird), doch auch im
Linux-Sektor
findet man mittlerweile einige interessante Ansätze. Gegenwärtig
der wohl am weitesten diskutierte und auch ausgereifteste Vertreter dieser
Zunft ist das von Hans Reiser entworfene und mittlerweile unter Finanzierung
von SuSE weiterentwickelte reiserfs. Es verspricht neben den Journaling-Aspekten
auch Performance-Gewinne durch eine moderne Art der Plattenverwaltung. Zunächst fällt auf: Der Weg zum Linux-System auf ReiserFS-Basis ist momentan (will man sich nicht gerade mit der aktuellen SuSE-Distribution herumschlagen, die eine Installation direkt in dieses Filesystem hinein anbietet) noch relativ lang und unbequem und sieht in den Grundzügen so aus:
Trotz (oder gerade wegen?) der unhandlichen Installation galt es also einen Versuch zu unternehmen, auf diesem Wege ein brauchbares Resultat zu erhalten. Allerdings wurde hierbei nicht der Weg gegangen, ein bestehendes System auf Reiser umzustellen, sondern auch gleich einmal eine komplette Neuinstallation durchzuführen. Als Distribution fand das von mir momentan favorisierte Stampede Linux 0.89 Verwendung. Und dann konnte es auch schon losgehen...
Die Plattenaufteilung meiner vorherigen Installation wurde weitestgehend beibehalten (separate Partitionen für /, /home und /usr , insgesamt etwa 7 GByte), dazu kamen noch eine /boot- und eine Installationspartition für das Basissystem. Problemlos die Installation des Systems: Wie bei Stampede üblich, Booten mit einer Boot- und einer Root-Diskette, danach Formatieren der Installationspartition und eine längere, mit der Lektüre von William Gibsons "Idoru" verbrachte Zwangspause, während der Installer die *.slp - Pakete des Systems auf die Festplatte brachte. Da (was sonst wäre auch zu erwarten ;) ) mein gesamter Mail- / Usenet- / Webzugriff im Linux stattfindet und ich nicht recht im Klaren war, was ich von der ReiserFS-Installation zu erwarten hatte, war die Entscheidung an diesem Punkt der Installation die, das System komplett einzurichten, die benötigte Software einzuspielen und einen reibungslosen Betrieb im normalen Umfeld zu ermöglichen. Danach eine Kopie des so erreichten Arbeitssystems in die ReiserFS-Partitionen zu schieben und zu prüfen, ob diese den Ansprüchen gerecht wird. Der nächste logische Schritt war, das System erst einmal zu aktualisieren und gleichzeitig ReiserFS-tauglich zu machen. Dies bedeutete:
That's it, für den Moment. Nach einem Neubooten des Systems sollte, wenn alles nach Wunsch verlaufen ist, die Ausgabe von >> cat /proc/filesystemsden Eintrag reiserfs enthalten, und die wesentlichsten Vorarbeiten sind zunächst erledigt. Dem folgte in meiner Installation die Einspielung und Kompilierung einiger für meine Nutzung wesentlicher Software (Stichwort Xfree 3.3.6), die Installation der ALSA-Treiber und all jene Aufgaben der Nachinstallation, bevor schließlich das System wie gewünscht arbeitete. Nun zum eigentlich etwas kritischen Teil der Installation, dem
Zunächst jedoch wieder einige Vorbereitungen: Mittels
"mkreiserfs" wird auf den entsprechenden Partitionen ein Dateisystem angelegt,
im Falle meiner Beispiel-Installation waren das /usr und /
(/home blieb sicherheitshalber vorerst auf ext2 ). Derart gewappnet, stand der langwierigen Kopiererei nichts mehr im Wege: Der Reihe nach wurden / , /usr (jeweils mit "-t reiserfs") und /boot (wie gehabt mit "-t ext2") an /mnt gemounte t und jeweils die entsprechenden Dateien (wahlweise mittels "cp" oder einer Pipe mit "tar", z.B. >> (cd / && tar cplf - . --exclude boot --exclude usr) | ( cd /mnt && tar xpf - )zum Kopieren von / und Verzeichnisse in die zugehörige neue Partition kopiert. Abschließend (etwa 15 Seiten aus "Idoru" später...) wurde die vorher unter /root abgelegte modifzierte fstab Richtung /mnt/etc an ihren neuen Platz gebracht und das System neu gebootet.
....verlief dann auch gänzlich unspektakulär: Abgesehen von einigen kleinen Flüchtigkeitsfehlern in der /etc/fstab bootete das kopierte Betriebssystem schnell und problemlos bis zum Login-Screen. Ein Blick auf /etc/mtab zeigte: thunderbird:cat /etc/mtab /dev/hdb1 / reiserfs rw 0 0 /dev/hda3 /usr reiserfs rw 0 0 /dev/hdb2 /boot ext2 ro 0 0 /dev/hda10 /home ext2 rw 0 0 /none /dev/pts devpts rw,gid=5,mode=620 0 0 proc /proc proc rw 0 0Demnach wurden die neuen Partitionen ordnungsgemäß gemountet, was sich bestätigen ließ durch einige Arbeiten mit dem System: Alles funktionierte tadellos.
Selbst Brachialtests konnten das System nicht aus der Ruhe bringen: Ganz gleich, bei welcher Aktivität der Systemabsturz durch Betätigung der Reset-Taste simuliert wurde (Beispiel: Berechnen eines TeX-Dokuments mit gerade aktivem Metafont, Kopieren des /usr/doc - Verzeichnisses nach /tmp usw.) langwierige Plattenprüfungen blieben aus, das System bootete immer etwa gleichschnell und problemlos. Die langen Wartezeiten, die ext2 in solchen Situationen sichergestellt hätte, fehlten ebenso wie der Sprung in den Single-User-Runlevel zur Reparatur einer Partition.
Mittlerweile läuft ReiserFS knapp einen Monat auf meinem System, und bislang sind die Ergebnisse ausgesprochen befriedigend. Es bliebe zu testen (sprich: zu messen), wie die neben dem Journaling angepriesenen Performance- Gewinne durch die verbesserte Plattenorganisation ins Gewicht fallen, und wie das Filesystem nach längerem Betrieb aussieht. Die erste Probe hat das ReiserFS jedenfalls bestanden...
.... zum reiserfs gibt es indes gleich mehrere: Da wäre zunächst
ext3 als logischer Nachfolger des gegenwärtigen ext2-Dateisystems,
der sich den Entwicklern zufolge noch im frühen Alpha-Stadium
befindet und somit auch noch nicht für den Einsatz in einer 'produktiven'
Umgebung in Frage kommt. Vorteilhafterweise ist hier zu bemerken, daß
die (oben geschilderte) Kopiererei der installierten Distribution beim
Umstieg von ext2 auf ext3 entfällt (lediglich das Journal für
jede ext3-zu-werdende Partition muß manuell eingerichtet werden)
und der Schritt entsprechend einfach wieder rückgängig zu machen
ist, so daß ein Test dieses Systems in naher Zukunft ebenfalls realisiert
werden wird. Der experimentierfreudige Linuxer sei jedoch gewarnt, reiserfs
und ext3 in denselben Kernel-Tree einzuspielen, durch diverse Gleichheiten
bei der internen Namensgebung wäre mit schwerwiegenden Problemen
zu rechnen.
Links und Informationen:
Platz für Kommentare & Fragen:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|