Aus LinuxUser 04/2002

Umstieg auf das Ext3-Dateisystem

Das aktuelle Journal

Dateisysteme mit Journal erleichtern den Umgang mit Linux: Stürzt der Rechner ab, muss man beim Neustart nicht die langwierige Überprüfung der Dateisysteme mit „fsck“ abwarten. Wir helfen bei der Umstellung auf Ext3fs und zeigen auch den Weg zurück.

Vor kurzem wurde der Code für das Journaling Filesystem Ext3fs fest in die offiziellen Kernel-Sourcen übernommen – ein Grund mehr, den Nachfolger vom Ext2fs etwas genauer unter die Lupe zu nehmen. Bevor wir uns mit Ext3fs genauer beschäftigen, soll zunächst geklärt werden, welche Bedeutung Dateisysteme haben und welche Probleme auftreten können.

Arbeitsweise

Als Dateisystem wird ein Standard bezeichnet, der angibt, wie Daten auf einem Datenträger abgelegt und später wieder gefunden werden können. Die Frage ist dabei, wie die Speicherung technisch realisiert wird, wie dem Computer also gesagt wird, dass an einer bestimmten Position auf dem Datenträger eine bestimmte Datei liegt.

Linux‘ bisheriges Standard-Dateisystem Ext2fs besteht im Inneren aus einer Struktur aus „Metadaten“; diese beinhalten neben dem Superblock, welcher Informationen über freien Speicherplatz auf dem Datenträger bereithält, auch die sogenannten „Inodes“, die Eigenschaften (Zugriffsrechte, Datei-Attribute, Eigentümer usw.) der einzelnen Dateien im System speichern. In den „Inodes“ wird auch der physikalische Ort jeder Datei auf einem Laufwerk gespeichert. So wird ein Überschreiben von Daten verhindert. Ein Dateisystem erlaubt es also, den verfügbaren Speicherplatz eines Datenträgers logisch zu verwalten.

Probleme

Wenn ein Dateisystem unsachgemäß behandelt wird, endet dies häufig in Beschädigungen der Daten („Daten-Korruption“). Hier unterscheidet man zwischen zwei Typen:

  • Beschädigung von einzelnen Dateien im System
  • Beschädigung der Metadaten Beschädigungen an Dateien im System können z. B. entstehen, wenn ein Benutzer an einem Dokument arbeitet und unerwartet der Strom ausfällt. Wurde das Dokument vorher nicht gespeichert, gehen die letzten Änderungen verloren; ansonsten gibt es jedoch keine Auswirkungen. Ein Problem kann aber dann entstehen, wenn der Strom genau in dem Moment ausfällt, in dem die Datei geschrieben wird: Das Dateisystem befindet sich in einem „undefinierten“ Zustand. Die Datei ist nur unvollständig gespeichert worden und ist damit möglicherweise gar nicht mehr lesbar.

Wirklich gefährlich wird es erst, wenn bei einem Absturz neben einzelnen Dateien auch die Metadaten des Dateisystems beschädigt werden. Der Benutzer kommt mit den Metadaten zwar normalerweise nicht direkt in Kontakt – sie werden nur von Programmen wie chown und chmod verändert. Dennoch kann eine Beschädigung der Metadaten fatale Folgen haben – im schlimmsten Falle können (System-) Programme mit den gefundenen Daten nichts mehr anfangen, so dass das gesamte System unbenutzbar wird.

Um Daten-Korruption vorzubeugen oder bereits beschädigte Daten zu reparieren, bringt jedes Dateisystem ein Check-Tool (fsck, „filesystem check“) mit sich (siehe Tabelle „Dateisysteme und ihre Check-Tools“). Dieses wird vor jedem Mountender Partition gestartet, um Fehler aufzuspüren und zu beheben.

Dateisysteme und ihre Check-Tools

Ext2fs e2fsck oder fsck.ext2
Ext3fs fsck.ext2 oder fsck.ext3
ReiserFS reiserfsck
XFS xfs_repair
JFS fsck.jfs

Dateisystem-Check mit e2fsck

# e2fsck -f /dev/sda6
e2fsck 1.19, 13-Jul-2000 for EXT2 FS 0.5b, 95/08/09
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sda6: 14624/128768 files (5.1% non-contiguous), 67124/257032 blocks

