Linux kennt mehrere Dateisysteme, und die Wahl hat spürbare Folgen: Leistung bei vielen kleinen Dateien, Verhalten bei einem Stromausfall, Möglichkeiten für Momentaufnahmen und der Aufwand im Betrieb. Dieser Artikel vergleicht die vier, die in der Praxis relevant sind.
Die vier Kandidaten
- ext4 – der Standard. Ausgereift, schnell, überall verfügbar, Werkzeuge zur Reparatur vorhanden. Keine Momentaufnahmen, kein Prüfsummenschutz für Daten.
- XFS – der Standard auf Servern mit großen Dateien und hohem Durchsatz. Sehr gute Leistung bei parallelen Schreibvorgängen, Online-Vergrößerung. Verkleinern ist nicht möglich.
- Btrfs – Momentaufnahmen, Prüfsummen, Kompression, Untervolumes. Ideal für Momentaufnahmen-basierte Sicherungen und Container-Speicher.
- ZFS – Datensicherheit an erster Stelle: Prüfsummen für alles, Selbstheilung, RAID im Dateisystem, Deduplizierung. Höherer Speicherbedarf, komplexere Regeln.
Wo die Unterschiede herkommen
Momentaufnahmen (Snapshots)
ext4 nein (nur ueber LVM moeglich)
XFS nein (nur ueber LVM moeglich)
Btrfs ja, sofort, platzsparend ("copy-on-write")
ZFS ja, sofort, mit eigener Verwaltung
-> Fuer "Sicherung vor einem Update" ist das der
entscheidende Unterschied. Bei ext4 braucht es LVM.
Pruefsummen fuer DATEN (nicht nur Metadaten)
ext4 nur Metadaten -> stille Datenfehler bleiben unentdeckt
XFS nur Metadaten
Btrfs Daten und Metadaten -> Fehler werden erkannt
ZFS Daten und Metadaten -> erkannt UND (mit Redundanz) behoben
Bedeutung: Ein "stiller Datenfehler" ist eine Datei, die
Bitfehler enthaelt, ohne dass das System es merkt. Bei
Btrfs/ZFS wird der Fehler gemeldet; bei ext4/XFS liefert
das System beschuedigte Daten aus.
Kompression
ext4/XFS nein
Btrfs zstd, lzo, zlib - transparent, spart Platz
ZFS lz4 (Standard), zstd, gzip - sehr effizient
Verkleinern
ext4 ja (resize2fs, offline)
XFS NEIN - nur vergroessern!
Btrfs ja, online
ZFS per Pool-Neuanlage oder Umbau
Speicherverbrauch
ext4/XFS gering
Btrfs moderat
ZFS hoch: ARC (Zwischenspeicher) braucht viel RAM;
Regel: 1 GB RAM je 1 TB Speicher, mindestens 8 GB
Momentaufnahmen: das stärkste Argument für Btrfs und ZFS
# Btrfs - Momentaufnahme vor einem Update (Sekundenbruchteile)
btrfs subvolume snapshot / /snapshots/root-$(date +%F-%H%M)
btrfs subvolume list /
btrfs filesystem df /
btrfs filesystem usage /
# Momentaufnahmen sind "copy-on-write": Sie kosten fast keinen
# Platz und sind sofort erstellt. Perfekt vor:
# - Systemaktualisierungen
# - Konfigurationsaenderungen an Diensten
# - Tests, deren Ergebnis man zuruecknehmen will
# Btrfs send/receive: inkrementelle Sicherung
btrfs send /snapshots/root-heute | ssh ziel "btrfs receive /srv/backup/"
# Nur die Unterschiede zur vorherigen Momentaufnahme werden
# uebertragen - sehr effizient fuer taegliche Sicherungen.
# ZFS - dasselbe Prinzip
zfs snapshot tank/root@vor-update-$(date +%F)
zfs list -t snapshot
zfs list -o name,used,refer tank/root
zfs rollback tank/root@vor-update-2026-09-26
zfs send tank/root@heute | ssh ziel zfs receive backup/root
zfs destroy tank/root@alt
# Platzverbrauch verstehen: Eine Momentaufnahme kostet nichts,
# solange sich die Daten nicht aendern. Wird eine Datei geaendert,
# wird der ALTE Block von der Momentaufnahme gehalten.
# -> Langfristig aufbewahrte Momentaufnahmen koennen viel
# Platz belegen. Aufbewahrungspolitik ist Pflicht!
Leistung: was wann schneller ist
Viele kleine Dateien (Mailserver, Git, node_modules)
ext4 gut
XFS gut, bei parallelem Zugriff sehr gut
Btrfs langsamer bei Metadatenoperationen
ZFS langsamer, profitiert stark vom ARC
Grosse Dateien, sequenzieller Durchsatz
XFS sehr gut, oft die beste Wahl
ext4 gut
Btrfs gut
ZFS gut, mit LZ4-Kompression oft sogar besser als unkomprimiert
(weniger Datentraegerverkehr)
Datenbanken
XFS haeufig empfohlen (PostgreSQL, MySQL)
ext4 ebenfalls bewaehrt
Btrfs Datenbankdateien mit eigener Sync-Strategie sind heikel;
auf CoW-Verzeichnis (chattr +C) achten
ZFS mit gesetztem recordsize und sync=standard gut geeignet
Faustregel:
Standardfall, wenig Aufwand -> ext4
Server mit viel Durchsatz -> XFS
Momentaufnahmen und Kompression -> Btrfs
Datensicherheit an erster Stelle -> ZFS
ext4 im Alltag
# Anlegen
mkfs.ext4 -L daten -m 1 /dev/vg0/daten
# -m 1 : nur 1 % reservierte Bloecke fuer root
# Standard ist 5 % - bei grossen Platten viel verschenkt.
# Nur auf der Root-Partition bei 5 % belassen!
# Pruefen und anpassen
dumpe2fs -h /dev/vg0/daten | head -30
tune2fs -m 1 /dev/vg0/daten # reservierte Bloecke aendern
tune2fs -l /dev/vg0/daten | grep -E 'Filesystem state|Mount count'
# Vergroessern (online moeglich)
lvextend -L +50G /dev/vg0/daten
resize2fs /dev/vg0/daten
# Pruefen (NICHT auf einer eingehaengten Partition!)
umount /dev/vg0/daten
fsck.ext4 -f /dev/vg0/daten
# Fehlerpruefung kann bei grossen Dateisystemen Stunden dauern.
# Das ist der Preis fuer den fehlenden Pruefsummenschutz.
# Einhaengen
# /etc/fstab
# UUID=... /daten ext4 defaults,noatime,nodiratime 0 2
# noatime: kein Zugriffszeitstempel -> weniger Schreibzugriffe
# Das ist bei Servern fast immer sinnvoll.
Prüfliste
- Passt die Wahl zum Zweck – Durchsatz, viele kleine Dateien, Momentaufnahmen?
- Reservierte Blöcke bei großen Datenpartitionen angepasst (
-m 1)? noatimegesetzt (weniger Schreiblast)?- Ist die Momentaufnahmepolitik festgelegt, wenn Btrfs oder ZFS genutzt wird? Sonst füllt sich die Platte.
- Sind Prüfläufe geplant – und getestet, wie lange sie dauern?
- Ist der Speicherbedarf bei ZFS eingeplant (ARC, mindestens 8 GB)?
- Ist die Wiederherstellung aus einer Momentaufnahme einmal geübt worden?
- Ist die Warnung bekannt, dass XFS nicht verkleinert werden kann?
Die häufigsten Fehler
- Momentaufnahmen als Sicherung ansehen. Eine Momentaufnahme liegt auf demselben Datenträger. Fällt der aus, sind Daten und Momentaufnahme weg. Sie ist eine Absicherung gegen Fehler, nicht gegen Hardwareausfall.
- Momentaufnahmen nie aufräumen. Bei rege geänderten Daten belegen sie schnell mehr Platz als die Originaldaten.
- Btrfs ohne CoW-Ausnahme für Datenbankdateien. Doppelte Absicherung kostet Leistung und kann Fragmentierung erzeugen:
chattr +Cauf dem Verzeichnis vor der ersten Datei. - ZFS mit zu wenig Speicher. Ohne ausreichend RAM werden Prüfsummen und Zwischenspeicher zum Flaschenhals.
- ZFS-Pool ohne Redundanz. Ein Pool aus einer einzigen Platte erkennt Fehler, kann sie aber nicht beheben – die Selbstheilung braucht Redundanz (Spiegel oder RAID-Z).
fsckauf einer eingehängten Partition. Führt zu schweren Schäden. Vorher aushängen.- Keine Verzeichnisstruktur nach Zweck. Protokolle, Datenbanken und Archive haben unterschiedliche Anforderungen an Durchsatz und Aufbewahrung – ein Dateisystem für alles ist selten optimal.
Verwandte Grundlagen: Dateisystem, Linux-Dateirechte, LVM, RAID-Ebenen.