VMware ESXi and vSphere Cluster Management

Dateisystem ext4 unter Linux: Eigenschaften, Grenzen und Einsatz

Was ist ext4? Dieser Leitfaden erklärt Journaling, Extents, Quotas, Zeitstempel, Größenlimits, Kompatibilität und typische Einsatzbereiche unter Linux.

ext4 steht für Fourth Extended File System. Es ist ein Linux-Dateisystem und der direkte Nachfolger von ext3. ext4 wurde entwickelt, um große Dateien und Verzeichnisse effizienter zu verwalten, die Dateisystemprüfung zu beschleunigen und moderne Funktionen wie Extents, Preallokation und präzisere Zeitstempel bereitzustellen.

Für allgemeine Linux-Installationen, Arbeitsstationen und viele Server mit klassischen Blockgeräten ist ext4 eine ausgewogene Wahl. Es bietet gute Stabilität, breite Unterstützung und eine überschaubare Verwaltung.

Weitere Grundlagen zu diesem Thema finden Sie auch unter Dateisystem ext4.

Was ist ein Dateisystem?

Ein Dateisystem legt fest, wie Daten auf einem Blockgerät oder einer Partition gespeichert und wiedergefunden werden. Es verwaltet unter anderem Dateien, Verzeichnisse, freien Speicherplatz und Dateiinformationen.

Zu diesen Dateiinformationen gehören Metadaten: Name, Größe, Rechte, Eigentümer, Zeitstempel und weitere Attribute. Ein Dateisystem stellt außerdem die Zuordnung zwischen einem Pfad wie /home/alex/daten.txt und den tatsächlichen Datenblöcken auf dem Datenträger her.

Einordnung von ext4

Von ext2 über ext3 zu ext4

  • ext2 ist ein älteres Extended-Dateisystem ohne Journal.
  • ext3 ist die Vorgängerversion mit Journaling und damit besserer Konsistenz nach Systemabstürzen.
  • ext4 ist die Weiterentwicklung und der Nachfolger von ext3. Es erweitert die Familie um leistungsfähigere Verwaltungsstrukturen und höhere Skalierbarkeit.

Rückwärtskompatibilität bedeutet nicht, dass jedes ext4-Dateisystem automatisch von jedem alten ext2- oder ext3-Werkzeug vollständig verstanden wird. Ein ext4-Dateisystem kann häufig mit bestehenden Strukturen der älteren Familie weiterverwendet oder aus ext3 heraus entwickelt werden. Das Aktivieren bestimmter ext4-Features verändert jedoch die Anforderungen an Kernel, Boot-Umgebung und Verwaltungswerkzeuge.

Journaling und Datensicherheit

Wie Journaling funktioniert

Journaling bezeichnet die Protokollierung geplanter Dateisystemänderungen. Das Journal ist ein spezieller Bereich oder ein Protokoll, in dem Änderungen zunächst nachvollziehbar festgehalten werden. Erst danach werden die eigentlichen Strukturen des Dateisystems aktualisiert.

Stürzt ein Rechner während eines Schreibvorgangs ab, kann ext4 beim nächsten Einhängen auswerten, welche Journal-Einträge abgeschlossen waren. Unvollständige Vorgänge werden verworfen oder konsistent abgeschlossen. Dadurch muss nicht zwingend der gesamte Datenträger nach jedem Absturz vollständig durchsucht werden.

Journal-Modi

Je nach Konfiguration kann das Journal vor allem Metadaten oder zusätzlich Nutzdaten berücksichtigen. Der übliche Ansatz schützt die Dateisystemstruktur mit überschaubarem Aufwand, garantiert aber nicht, dass jede Anwendungsschreiboperation zum Zeitpunkt des Absturzes dauerhaft auf dem Datenträger angekommen ist. Mount-Optionen, Hardware und Anwendungslogik beeinflussen das Verhalten.

Journalisierte Quota-Daten

Eine Quota begrenzt und überwacht den Speicherverbrauch von Benutzern oder Gruppen. Bei journalisierten Quota-Daten werden Änderungen an diesen Verbrauchszählern ebenfalls so protokolliert, dass sie nach einem Absturz konsistenter wiederhergestellt werden können.

Unter passenden Voraussetzungen muss deshalb nach einem unsauberen Herunterfahren kein vollständiger Quota-Check über alle Dateien durchgeführt werden. Das verkürzt den Wiederanlauf besonders auf großen Mehrbenutzersystemen. Die konkrete Verfügbarkeit hängt von Kernel, aktivierten Dateisystem-Features und der eingesetzten Quota-Verwaltung ab.

Leistungsverbesserungen in ext4

Extents statt vieler Einzelblöcke

Ein Extent ist ein zusammenhängender Bereich von Datenblöcken, der als eine Einheit verwaltet wird. Bei großen Dateien kann ext4 dadurch Bereiche kompakter beschreiben, statt jeden einzelnen Block separat zu verwalten. Das reduziert Verwaltungsaufwand und kann Fragmentierung begrenzen.

Beispiel: Wird eine große Mediendatei erstellt, kann ein Extent einen zusammenhängenden Bereich für viele aufeinanderfolgende Datenblöcke repräsentieren. Das erleichtert die Verwaltung und kann sequentielle Zugriffe begünstigen.

Mehrfachblock-Zuweisung und Preallokation

Die Mehrfachblock-Zuweisung betrachtet mehrere benötigte Blöcke gemeinsam. Der Dateisystemcode kann dadurch besser abschätzen, welche Bereiche zusammengehören.

Preallokation bedeutet, Speicherblöcke vorab für eine Datei zu reservieren. Das ist beispielsweise bei einer Datenbank- oder Mediendatei nützlich, deren erwartete Größe früh bekannt ist. Die Anwendung erhält damit zusammenhängendere Bereiche, und spätere Erweiterungen können weniger zusätzliche Verwaltungsarbeit verursachen.

Große Verzeichnisse und schnellere Prüfung

ext4 verwendet verbesserte Strukturen für große Verzeichnisse. Viele Einträge lassen sich dadurch besser verwalten als bei älteren Extended-Dateisystemen. Das bedeutet nicht, dass jedes Verzeichnis unabhängig von Zugriffsmuster und Datenträger gleich schnell bleibt.

Auch die Dateisystemprüfung mit fsck beziehungsweise e2fsck kann schneller ausfallen. ext4 kennt ungenutzte Bereiche und weitere Informationen, die eine Prüfung effizienter machen. Nach einem Absturz ist eine Prüfung daher häufig kürzer, aber nicht grundsätzlich überflüssig.

Zeitstempel mit Nanosekunden-Auflösung

ext4 unterstützt Zeitstempel mit einer Auflösung bis zu einer Nanosekunde. Betroffen sind unter anderem Zugriffs-, Änderungs- und Statusänderungszeiten einer Datei.

In der Praxis hilft das, wenn Anwendungen sehr schnelle Änderungen unterscheiden müssen, etwa Build-Systeme, Synchronisationsprogramme, Tests oder Protokollierungswerkzeuge. Die tatsächlich sichtbare Genauigkeit kann dennoch durch Kernel, Hardware, Programmierschnittstelle und verwendete Werkzeuge begrenzt sein.

Verzeichnisse, Dateien und Skalierung

Ein Dateiname ist der Name eines einzelnen Verzeichniseintrags. Seine maximale Länge darf nicht mit der maximalen Länge eines vollständigen Pfads verwechselt werden. Ein Pfad besteht aus mehreren Verzeichnisnamen, Trennzeichen und dem Dateinamen.

EigenschaftGenannter GrenzwertErläuterung
Maximale Dateigrößebis zu 16 TiBTypischer Wert bei 4-KiB-Blöcken und passender 64-Bit-Konfiguration.
Maximale Dateisystemgrößebis zu 1 EiBTheoretischer ext4-Grenzwert; Kernel, Blockgröße, Architektur und Werkzeuge können ihn einschränken.
Maximale Dateinamenlänge255 BytesGilt für einen einzelnen Namen, nicht für die gesamte Pfadlänge. Bei UTF-8 können mehrere Bytes auf ein sichtbares Zeichen entfallen.
Anzahl von Unterverzeichnissenhistorisch etwa 64.000; mit passenden Features höherDie konkrete Grenze hängt von aktivierten Features, Werkzeugen und der verwendeten Verzeichnisstruktur ab.

Die genannten Werte sind keine Garantie für jede Installation. Blockgröße, Architektur, Kernelversion, Dateisystem-Features und Verwaltungsprogramme beeinflussen die tatsächlich nutzbaren Grenzen. Außerdem können Anwendungen eigene Beschränkungen besitzen.

Wichtige ext4-Funktionen im Überblick

FunktionTechnische WirkungPraktischer Nutzen
JournalingProtokolliert Änderungen für eine konsistentere Wiederherstellung.Schnellerer und kontrollierterer Wiederanlauf nach Abstürzen.
ExtentsVerwaltet zusammenhängende Blockbereiche als Einheiten.Weniger Verwaltungsaufwand bei großen Dateien.
Mehrfachblock-PreallokationReserviert mehrere benötigte Blöcke gemeinsam und kann Bereiche vorab reservieren.Günstigeres Wachstum großer Dateien und potenziell weniger Fragmentierung.
Nanosekunden-ZeitstempelSpeichert Zeitangaben mit hoher Auflösung.Präzisere Erkennung schnell aufeinanderfolgender Änderungen.
Quota-JournalingProtokolliert Änderungen an Quota-Verbrauchsdaten.Einfacherer Wiederanlauf nach einem Absturz.
Schnellere PrüfungNutzt Dateisysteminformationen und überspringt geeignete ungenutzte Bereiche.Kürzere Konsistenzprüfungen unter passenden Bedingungen.

Quota-Unterstützung

Mit Benutzerquotas lässt sich festlegen, wie viel Speicherplatz oder wie viele Dateien ein Benutzer verwenden darf. Gruppenquotas wenden vergleichbare Grenzen auf eine Gruppe an. Das ist auf gemeinsam genutzten Servern sinnvoll, damit ein einzelnes Konto nicht den gesamten Speicher belegt.

Bei der Planung sollten nicht nur belegte Datenblöcke, sondern auch Inodes berücksichtigt werden. Ein System kann noch freien Speicherplatz anzeigen, während keine neuen Dateien mehr angelegt werden können, weil die verfügbaren Inodes oder eine Quota-Grenze erschöpft sind.

Vergleich mit ext2, ext3 und ReiserFS

Merkmalext2ext3ext4
JournalingNeinJaJa, mit moderneren Verwaltungsfunktionen
KompatibilitätsbezugÄltere Extended-StrukturenWeiterentwicklung von ext2Nachfolger von ext3; alte Werkzeuge unterstützen nicht zwingend alle Features
Verwaltung großer DateienEingeschränkterBesser als ext2, aber älterDurch Extents und weitere Optimierungen besser skalierbar
ZeitstempelauflösungGeringerGeringer als bei ext4Bis zu Nanosekunden-Auflösung
Extent- und PreallokationsunterstützungNicht im modernen ext4-UmfangBegrenzt beziehungsweise älterJa
DateisystemprüfungKann bei großen Volumes lange dauernDurch Journaling oft besser als ext2Verbesserte Strukturen und häufig schnellere Prüfung
Quota-JournalingNicht als ext4-FunktionBegrenzt durch ältere ImplementierungenUnterstützt journalisierte Quota-Daten bei passender Konfiguration

Gegenüber ext2 bietet ext4 insbesondere Journaling und damit eine bessere Konsistenz nach Abstürzen. Gegenüber ext3 verbessert ext4 unter anderem die Verwaltung großer Dateien und Verzeichnisse, die Blockzuweisung, die Zeitstempel und die Skalierung.

ReiserFS ist ein weiteres historisch verbreitetes Linux-Dateisystem. Es wurde unter anderem auf effiziente Verwaltung vieler kleiner Dateien ausgelegt. Bei einer heutigen Auswahl zählen jedoch auch Kernel-Unterstützung, Wartbarkeit, Werkzeuge, Wiederherstellungsoptionen und die Anforderungen der Distribution. ext4 ist in vielen Standardinstallationen die breiter unterstützte und unkompliziertere Option.

Typische Einsatzbereiche und Entscheidung

  • Linux-Desktop- und Laptop-Installationen
  • Arbeitsstationen mit allgemeinen Dateien, Entwicklungsprojekten und Medien
  • Server mit klassischen lokalen Blockgeräten
  • Partitionen, bei denen breite Distribution- und Werkzeugunterstützung wichtig ist
  • Mehrbenutzersysteme, die Benutzer- oder Gruppenquotas benötigen

ext4 ist besonders geeignet, wenn ein robustes Allzweck-Dateisystem ohne spezielle Anforderungen an Prüfsummen, integrierte Snapshots oder extrem große Parallel-I/O-Lasten gesucht wird. Für spezielle Aufgaben können XFS, Btrfs oder andere Systeme besser passen. Die Entscheidung sollte Arbeitslast, Sicherungsstrategie, Hardware, Distribution und benötigte Funktionen berücksichtigen.

ext4 verwalten: wichtige Befehle

Gerät und Dateisystem identifizieren

lsblk -f
findmnt -T /pfad
mount | grep ext4

lsblk -f zeigt Blockgeräte, Dateisystemtypen, UUIDs und Einhängepunkte. Mit findmnt -T lässt sich ermitteln, welches Dateisystem einen bestimmten Pfad bereitstellt. mount | grep ext4 zeigt eingehängte ext4-Dateisysteme und häufig auch ihre Mount-Optionen.

Dateisystemmerkmale anzeigen

tune2fs -l /dev/<partition>

Der Befehl zeigt unter anderem ext-Dateisystemmerkmale, UUID, Blockgröße und weitere Metadaten. Das ist hilfreich, wenn ein erwartetes Feature fehlt oder die Kompatibilität mit älteren Werkzeugen geprüft werden soll.

Formatieren und dauerhaft einhängen

mkfs.ext4 /dev/<partition>
/etc/fstab: UUID=<uuid> /mnt/daten ext4 defaults 0 2

Ein UUID-basierter Eintrag in /etc/fstab ist meist stabiler als die alleinige Verwendung eines Gerätenamens. Der Einhängepunkt muss existieren, und der Dateisystemtyp muss zum Datenträger passen.

Dateisystem prüfen

sudo e2fsck -f /dev/<partition>

e2fsck prüft und repariert die Konsistenz eines ext-Dateisystems. Die Partition muss dafür ausgehängt sein. Der Befehl darf nicht auf einem schreibbar eingehängten Dateisystem ausgeführt werden. Bei einem Root-Dateisystem ist dafür meist ein Wartungs- oder Rettungssystem erforderlich.

Fehlerbilder und Diagnose

Nach einem unsauberen Herunterfahren wird eine Prüfung verlangt

Journal und Dateisystemzustand sollten zunächst anhand der Systemmeldungen geprüft werden. Falls erforderlich, wird die Partition ausgehängt und e2fsck gemäß den Systemhinweisen ausgeführt. Journaling kann die Prüfung verkürzen, schließt eine Prüfung aber nicht grundsätzlich aus.

Eine Datei wächst trotz freiem Speicherplatz nicht weiter

Prüfen Sie getrennt:

  • das Dateigrößenlimit des Dateisystems und der Anwendung,
  • freien Speicherplatz,
  • verfügbare Inodes,
  • Benutzer- und Gruppenquotas,
  • mögliche Prozess- oder Betriebssystemlimits.

Ein ext4-Feature ist nicht verfügbar

Ermitteln Sie die aktivierten Features mit tune2fs -l. Prüfen Sie anschließend, ob Kernel, Boot-Umgebung, Mount-Optionen und Verwaltungswerkzeuge dieses Feature unterstützen. Ein älteres System kann ein ext4-Dateisystem möglicherweise nicht mit allen Funktionen einhängen.

Ein Mount beim Systemstart schlägt fehl

Kontrollieren Sie UUID, Dateisystemtyp, Einhängepunkt und den Eintrag in /etc/fstab. Zusätzlich sollten Meldungen von systemd und dem Kernel ausgewertet werden. Ein Tippfehler in der UUID oder ein nicht vorhandener Einhängepunkt gehört zu den häufigsten Ursachen.

Große Dateien oder Verzeichnisse sind langsamer als erwartet

Untersuchen Sie Datenträgerleistung, freie Kapazität, Fragmentierung, Mount-Optionen, Zugriffsmuster der Anwendung und aktuelle Systemauslastung. Extents und große Verzeichnisstrukturen verbessern die Verwaltung, sind aber keine pauschale Performancegarantie.

Prüfungsrelevante Merksätze

  • ext4 ist das Fourth Extended File System und der Nachfolger von ext3.
  • ext2 besitzt kein Journal; ext3 und ext4 unterstützen Journaling.
  • Journaling verbessert die Konsistenz nach Abstürzen, ersetzt aber kein Backup.
  • Extents verwalten zusammenhängende Datenblöcke effizienter als viele einzelne Blockeinträge.
  • Preallokation reserviert Speicher für eine Datei vorab und kann Fragmentierung vermindern.
  • Die maximale Dateinamenlänge ist nicht dasselbe wie die maximale Pfadlänge.
  • Quota-Journaling kann einen vollständigen Quota-Check nach einem Absturz vermeiden, wenn die Voraussetzungen erfüllt sind.
  • Theoretische Größenlimits hängen unter anderem von Blockgröße, Architektur, Kernel und Werkzeugen ab.