Journaling Filesystems im Überblick

Als Alan Cox 1999 in einem Interview der Zeitschrift c’t [1] gefragt wurde, was seiner Meinung nach Linux bis dato am meisten fehle, gab er zur Antwort: „Im Moment ist das wohl ein Journaling Filesystem“. Und heute? Wir schreiben das Jahr 2002, ReiserFS [2] und Ext3fs sind als Vertreter der Journaling-Filesystem-Spezies fest in die Kernel-Sourcen integriert. Auch SGI und IBM haben mit XFS [3] und JFS [6] mittlerweile Journaling Filesystems für Linux zugänglich gemacht. Doch was genau unterscheidet ein Dateisystem wie Ext3fs von einem Dateisystem ohne Journal wie etwa Ext2fs?

Dateisysteme, die nicht korrekt vom System abgemeldet (sprich „unmounted“) werden, werden vor dem nächsten Mounten wie oben beschrieben auf Fehler überprüft, so dass korrupte Dateien repariert werden können. Da e2fsck jede Datei im System gründlichst unter die Lupe nimmt, kann ein solcher Check bei großen Partitionen sehr lange dauern. An diesem Punkt setzen die Journaling Filesystems an: Zu jedem führt das Betriebssystem ein Journal, in das alle Dateien eingetragen werden, die zum jeweils aktuellen Zeitpunkt geöffnet sind. Wenn nun ein Laufwerk nicht ordentlich vom System abgemeldet wird, liest das Dateisystem vor dem nächsten Mounten das Journal ein und überprüft nur die dort eingetragenen Dateien auf ihre Konsistenz und Integrität. Dies geht wesentlich schneller als ein Check des gesamten Dateisystems. So entfällt die lästige Wartezeit beim Neustart nach einem Absturz oder Stromausfall.

Es sei noch darauf hingewiesen, dass ein Dateisystem mit Journal keineswegs als Backup-Alternative verstanden werden sollte: Journaling Filesystems sorgen lediglich dafür, dass der Rechner nach einem Absturz schneller wieder auf die Beine kommt, sind aber nicht immun gegen Daten-Korruption. Ein ausgereiftes Dateisystem-Check-Tool ist also auch bei Journaling Filesystems unerlässlich.

Ext3fs

Ext3fs ist der direkte Nachfolger vom Ext2fs, dem „second extended file system“. Dieses ist seit langem das Standard-Dateisystem für Linux und wird von allen Distributionen standardmäßig unterstützt. Da Ext2fs kein Journaling bietet, hat sich Stephen Tweedie daran gemacht, eine Journal-Erweiterung für Ext2fs zu programmieren; das Ergebnis der Bemühungen ist Ext3fs. Ext3fs ist also kein völlig neues, unerprobtes Dateisystem, sondern die Ergänzung von Ext2fs um einen Journal-Treiber. Das bedeutet für Ext3fs einen großen Vorteil gegenüber anderen Journaling Filesystems: Ext3fs ist zu Ext2fs vollständig auf- und abwärtskompatibel. Das heißt, dass es möglich ist, eine Ext2fs-Partition „on the fly“ auf Ext3 umzustellen und diesen Schritt auch unkompliziert wieder rückgängig zu machen. Es bedeutet außerdem, dass sich eine Ext3fs-Partition als Ext2fs-Dateisystem mounten lässt, was unter Umständen sehr nützlich sein kann, wenn man sein System (etwa zu Wartungszwecken oder bei Überschreiben des Boot-Sektors) von einer Boot-Diskette ohne Ext3fs-Support starten muss. Ein dritter Vorteil ist, dass Ext3fs aufgrund der Abwärtskompabilität das Dateisystem-Check-Tool e2fsck von Ext2fs benutzen kann. Damit verfügt Ext3fs von Anfang an über ein praxiserprobtes und äußerst zuverlässiges Dateisystem-Check-Programm, auf welches man bei anderen Journaling Filesystems lange Zeit warten musste. Aus diesen Gründen wird sich dieser Artikel nur mit Ext3fs und dessen Konfiguration beschäftigen.

LinuxUser 04/2002 KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland

Hinterlasse einen Kommentar

  E-Mail Benachrichtigung  
Benachrichtige mich zu: