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.
| ext | Extended Filesysten, ein Vorläufer von ext2 | | ext2 | Second Extended Filesystem | | ext3 | Third Extended Filesystem, momentaner Standard | | reiserfs | ReiserFS - nach seinem Erfinder Hans Reiser benannt | | minix | Das ursprüngliche Dateisystem von GNU/Linux | | msdos | Das FAT-Dateisystem das auf Disketten verwendung findet | | vfat | FAT32 Dateisystem welches auf USB-Sticks u.a. verwendet wird | | ntfs | Das Dateisystem aktueller Windows Versionen | | hpfs |
High Performance Filesystem, Dateisystem von OS/2
| | iso9660 | Dateisystem welches auf CDs benutzt wird | | udf | Dateisystem 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. |