VMware ESXi and vSphere Cluster Management
Das Linux-Dateisystem ext3: Journal, Eigenschaften und Einsatz
Lerne ext3 kennen: Journaling, Journal-Modi, Grenzen, Verwaltung mit Linux-Befehlen sowie der Vergleich mit ext2 und ext4.
ext3 steht für „Third Extended File System“ und ist ein Linux-Dateisystem mit integriertem Journal. Es wurde über viele Jahre als verbreitetes Standarddateisystem unter Linux eingesetzt. Heute ist ext4 für neue Installationen meist die bessere Wahl, doch ext3 bleibt bei älteren Systemen, bestimmten Kompatibilitätsanforderungen und bestehenden Installationen relevant.
Was ist ext3?
Ein Dateisystem organisiert Daten auf einem Datenträger. Es verwaltet unter anderem Dateien, Verzeichnisse, Berechtigungen und die Zuordnung von Dateien zu Speicherblöcken. ext3 gehört zur Extended-Dateisystemfamilie des Linux-Kernels.
Die wichtigste Erweiterung gegenüber ext2 ist das Journal. Ein Journal ist ein Protokollbereich, in dem geplante Änderungen am Dateisystem festgehalten werden. Dadurch kann Linux nach einem Stromausfall, einer Kernel-Panic oder einem unerwarteten Neustart leichter feststellen, welche Änderungen begonnen, aber noch nicht vollständig abgeschlossen wurden.
ext3 ist nicht grundsätzlich unbrauchbar. Es hat jedoch gegenüber ext4 geringere Skalierungs- und Leistungsreserven. Typische Einsatzfälle sind alte Linux-Systeme, Umgebungen mit festgelegten Kompatibilitätsanforderungen sowie bereits vorhandene ext3-Installationen, deren Umstellung keinen ausreichenden Nutzen bringt.
Beziehung zwischen ext2 und ext3
ext3 baut auf dem Dateisystemformat von ext2 auf. Viele Verwaltungswerkzeuge und Strukturen sind deshalb bei beiden Dateisystemen ähnlich. ext2 besitzt jedoch kein integriertes Journal.
Ein ext3-Dateisystem kann grundsätzlich ohne aktives Journal im ext2-Modus verwendet werden. Das ist aus Kompatibilitätsgründen möglich, entfernt aber den zentralen Schutzvorteil von ext3. Wird ein Dateisystem als ext2 eingebunden, bietet es nicht die Wiederherstellungsvorteile eines aktiven ext3-Journals.
Journaling und Konsistenz nach Abstürzen
Was wird geschützt?
Bei Dateisystemänderungen sind zwei Arten von Informationen zu unterscheiden:
- Metadaten: Verwaltungsinformationen wie Verzeichnisstrukturen, Dateirechte, Zeitstempel, Dateigrößen und Blockzuordnungen.
- Dateidaten: der eigentliche Inhalt einer Datei.
Ohne Journal kann ein unerwarteter Abbruch dazu führen, dass Metadaten nur teilweise aktualisiert wurden. Beispielsweise kann ein Verzeichniseintrag bereits existieren, während die zugehörige Blockzuordnung noch nicht vollständig geschrieben wurde. Das Dateisystem muss dann häufig umfangreich geprüft werden.
Mit Journal werden Änderungen zunächst in einem Protokollbereich aufgezeichnet. Nach einem Abbruch kann das System die protokollierten Transaktionen nachvollziehen und abgeschlossene Änderungen wiederherstellen oder unvollständige Änderungen verwerfen. Das verkürzt normalerweise die Wiederherstellungszeit und verbessert die Dateisystemkonsistenz.
Journaling schützt nicht automatisch vor verlorenen oder überschriebenen Dateiinhalten. Ein Defekt des Datenträgers, versehentliches Löschen, Schadsoftware oder ein Bedienfehler erfordern weiterhin Backups.
Die Journal-Modi von ext3
Über die Mount-Option data= wird festgelegt, wie ext3 Dateidaten und Metadaten im Verhältnis zum Journal behandelt. Der Modus beeinflusst Schutz, Schreibaufwand und Leistung.
| Option | Was wird protokolliert | Konsistenzverhalten | Leistungsauswirkung | Geeignete Einsatzfälle |
|---|---|---|---|---|
data=journal | Dateidaten und Metadaten | Stärkster Journaling-Schutz; Daten werden vor der endgültigen Ablage im Journal protokolliert. | Höherer Schreibaufwand und meist geringere Leistung. | Wenn maximale Absicherung gegen inkonsistente Dateiinhalte wichtiger ist als Geschwindigkeit. |
data=ordered | Vor allem Metadaten; Dateidaten werden vor den zugehörigen Metadaten geschrieben. | Üblicher Kompromiss: Neue Metadaten sollen nicht auf ungeschriebene neue Dateidaten verweisen. | Ausgewogenes Verhältnis von Schutz und Leistung. | Allgemeine Server- und Desktop-Systeme; häufig der praktische Standard. |
data=writeback | Metadaten; die Reihenfolge der Dateidaten ist weniger strikt. | Nach einem Absturz können alte, unvollständige oder nicht eindeutig zuordenbare Dateidaten sichtbar werden. | Meist bessere Leistung, insbesondere bei schreibintensiven Workloads. | Nur wenn die geringere Datensicherheit bewusst akzeptiert wird. |
data=ordered wird häufig als sinnvoller Kompromiss verwendet. data=journal bietet den umfassendsten Schutz, erzeugt aber zusätzlichen Schreibverkehr. data=writeback kann schneller sein, erhöht jedoch das Risiko, nach einem Absturz alte oder inhaltlich nicht passende Daten zu sehen.
Technische Eigenschaften und Grenzen
| Eigenschaft | Typischer Grenzwert | Hinweis |
|---|---|---|
| Maximale Dateigröße | Typischerweise 2 TiB | Der tatsächlich nutzbare Wert hängt unter anderem von Blockgröße, Kernel, Architektur und Werkzeugen ab. |
| Maximale Dateisystemgröße | Typischerweise 16 TiB | Praktische und theoretische Grenzen können sich je nach Systemumgebung unterscheiden. |
| Maximale Dateinamenlänge | 255 Bytes | Die Grenze zählt Bytes, nicht zwingend Zeichen. Bei UTF-8 können einzelne Zeichen mehrere Bytes benötigen. |
Grenzwerte sollten deshalb nicht isoliert betrachtet werden. Blockgröße, verwendete Kernel-Version, Architektur und Versionen von e2fsprogs können die tatsächlich verfügbaren Werte beeinflussen.
ext3-Dateisystem identifizieren
Vor Verwaltungsarbeiten muss das richtige Blockgerät eindeutig festgestellt werden. Gerätenamen wie /dev/sdb1 können sich nach Änderungen an der Hardware-Reihenfolge ändern. UUID und Label sind stabilere Identifikationsmerkmale.
lsblk -f
blkid
lsblk -f zeigt unter anderem Blockgeräte, Dateisystemtypen, Labels, UUIDs und Einhängepunkte. blkid liefert die Kennungen direkt aus den Blockgeräten. Vor jedem formatierenden Befehl müssen Größe, Modell, Partition, UUID und Mountpoint geprüft werden.
Ein ext3-Dateisystem erstellen
Zum Erstellen wird ein Linux-Dateisystemwerkzeug wie mkfs.ext3 verwendet. Im Beispiel steht /dev/sdXN für das zuvor eindeutig identifizierte Zielgerät.
mkfs.ext3 /dev/sdXN
mkfs.ext3 -L daten /dev/sdXN
Mit -L daten wird das lesbare Label daten gesetzt. Nach der Erstellung können die Eigenschaften und das Journal geprüft werden:
tune2fs -l /dev/sdXN
dumpe2fs -h /dev/sdXN
Die Ausgaben können unter anderem UUID, Label, Dateisystemmerkmale, Blockinformationen und Journalparameter enthalten.
ext3 einhängen und mounten
Mounten bedeutet, ein Dateisystem an einem Verzeichnispunkt einzubinden. Der Mountpoint muss vorher existieren.
mkdir -p /mnt/daten
mount -t ext3 /dev/sdXN /mnt/daten
mount -t ext3 -o data=ordered /dev/sdXN /mnt/daten
Nach dem Einhängen ist der Inhalt unter /mnt/daten erreichbar. Der zweite Befehl bindet das Dateisystem ausdrücklich mit dem Modus data=ordered ein. Ein bereits eingehängtes Dateisystem muss vor einem erneuten Mount-Versuch passend ausgehängt werden.
Dauerhafte Einbindung über /etc/fstab
Die Datei /etc/fstab beschreibt Dateisysteme, die beim Systemstart automatisch eingebunden werden sollen. Ein Eintrag besteht aus Gerät oder UUID, Mountpoint, Dateisystemtyp, Optionen sowie Prüfungsfeldern.
UUID=<uuid> /mnt/daten ext3 defaults,data=ordered 0 2
Die UUID wird durch den tatsächlichen Wert aus blkid ersetzt. Eine UUID ist in der Regel zuverlässiger als ein Gerätename wie /dev/sdb1, weil sich die Reihenfolge von Geräten ändern kann.
mount -a
Mit mount -a werden die passenden Einträge aus /etc/fstab testweise eingehängt. Änderungen sollten immer vor einem Neustart auf diese Weise getestet werden. Bei Fehlern sind UUID, Mountpoint, Schreibweise des Dateisystemtyps und Mount-Optionen zu prüfen.
Prüfung und Reparatur
fsck bezeichnet eine Werkzeugfamilie zur Prüfung und gegebenenfalls Reparatur von Dateisystemen. Für ext-Dateisysteme wird häufig e2fsck verwendet.
umount /dev/sdXN
e2fsck -f /dev/sdXN
Eine Reparatur darf nicht auf einem aktiv eingehängten Dateisystem durchgeführt werden. Für Systempartitionen ist daher meist ein Wartungs- oder Rettungsmodus erforderlich. Die Prüfung kann gefundene Fehler beheben; vor einer Reparatur ist eine möglichst vollständige Datensicherung sinnvoll.
Praxis: Prüfung nach einem unsauberen Herunterfahren
Nach einem Stromausfall oder einer anderen Unterbrechung kann das System das Journal wiedergeben und das Dateisystem anschließend einhängen. Wird dennoch eine Prüfung erzwungen oder das Dateisystem nur eingeschränkt eingebunden, kommen mehrere Ursachen infrage:
- Änderungen wurden nicht vollständig abgeschlossen.
- Das Dateisystem enthält erkannte Inkonsistenzen.
- Das zugrunde liegende Speichergerät weist Fehler auf.
Zuerst sollten Kernel- und Systemmeldungen sowie der aktuelle Einhängezustand geprüft werden. Danach wird eine Offline-Prüfung mit e2fsck eingeplant. Bei Hinweisen auf Hardwarefehler muss zusätzlich der Zustand des Datenträgers untersucht werden, beispielsweise mit geeigneten SMART-Werkzeugen.
Häufige Verwaltungsprobleme
Ein fstab-Eintrag funktioniert nicht
Typische Ursachen sind eine falsche UUID, ein nicht vorhandener Mountpoint, eine ungültige Option oder ein falscher Dateisystemtyp. UUID und Dateisystemtyp lassen sich mit blkid oder lsblk -f vergleichen. Danach wird mount -a erneut ausgeführt und die konkrete Fehlermeldung ausgewertet.
Das erwartete Journal-Verhalten fehlt
Prüfe, ob das Dateisystem versehentlich im ext2-Modus eingebunden wurde, ob eine andere data=-Option aktiv ist oder ob das Journal entfernt beziehungsweise nicht verfügbar ist. Aktive Mount-Optionen und Dateisystemmerkmale können mit Systemwerkzeugen sowie tune2fs oder dumpe2fs untersucht werden. Änderungen am Journal sollten nur mit vorheriger Datensicherung erfolgen.
Das falsche Gerät wurde ausgewählt
Ähnliche Gerätenamen und wechselnde Laufwerksreihenfolgen sind eine häufige Fehlerquelle. Vor Formatierung oder Reparatur müssen Größe, Modell, Partitionen, UUID und Mountpoints kontrolliert werden. Der Vorgang sollte abgebrochen werden, sobald das Ziel nicht zweifelsfrei feststeht.
Vergleich: ext2, ext3 und ext4
| Merkmal | ext2 | ext3 | ext4 |
|---|---|---|---|
| Journaling | Kein integriertes Journal. | Journal als zentrale Erweiterung gegenüber ext2. | Journal und zusätzliche moderne Dateisystemmerkmale. |
| Absturzverhalten | Nach einem Abbruch ist häufig eine umfangreichere Prüfung nötig. | Journal unterstützt eine schnellere Wiederherstellung und bessere Konsistenz. | Ähnlicher Journaling-Grundgedanke mit modernerer Skalierung und Leistungsfähigkeit. |
| Kompatibilität | Einfaches, verwandtes Format; kann für spezielle ältere Umgebungen sinnvoll sein. | Hohe Kompatibilität zu ext2-Strukturen und älteren Linux-Systemen. | In aktuellen Linux-Systemen sehr breit unterstützt, aber nicht für jede historische Umgebung geeignet. |
| Skalierung | Geringer als bei ext3 und ext4. | Für ältere und mittlere Anforderungen geeignet; geringere Reserven als ext4. | Modernere Skalierungs- und Leistungsmerkmale, unter anderem für größere Dateisysteme. |
| Typische heutige Verwendung | Spezielle ältere oder journalfreie Szenarien. | Bestehende Installationen, ältere Systeme und Kompatibilitätsfälle. | Neue Linux-Installationen und allgemeine moderne Systeme. |
Wann ist ext3 sinnvoll?
- Bestehendes System: Eine stabile ext3-Installation muss nicht allein wegen ihres Alters sofort ersetzt werden.
- Kompatibilität: Ältere Kernel, Werkzeuge oder Geräte können ext3 besser unterstützen als ext4.
- Neue Installation: Für aktuelle Linux-Systeme ist ext4 meist die naheliegendere Wahl.
- Kein Journal erforderlich: ext2 kann in speziellen Umgebungen sinnvoll sein, bietet dann aber keinen Journaling-Schutz.
Die Entscheidung sollte neben dem Dateisystem auch Hardware, Kernel-Unterstützung, Backup-Konzept, erwartete Dateigrößen und Wartungsanforderungen berücksichtigen. Für neue Systeme ist ext4 meist vorzuziehen; ext3 bleibt eine sachgerechte Wahl, wenn Kompatibilität oder eine vorhandene Infrastruktur entscheidend sind.
Prüfungsrelevante Zusammenfassung
- ext3 ist das Third Extended File System für Linux und basiert auf ext2.
- Das Journal ist die entscheidende Erweiterung gegenüber ext2.
- Journaling verbessert vor allem Konsistenz und Wiederherstellungszeit nach unerwarteten Unterbrechungen.
data=journalprotokolliert Daten und Metadaten,data=orderedist der übliche Kompromiss, unddata=writebackbietet mehr Leistung bei geringerem Schutz.- Typische Grenzwerte sind 2 TiB pro Datei, 16 TiB pro Dateisystem und 255 Bytes pro Dateiname.
- UUIDs und Labels erleichtern die zuverlässige Identifikation von Dateisystemen.
- Formatierung und Reparatur sind potenziell destruktiv; Reparaturen erfolgen nur offline beziehungsweise im geeigneten Wartungsmodus.
- ext4 ist für neue Installationen meistens die modernere Wahl.
Weitere Informationen im Kurs: Dateisystem ext3.