Linux-Umsteiger.de

Und der Einstieg fällt leicht!
Tux
Home
Programme
Tutorials
Links
Unterhaltung
Projekte


GNU/Linux Dateisysteme
1. Was genau tut ein Dateissytem?
 

Die Aufgabe eines Dateisystems besteht darin, die einzelnen Datenblöcke einer Datei auf einen Datenträger abzulegen. Es legt fest, an welcher Stelle des Datenträgers sie gespeichert werden sollten und archiviert diese Informationen in einer Tabelle. Die Zugriffs- und Lokalisierungsstrategie eines Dateisystems hat direkten Einfluss auf die Durchsatzrate der Schreib- und Lesezugriffe auf das Medium und auf die Zuverlässigkeit des Dateisystems an sich.

2. Welche Dateisysteme gibt es?
 

Das (Standard-)Dateisystem von GNU/Linux heißt ext3. Sie kennen ja bereits das Dateisystem von DOS und von Windows, nämlich FAT bzw. FAT32. WinNT, 2000, XP und Vista haben ein eigenes System, es heißt NTFS (New Technology Filesystem). In der folgenden Tabelle sind die wichtigsten Dateisysteme angeführt.

extExtended Filesysten, ein Vorläufer von ext2
ext2Second Extended Filesystem
ext3Third Extended Filesystem, momentaner Standard
reiserfsReiserFS - nach seinem Erfinder Hans Reiser benannt
minixDas ursprüngliche Dateisystem von GNU/Linux
msdosDas FAT-Dateisystem das auf Disketten verwendung findet
vfatFAT32 Dateisystem welches auf USB-Sticks u.a. verwendet wird
ntfsDas Dateisystem aktueller Windows Versionen
hpfs

High Performance Filesystem, Dateisystem von OS/2

iso9660Dateisystem welches auf CDs benutzt wird
udfDateisystem für CD-RWs und DVDs


ext2:

ext2 bewältigt seine Verwaltungsaufgabe, indem es den vorhandenen Speicherplatz in Blöcke gleicher Größe (z.B. 1024 Byte) einteilt und diese Blöcke durchnummeriert. Die Menge der Blöcke wird anschließend in verschiedene Gruppen aufgeteilt, die jeweils zur Speicherung unterschiedlicher Datentypen genutzt werden. Von ”Gruppe“ kann man bei der ersten Gruppe in der Reihe eigentlich nicht sprechen. Es handelt sich hierbei um einen einzelnen Block, den Bootblock oder Master Boot Record. Er enthält darüber hinaus eine Menge von Minimaldaten, die zum Start des Betriebsystems notwendig sind. Die zweite Gruppe“ umfasst ebenfalls nur einen einzigen Block, der Superblock genannt wird. Im Superblock wird festgelegt, wie groß die nun folgenden Gruppen sind. Er enthält darüber hinaus Informationen über das gesamte Filesystem. Aus Sicherheitsgründen wird der Superblock repliziert. Die dritte und die vierte Gruppe fungieren als eine Art von Landkarten (Bitmaps) über die beiden letzten Gruppen. Die Blöcke der dritten Gruppe sind als Inode Bitmap organisiert. Hier wird protokolliert, welche Blöcke für Inodes frei sind. In der vierten Gruppe findet sich eine entsprechende Bitmap über die verfügbaren Blöcke für Daten. In der fünften Gruppe liegt der eigentliche Speicherplatz für Inodes (je acht Inodes können bei einer Blockgröße von 1024 Bytes in einem Block gespeichert werden). Die sechste Gruppe dient als Speicherplatz für Daten (1024 Bytes pro Block), Hier und nur hier werden die eigentlichen Daten gespeichert, die anderen fünf Gruppen sind der Verwaltungsüberbau. Wichtigste Größe in einem UNIX-Filesystem und damit auch ext2 sind die Inodes Informationsknoten, die mit Ausnahme des Dateinamens alle für eine Datei relevanten Daten enthalten. So werden hier gespeichert:

Benutzer- und Gruppen ID

Zugriffsrechte

Größe der Datei

Anzahl der Links, die auf diese Datei verweisen

Daten der Erstellung, letzten änderung oder Löschung dieser Datei

Verweise auf die ersten zwölf Blöcke dieser Datei

wenn nötig: Ein-, zwei, oder gar dreifach indirekte Verweise auf weitere Datenblöcke


Eine Datei besteht also aus ihrem entsprechenden Inode und aus mehreren Datenblöcken, die die eigentlichen Daten enthalten. Die Verwaltungsinformationen im Inode und der eigentliche Dateiinhalt der Datei sind vollkommen getrennt und könne auch unabhängig voneinander bearbeitet werden. Wer eine Datei in ein neues Verzeichnis verschiebt, ändert den Inode und die entsprechenden Verzeichniseinträge, aber niemals wird er die Daten direkt ändern!


ext3:

ext3 baut im wesentlichen auf ext2 auf. Es ist seit 2.4.16 Bestandteil des Linuxkernels und ist momentan das Standarddateisystem. Die große Neuerung ist, dass sich ext3 nun um ein „journaling file system“ handelt. Besonders angenehm ist, dass man ganz einfach ein bestehendes ext2-Filesystem in ein ext3-Filesystem umwandeln kann. Dazu benötigt es lediglich 3 einfache Dinge:

tune2fs -j /dev/hdXX

ändern Sie in der Datei /etc/fstab die betreffende Zeile von ext2 in ext3 um.

tune2fs -i 0 -c 0 /dev/hdXX


3. Was genau ist ein „journaling file system“?

Daten, die aus dem Hauptspeicher auf eine Platte geschrieben werden sollen, werden vom Betriebssystem nicht direkt auf die Platte geschrieben, sondern zunächst in einem Zwischenspeicher vorgehalten, und später auf die Platte übertragen. Diesen Vorgang nennt man auch Synchronisieren der Platte. Da nun bei unsanftem Aushängen eines Dateisystems Daten aus dem Zwischenspeicher noch nicht auf die Platte geschrieben worden sei können, müssen in einem ext2-Dateisystem alle Dateien auf Konsistenz hin geprüft werden, was bei großen Dateisystemen entsprechend lange dauert. Ein journaling file system hingegen unterhält ein Journal, in dem alle geöffneten Dateien verzeichnet werden, sodass im Falle eines Crashes nur diese Dateien auf Konsistenz hin überprüft werden müssen.

Autor / Lizenz: Wolfgang Neudorfer / GFDL

Google