Nach über vier Jahren Entwicklung scheint das Reiser-Dateisystem dieses Jahr den Schritt zur Version 4 zu schaffen. Das Entwicklerteam um Hans Reiser programmierte Reiser 4 von Grund auf neu. Derzeit testet das Team die Performance und Stabilität des Nachfolgers von ReiserFS und bereinigt kleinere Fehler. Das neue Journaling-Dateisystem beherrscht unter anderem atomare Transaktionen und lässt sich durch Plugins erweitern. Auf der Namesys-Homepage[1] steht eine Testversion zum Download bereit (siehe Kasten "Installationsanleitung").
|
Diese Anleitung bezieht sich auf Kernel 2.6.5 und die offiziellen Reiser-4-Snapshots vom 26. März 2004[2]. Bei Patches zu neueren Kernelversionen[3] ist Vorsicht geboten. Sie arbeiten nicht immer fehlerfrei.
-
Laden Sie die Kernelquellen vom offiziellen Server[4] und
entpacken sie im Verzeichnis »/usr/src/«.
-
Kopieren Sie das Patch »all.diff.gz« von der
Namesys-Homepage in das Verzeichnis des neuen Kernels »/usr/src/linux-2.6.5/«.
-
Wechseln Sie ins Kernelverzeichnis und wenden das Patch mit dem
Befehl »zcat all.diff.gz | patch -p1« an.
-
In der Datei »fs/reiser4/as_ops.c« fehlt in Zeile
570 der Code »->host«. Die korrekte Zeile lautet:
-
Ersetzen Sie in der Datei
»fs/reiser4/plugin/tail.c« die Zeile 477
»mapping->dirtied _when = jiffies|1;« durch den korrigierten Eintrag:
-
Starten Sie als Root ein Kernel-Konfigurationsprogramm, etwa
»make xconfig«. (QT-3-Entwicklerpakete sind erforderlich.)
-
Unter »File systems« sollte »Reiser4«
bereits ausgewählt sein. Es funktioniert wahlweise statisch oder als dynamisch ladbares Modul, siehe Abbildung 1.
-
Nach dem Speichern der Konfiguration kompilieren Sie wie
gewohnt den Kernel mit »make bzImage modules
modules_install« und kopieren dann den fertigen Kernel in das
Zielverzeichnis, zum Beispiel »cp arch/i386/boot/bzImage
/boot/vmlinuz-reiser4«. Überschreiben Sie nach Möglichkeit keinen alten Kernel.
-
Benutzen Sie zum Booten die Initial RAM-Disk (wie bei Suse),
müssen Sie diese mit dem Befehl »mkinitrd« neu anlegen.
-
Um den Kernel einfacher zu booten, ist ein Eintrag in der
Grub-Konfigurationsdatei »/boot/grub/menu.lst« zu empfehlen.
-
Die Datei »/etc/fstab« sollte keine
distributionsspezifischen Optionen enthalten, mit denen der
Standardkernel nicht zurechtkommt. Unter Suse 9.1 bereiten zum
Beispiel die Optionen »acl« und »user
_xattr« Probleme. Im Zweifelsfall genügt der Eintrag »rw,exec«.
-
Nun können Sie den neuen Kernel booten. Danach müssen
Sie noch »libaal-0.5.0.tar.gz« und
»reiser4progs-0.5.3.tar.gz« installieren. Das geht wie
gewohnt mit »./configure && make && make
install«. Sollte Reiser4progs die installierten
Libaal-Bibliotheken nicht finden, hilft der Aufruf von »ldconfig«.
-
Reiser-4-Partitionen können Sie anschließend mit
»/usr/local/sbin/mkfs.reiser4 Partition« anlegen und dann mit »mount« einhängen.
|
Abbildung 1: Im gepatchten Kernel ist Reiser 4 unter »File systems« zu finden. Das Häkchen bedeutet, dass das System fest in den Kernel integriert wird. Durch einen Doppelklick mutiert das Häkchen zum Punkt. Reiser 4 lässt sich dann als Kernelmodul nachladen.
Grundlegender Aufbau
Vereinfacht besteht das Reiser-4-Dateisystem aus zwei Schichten: der Speicherschicht (Storage Layer) und der semantischen Schicht (Semantic Layer). Auf beiden befinden sich Objekte. Reiser 4 unterscheidet nicht zwischen Dateien und Verzeichnissen, sondern behandelt beide gleichermaßen als Objekte. Jedes Objekt auf dem Dateisystem verfügt über eine Objekt-ID und einen Schlüssel (Key), der teilweise aus der Objekt-ID generiert wird.
Wie der Name vermuten lässt, sind Keys die Schlüssel zum Dateisystem. Reiser 4 findet jedes Objekt über seinen Schlüssel. Es ist sogar möglich, über den Schlüssel einen bestimmten Abschnitt einer Datei zu finden. In der Grundeinstellung nutzt Reiser 4 neuerdings lange Schlüssel (zum Beispiel »10001:1:746f6d20776169:0:10278:0«), die aus folgenden Elementen bestehen:
- Major Locality
- Minor Locality
- Anordnung (Ordering)
- Unbenutzt (immer 0)
- Objekt-ID
- Offset
Während die Speicherschicht für die eigentliche Lagerung und das Anordnen der Daten in den Baumstrukturen zuständig ist, übernimmt die semantische Schicht das Auflösen von Dateinamen zu Schlüsseln. Mit Hilfe des Schlüssels findet das Filesystem dann in der Speicherschicht die gesuchten Bytes. Der Offset gibt die Byte-Position innerhalb eines Objekts an.
Plugins für das Filesystem
Reiser 4 verwirklicht Dateioperationen mit Hilfe von Plugins. Die grundlegenden Unix-Dateiverwaltungsarbeiten erledigt das Dateisystem-interne File- und Directory-Plugin. Jede Datei und jedes Verzeichnis besitzt zudem eine Plugin-ID, die eine Sammlung externer Methoden bezeichnet. Über diese Methoden lassen sich Dateisystem-externe Operationen mit dem File ausführen.
Dateisystem-externe Operationen sind Möglichkeiten zur Dateiverwaltung, die nicht im Filesystem integriert sind. Sie erlauben es externen Programmen, in die Interna des Dateisystems einzugreifen, ohne dazu einen neuen Kernel kompilieren zu müssen. Reiser 4 besitzt zurzeit über 30 interne Plugins, die der Befehl »fsck.Reiser 4 -l« listet. Externe Plugins sind noch nicht bekannt. Wünschenswert wäre unter anderem ein Quota-Plugin - diese Funktion unterstützt Reiser 4 noch nicht.
Das Anordnen der Objekte wird vom File- und vom Hash-Plugin übernommen. Im Gegensatz zu den meisten Linux-Dateisystemen ordnet Reiser 4 Dateien nicht nach dem Erstellungsdatum, sondern alphabetisch. Bei Dateien, deren Name länger als 15 Buchstaben ist, entscheiden zunächst die ersten acht Buchstaben, dann der Hashwert des gesamten Dateinamens.
Zum Anordnen der Verzeichnisse benutzt Reiser 4 das Hash-Plugin. Es benutzt derzeit Cookies, die aus dem Hashwert und einem Erstellungszähler bestehen. Statt dieser noch vom ReiserFS übernommenen Notlösung soll in Zukunft das File-Plugin auch das alphabetische Ordnen von Verzeichnissen mit übernehmen.
« Zurück
1
2
3
4
5
6
Weiter »