Linux / ext4, XFS und Btrfs im Vergleich: Welches Dateisystem passt?
Bei der Wahl zwischen ext4, XFS und Btrfs vergleichen Sie die Unterstützung durch Distributionen, die benötigten Funktionen, Größenänderungs- und Wiederherstellungsverfahren, bevor Sie berücksichtigen, welche neuer ist. Ziehen Sie ext4 für vertraute Verwaltung und Offline-Verkleinerung in Betracht, XFS für Server mit großem Speicher und gleichzeitigen E/A-Vorgängen, und Btrfs, wenn Sie native Snapshots, Kompression und Datenprüfsummen benötigen. Dies sind Ausgangspunkte: Leistung und Eignung für den Betrieb müssen in Ihrer Umgebung weiterhin überprüft werden.
Dieser Artikel vergleicht drei lokale Dateisysteme für Linux-PCs und allgemeine Server. Ein Dateisystem organisiert Dateiinhalt und Informationen wie Namen, Speicherorte und Berechtigungen, damit sie gespeichert und abgerufen werden können. Wenn die Beziehung zwischen Festplatten, Partitionen und Mounts unklar ist, beginnen Sie mit wie sich Festplatten, Partitionen und Dateisysteme unterscheiden.
ext4, XFS und Btrfs auf einen Blick
Metadaten sind Verwaltungsinformationen wie der Speicherort, die Größe und die Berechtigungen einer Datei. Journaling verwendet ein Protokoll von Änderungen, um nach einem unerwarteten Herunterfahren die Konsistenz des Dateisystems wiederherzustellen; es ersetzt keine Backups und garantiert nicht die Erhaltung des Inhalts jeder Datei. Copy-on-Write (CoW) schreibt geänderte Inhalte in neuen Speicher und aktualisiert die Referenzen darauf.
| Kriterium | ext4 | XFS | Btrfs |
|---|---|---|---|
| Grundlegendes Design | Journaling | Metadaten-Journaling | CoW |
| Native-Snapshots | Nein | Nein | Subvolume-Snapshots |
| Dateiprüfsummen | Standardmäßig nicht bereitgestellt | Standardmäßig nicht bereitgestellt | Standardmäßig aktiviert, mit Ausnahmen wie NOCOW-Dateien |
| Native Kompression | Nein | Nein | Unterstützt; hängt von Einstellungen und Datenmerkmalen ab |
| Vergrößern | Möglich, im eingehängten Zustand, wenn unterstützt | Durchgeführt, im eingehängten Zustand | Möglich, im eingehängten Zustand |
| Verkleinerung | Möglich, im ausgehängten Zustand | Gehen Sie nicht von allgemeiner Produktionsunterstützung aus; prüfen Sie die Unterstützung der begrenzten Technology Preview separat | Möglich, im eingehängten Zustand; prüfen Sie den freien Speicherplatz und gerätespezifische Einschränkungen |
| Hauptwerkzeuge | e2fsck und resize2fs von e2fsprogs | xfs_repair und xfs_growfs von xfsprogs | btrfs-Befehle von btrfs-progs |
| Hauptüberlegungen | Vertraute Werkzeuge, einfache Bedienung und Offline-Verkleinerung | Großer Speicher, gleichzeitige I/O-Operationen und Unterstützung für Distributionsunterstützung im Serverbetrieb | Snapshots, Kompression, Integritätsprüfung und geeignete Wartungspraktiken |
„Nein“ bezieht sich auf ein Feature, das vom Dateisystem selbst bereitgestellt wird. ext4 und XFS können Snapshots verwenden, die vom Logical Volume Manager (LVM), einem Speichersystem oder einer Virtualisierungsplattform bereitgestellt werden. Dateikopien mit gemeinsam genutzten Blöcken, wie XFS-Reflinks, unterscheiden sich ebenfalls von einem zeitpunktbezogenen Snapshot eines gesamten Dateisystems. Die Prüfsummenreihe bezieht sich auf gewöhnliche Dateiinhalte; sie bedeutet nicht, dass ext4 und XFS keinen Metadatenschutz haben.
ext4: vertraute Verwaltung und Offline-Verkleinerung
ext4, kurz für Fourth Extended Filesystem, folgt auf die ext2- und ext3-Familie. Das Debian-13-Installationshandbuch besagt, dass ext4 in den meisten Fällen standardmäßig ausgewählt ist. Es ist ein nützlicher Kandidat, den man zusammen mit den Installations- und Wiederherstellungstools der Distribution in Betracht ziehen kann, wenn keine speziellen Funktionen erforderlich sind. Dass es standardmäßig gewählt wird, bedeutet nicht, dass es immer schneller oder sicherer ist als die Alternativen. Siehe das offizielle Debian-13-Installationshandbuch für die Entscheidungen der Distribution.
Der Standardmodus data=ordered von ext4 protokolliert Metadaten und verwaltet die Reihenfolge zusammenhängender Daten-Schreibvorgänge. Er schreibt nicht eine zweite Kopie aller Datei-Inhalte in das Journal. Ein Dateisystem, das nach einem Stromausfall erfolgreich eingehängt wird, unterscheidet sich daher von einer Anwendung, die ihre letzten Schreibvorgänge beibehält. Die ext4-Administrationsdokumentation des Linux-Kernels erklärt diese Modi.
Verkleinern ist eine praktische betriebliche Unterscheidung. resize2fs kann ein geeignetes ext4-Dateisystem im gemounteten Zustand vergrößern, aber Verkleinern erfordert, dass es ungemountet ist. Das Verkleinern des Root-Dateisystems erfordert in der Regel eine separate Boot-Umgebung und Ausfallzeiten. Das Werkzeug ändert keine Partitionen, daher müssen das Dateisystem und der darunterliegende Speicher separat verwaltet werden. Überprüfen Sie das resize2fs-Handbuch im Hinblick auf die Unterstützungsbedingungen Ihrer Umgebung.
Zum Beispiel, wenn Sie erwarten, später den Speicherplatz zwischen Betriebssystem- und Datenbereichen neu zu verteilen, vergleichen Sie die Unterstützung für Verkleinerung und Ausfallzeiten vor der Installation. Wenn Rücksetz-Snapshots die Hauptanforderung sind, bietet die Wahl von ext4 allein diese nicht: Sie müssen auch ein LVM- oder anderes Backup- und Snapshot-System entwerfen.
XFS: Server mit großen Datenträgern und parallelen I/O-Vorgängen
XFS verwaltet Speicher über Zuteilungsgruppen und ist es wert, für große Dateien und gleichzeitige E/A von mehreren Jobs bewertet zu werden. Red Hat Enterprise Linux (RHEL) 10 verwendet XFS als sein standardmäßiges lokales Dateisystem. Wenn Ihre Distribution, Speicherwerkzeuge und Wiederherstellungsverfahren bereits auf XFS ausgerichtet sind, ist diese operative Unterstützung ebenfalls ein bedeutendes Auswahlkriterium. Der RHEL 10 Datei-Systemvergleichs- und Verwaltungshandbuch dokumentiert dessen Unterstützung und Anwendungsfälle.
XFS wächst durch xfs_growfs, während es eingehängt ist. Zusätzlicher Speicherplatz muss zunächst vom darunterliegenden Gerät verfügbar sein; die Vergrößerung einer Festplatte oder eines logischen Volumens vergrößert nicht unbedingt das Dateisystem. Ein Erweiterungsplan muss zwischen Festplatten-, Partitions-, logischem Volumen- und Dateisystemebene unterscheiden.
Vermeiden Sie es, das Verkleinern von XFS entweder als grundsätzlich unmöglich oder allgemein verfügbar zu beschreiben. Die RHEL 10.0 Release Notes beschreiben das begrenzte Verkleinern innerhalb der letzten Allokationsgruppe als Technology Preview, sofern der entfernte Bereich keine zugeordneten Daten oder Metadaten enthält. Dies unterscheidet sich von einem allgemeinen Verfahren zum Verkleinern auf eine beliebige Größe. Wenn das Verkleinern wichtig ist, sollten Sie Ihre Wahl nicht auf dieser begrenzten Funktion basieren: Überprüfen Sie den Produktionssupport der Distribution oder planen Sie, das System zu sichern und in ein kleineres neues Dateisystem wiederherzustellen. Siehe die RHEL 10.0 Hinweise zum begrenzten XFS-Verkleinern und das xfs_growfs-Handbuch für die Bedingungen.
Beziehen Sie XFS unter den Kandidaten für einen Dateiserver oder einen Server, der große Datendateien speichert, ein, entscheiden Sie jedoch nicht nur anhand der Dateigröße. Überprüfen Sie die Häufigkeit der Erstellung und Löschung kleiner Dateien, die Gleichzeitigkeit, synchrone Schreibvorgänge und Latenzanforderungen unter Bedingungen, die dem tatsächlichen Dienst ähneln.
Btrfs: Kombination von Snapshots, Kompression und Prüfsummen
Btrfs verwendet CoW und bietet Subvolumes, Snapshots, transparente Kompression sowie Daten- und Metadaten-Prüfsummen. Eine Prüfsumme ist ein aus den gespeicherten Inhalten berechneter Prüfwert, der verwendet wird, um Änderungen zu erkennen, wenn sie zurückgelesen werden. Fedora verwendet standardmäßig Btrfs in seinen Desktop-Editionen und Spins, aber ein Desktop-Standard bedeutet nicht die Unterstützung jeder Server- oder Festplattenkonfiguration. Siehe die offizielle Btrfs-Feature-Einführung und Fedoras Btrfs-Richtlinien.
Ein Subvolume ist ein Verzeichnisbaum, der innerhalb eines Dateisystems unabhängig verwaltet werden kann. Ein Snapshot teilt zunächst Datenblöcke mit seiner Quelle und benötigt zusätzlichen Speicherplatz, wenn sich Inhalte ändern. Dies kann einen Zustand vor der Aktualisierung bewahren, aber die Auswahl von Btrfs allein konfiguriert keine automatischen Snapshots, Aufbewahrung oder ein Boot-Wiederherstellungsmenü. Überprüfen Sie die Werkzeuge der Distribution und das Subvolume-Layout zusammen.
Snapshots auf derselben Festplatte ersetzen kein separates Backup. Die Quelle und der Snapshot hängen vom gleichen Speicher und gemeinsamen Blöcken ab, sodass ein Geräteausfall oder eine Beschädigung eines gemeinsamen Blocks beide beeinträchtigen kann. Verschachtelte Subvolumes sind nicht rekursiv im Snapshot des übergeordneten Volumes enthalten. Anwendungen, die aktiv Daten schreiben, wie Datenbanken, benötigen ebenfalls ein Anwendungs-Backup oder eine koordiniertes Anhalten der Schreibvorgänge, um einen konsistenten Zustand zu erhalten. Die Btrfs-Subvolume- und Snapshot-Dokumentation erklärt den Umfang und die Einschränkungen von Snapshots.
Fehlererkennung und -wiederherstellung sind separate Fähigkeiten. btrfs scrub prüft Prüfsummen und andere Informationen, aber die Reparatur beschädigter Inhalte erfordert eine verifizierte gute redundante Kopie des betroffenen Blocks. Wenn eine Einzelplattenkonfiguration nur eine Kopie der Daten speichert, kann eine Prüfsumme Schäden erkennen, ohne eine Kopie zur Wiederherstellung bereitzustellen. Dateien, die mit NOCOW konfiguriert sind, stellen ebenfalls eine Ausnahme bei der Datenprüfung dar. Die offizielle Btrfs Scrub-Dokumentation erklärt die Bedingungen für Prüfung und Reparatur.
Kompression kann je nach Daten den Speicherverbrauch und I/O reduzieren, aber bereits komprimierte Videos oder Archive profitieren möglicherweise wenig. Bei virtuellen Maschinen (VM) oder Datenbanken mit häufigen Überschreibungen sollten Copy-on-Write (CoW), Fragmentierung und Snapshot-Beibehaltung zusammen betrachtet werden. Die willkürliche Anwendung von NOCOW zur Leistungssteigerung wirkt sich auch auf Datenprüfsummen und Kompression aus. Siehe die Btrfs-Mount-Optionsdokumentation für die Wechselwirkungen.
Beim Kombinieren von Festplatten prüfen Sie jedes Redundant Array of Independent Disks (RAID)-Profil separat. Die offizielle Funktionsbeschreibung bezeichnet RAID5/6 als experimentell und nicht produktionsreif. Behandeln Sie diese Profile nicht als gleichwertig mit den anderen; überprüfen Sie die Kernel- und Tool-Versionen zusammen mit dem Btrfs-Funktionsstatus.
Welches Dateisystem passt zu Ihrer Umgebung?
Die folgenden Kriterien verbinden Funktionsunterschiede mit praktischen Anforderungen. Sie stellen keine Rangfolge oder universelle Konfigurationsempfehlung dar.
| Situation | Erste Kandidaten | Was zu prüfen ist |
|---|---|---|
| Allgemeiner oder Entwicklungs-PC | Das von der Distribution unterstützte Standarddateisystem | Integration mit Installation, Verschlüsselung, Updates und Wiederherstellung. Ein unbekannter Name allein ist kein Grund, ein standardmäßiges Btrfs zu ersetzen |
| Mögliches zukünftiges Verkleinern | ext4 | Ob das Aushängen und Ausfallzeiten akzeptabel sind und ob die zugrunde liegende Partition oder das logische Volume ebenfalls sicher geändert werden kann |
| Großer gleichzeitiger Server | XFS unter die Kandidaten einbeziehen | Distributionsunterstützung, tatsächliche Arbeitslastleistung, Expansionspläne und Wiederherstellungsverfahren für die Migration zu einem kleineren Volume |
| Snapshots und Integrität | Btrfs | Snapshot-Erstellung, Bereinigung und Wiederherstellung; Überwachung des freien Speicherplatzes; Backups auf separatem Speicher |
| Datenbank- oder VM-Speicher | Vom Produktanbieter und der Distribution unterstützte Konfigurationen | Synchrone Schreibvorgänge, Latenz, CoW-Einstellungen, konsistente Backups und Tests mit der tatsächlichen Arbeitslast |
Wenn Ihr Hauptziel darin besteht, das Betriebssystem nach einem fehlgeschlagenen Update zurückzusetzen, prüfen Sie, welche Subvolumes das Wiederherstellungstool tatsächlich wiederherstellt, sowie die Funktionen von Btrfs. Das Design unterscheidet sich je nachdem, ob Benutzerdaten aktuell bleiben sollen oder zum gleichen Punkt wie das Betriebssystem zurückkehren sollen. Auf einem Server, dessen Datenbereich nur wächst, können Distribution-Support sowie Erweiterungs- und Backup-Verfahren wichtiger sein als das Verkleinern.
Bedingungen, die in einem Leistungsvergleich übereinstimmen müssen
Ein Dateisystemname allein sagt nichts über die Geschwindigkeit aus. Selbst auf derselben SSD können das Erstellen vieler kleiner Dateien, das sequenzielle Lesen einer großen Datei und das Ausführen von synchronen Datenbankschreibvorgängen unterschiedliche Ergebnisse liefern. Kurze Kopiertests können ebenfalls stark durch Speicher-Caching beeinflusst werden.
- Speicher: Verwenden Sie dieselbe SSD oder HDD, Verbindung, Belegung und freie Speicherbedingungen.
- Arbeitslast: Stimmen Sie Dateigrößen und -anzahlen, Lese-/Schreibverhältnis, sequenziellen oder zufälligen Zugriff sowie Parallelität ab.
- Funktionen und Einstellungen: Notieren Sie Kompression, CoW, Snapshots, Verschlüsselung und Einhängeoptionen. Vergleichen Sie nicht aktivierte und deaktivierte Funktionen, als wären die Bedingungen identisch.
- Haltbarkeit: Stimmen Sie die synchronen Schreibvorgänge der Anwendung und die Gerätespeicher-Cache-Richtlinien ab. Die Abschwächung der Datenerhaltungs-Garantien ist nicht einfach eine Leistungsverbesserung.
- Versionen und Messungen: Protokollieren Sie Kernel- und Verwaltungstool-Versionen und untersuchen Sie Latenz sowie Variation zwischen Läufen sowie den Durchsatz.
Für einen Protokollspeicher-Server beispielsweise testen Sie überlappende Protokollanhänge, Rotation, Komprimierung und Sicherungen, anstatt nur eine große Datei zu kopieren. Stellen Sie die Reduzierung des Speicherverbrauchs durch Komprimierung den CPU-Kosten gegenüber. Wenn der gemessene Vorteil gering ist, berücksichtigen Sie auch die Migrationskosten und das Risiko der Änderung des bestehenden Dateisystems.
Überprüfen Sie das aktuelle Format und planen Sie Änderungen.
Untersuchen Sie das aktuelle System, ohne es zu ändern.
Auf einem typischen Linux-System fragen die folgenden Befehle Geräte, Mounts und Kapazität ab. lsblk und findmnt stammen von util-linux; auf GNU/Linux stammt df normalerweise von coreutils. Diese Befehle erstellen oder ändern das Dateisystemformat nicht.
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS findmnt -T / -o TARGET,SOURCE,FSTYPE,OPTIONS df -hT /
Verwenden Sie lsblk, um Gerätebeziehungen zu inspizieren, und FSTYPE sowie findmnt, um den Typ und die aktiven Mount-Optionen für das Dateisystem zu sehen, das den Root-Pfad enthält. df -hT / zeigt den Typ und die Kapazität dieses Dateisystems. Ersetzen Sie / durch Ihr tatsächliches Datenverzeichnis, um diesen Pfad zu inspizieren.
Zum Beispiel, wenn findmnt xfs in FSTYPE meldet, befindet sich dieser Pfad auf XFS. Die eigene FSTYPE einer Festplatte kann leer sein, während eine Partition oder ein logisches Volume das Format anzeigt. Ein Container kann overlay melden; gehen Sie nicht davon aus, dass dies das Format der Host-Festplatte ist. Wenn eine ältere lsblk MOUNTPOINTS nicht unterstützt, verwenden Sie MOUNTPOINT. Konsultieren Sie das lsblk-Handbuch und das findmnt-Handbuch für Detailoptionen.
Wenn die Btrfs-Speichernutzung von den Erwartungen abweicht, kann btrfs filesystem usage Daten, Metadaten und Gerätezuweisungen zusammen anzeigen. Das Löschen von Dateien gibt ihren Speicher möglicherweise nicht sofort frei, wenn Snapshots die Daten noch referenzieren. Anstatt sich nur auf die Verzeichnissummen zu verlassen, wenden Sie die Erklärungen in der Btrfs-Speichernutzung- und Größenänderungsdokumentation an.
Eine Migrationssequenz für ein anderes Dateisystem
Das Ausführen von mkfs eines anderen Formats auf einem bestehenden Dateisystem ist keine daten-erhaltende Konvertierung. Ein allgemeiner Migrationsplan ist leichter nachvollziehbar, wenn er rund um ein neues Ziel aufgebaut und die Wiederherstellung überprüft wird.
- Identifizieren Sie das Quellgerät, Format und Einhängepunkt, überprüfen Sie die Anwendungsunterstützung, sichern Sie dann auf unabhängigen Speicher und prüfen Sie, ob die Wiederherstellung funktioniert.
- Bereiten Sie das Ziel-Dateisystem auf einer neuen Festplatte oder einem separat verfügbaren Bereich vor. Bestätigen Sie erneut, dass es das beabsichtigte leere Ziel ist, bevor Sie es formatieren.
- Beschaffen Sie konsistente Daten durch Stillstand des Dienstes oder die eigene Backup-Funktion der Anwendung. Kopieren oder stellen Sie die erforderlichen Eigentumsrechte, Berechtigungen, Access Control Lists (ACLs), erweiterte Attribute und Hardlinks wieder her. Gehen Sie nicht davon aus, dass ein Werkzeug, das Dateiinhalte kopiert, all diese Informationen bewahrt.
- Überprüfen Sie Dateien und Anwendungen am neuen Pfad und aktualisieren Sie dann
/etc/fstabsowie die Dienst-Einstellungen unter Verwendung des neuen Dateisystem-Identifiers oder UUID. Das Verschieben eines Betriebssystem-Root erfordert ein separates Verfahren, das den Bootloader und die frühe Boot-Umgebung abdeckt. - Nach dem Neustart prüfen Sie Mounts, Dienste und Berechtigungen. Bewahren Sie die Quelle und das Backup auf, bis der Wechsel überprüft ist, damit Sie im Falle von Problemen Schreibvorgänge zum neuen Ziel stoppen und zu den überprüften Originalen und Einstellungen zurückkehren können. Beziehen Sie Daten, die nach dem Wechsel erstellt wurden, in den Rollback-Plan ein.
Die Reihenfolge der Ebenen ist auch beim Ändern der Größe ohne Formatänderung wichtig. Normalerweise wird der zugrunde liegende Speicher erweitert, bevor das Dateisystem vergrößert wird; wenn das Verkleinern unterstützt wird, sollte das Dateisystem vor der Reduzierung des zugrunde liegenden Speichers verkleinert werden. Das Anpassen der Größe von Btrfs aktualisiert auch nicht automatisch die Partitionstabelle. Dieses Prinzip ist kein vollständiges Verfahren: Verschlüsselung, LVM und RAID erfordern jeweils ihre eigenen unterstützten Schritte.
Verwenden Sie bei der Untersuchung von Fehlern Werkzeuge, die für das jeweilige Dateisystem geeignet sind. Die e2fsck von ext4, die xfs_repair von XFS sowie die Prüf- und Wiederherstellungswerkzeuge von Btrfs sind nicht austauschbar. Insbesondere sollten Sie btrfs check --repair nicht routinemäßig als erste Lösung verwenden. Die offizielle Dokumentation rät davon ab, ohne Anleitung eines Entwicklers oder erfahrenen Benutzers. Überprüfen Sie fsck und Vorsichtsmaßnahmen für dateisystemspezifische Prüfungen sowie die Btrfs-Checker-Warnung und bereiten Sie Sicherungen und einen Wiederherstellungsplan vor, bevor Sie Änderungen vornehmen.




