VMware ESXi and vSphere Cluster Management

XFS-Dateisystem unter Linux: Eigenschaften, Einsatz und Verwaltung

XFS unter Linux verständlich erklärt: Architektur, Journaling, Größenlimits, Einsatzbereiche, LVM, Mounts, Vergrößerung, Quotas, ACLs und Reparatur.

XFS ist ein skalierbares, journalingfähiges Dateisystem für Linux. Es spielt seine Stärken besonders bei großen Dateien, umfangreichen Datenbeständen und leistungsfähiger Speicherhardware aus. Typische Einsatzbereiche sind Datei- und Medienserver, Backup-Speicher, Virtualisierungs-Images sowie wissenschaftliche Datenablagen.

Dieser Artikel erklärt die Architektur von XFS, wichtige Größen- und Namensgrenzen, Verwaltungsfunktionen und die grundlegenden Administrationsaufgaben. Ein zentraler Punkt bei der Planung ist: Ein bestehendes XFS-Dateisystem kann online vergrößert, aber nicht direkt verkleinert werden.

Einordnung von XFS

Die Bezeichnung XFS wird als Extents File System verstanden. Ein Extent ist ein zusammenhängender Bereich von Datenblöcken, der vom Dateisystem als Einheit verwaltet wird.

XFS entstand ursprünglich bei Silicon Graphics für das Betriebssystem IRIX. Später wurde es für Linux verfügbar und ist heute Bestandteil vieler Linux-Distributionen. XFS ist als 64-Bit-Dateisystem ausgelegt. Damit kann es sehr große Adressräume für Dateien und Dateisysteme verwalten.

Ein journalingfähiges Dateisystem protokolliert wichtige Änderungen zunächst in einem Journal. Nach einem ungeplanten Ausfall kann das System dadurch die Konsistenz der Dateisystemstrukturen schneller prüfen und wiederherstellen, als wenn jede Struktur vollständig durchsucht werden müsste.

Zentrale Eigenschaften und Architektur

Extent-basierte Speicherverwaltung

Viele Dateisysteme verwalten Dateien als einzelne Blöcke. XFS fasst zusammenhängende Blöcke nach Möglichkeit zu Extents zusammen. Eine große Datei kann dadurch beispielsweise durch wenige große Bereiche beschrieben werden, statt durch eine lange Liste einzelner Blöcke.

Diese Struktur verringert den Verwaltungsaufwand und kann Fragmentierung reduzieren. Das ist besonders bei großen, überwiegend sequentiell geschriebenen Dateien nützlich, etwa bei Videodateien, Backups oder virtuellen Maschinen. Eine gute Leistung ist dennoch nicht garantiert: Dateimuster, freier Speicher, Hardware, RAID-Konfiguration und Mount-Optionen beeinflussen das Ergebnis.

Journaling und Wiederherstellung

Das Journal protokolliert vor allem Metadatenänderungen. Metadaten beschreiben beispielsweise Verzeichnisse, Dateigrößen, Blockzuordnungen und Zeitstempel. Nach einem Absturz kann XFS unvollständige Transaktionen erkennen und die Dateisystemstrukturen in einen konsistenten Zustand bringen.

Journaling ersetzt keine Datensicherung. Es schützt nicht automatisch vor dem Löschen einer Datei, einem Defekt des Datenträgers oder beschädigten Nutzdaten. Nach einem Stromausfall sollten zusätzlich System- und Hardwareprotokolle geprüft werden.

Skalierbarkeit und freier Speicher

XFS ist für große Dateisysteme, große Dateien und Systeme mit leistungsfähiger Hardware konzipiert. Die interne Verwaltung des freien Speicherplatzes ist darauf ausgelegt, freie Bereiche effizient zu erfassen und für neue Extents bereitzustellen.

Bei kleinen Dateisystemen oder sehr einfachen Workloads sind diese Eigenschaften nicht automatisch ein Vorteil. Ein Dateisystem sollte immer nach dem erwarteten Zugriffsmuster, den Änderungsanforderungen, den verfügbaren Werkzeugen und dem Betriebskonzept ausgewählt werden.

Technische Kenndaten von XFS

MerkmalWert oder UnterstützungBedeutung
Architektur64-Bit-DateisystemSehr große adressierbare Größenbereiche für Dateien und Dateisysteme
JournalingUnterstütztMetadatenänderungen werden protokolliert; das unterstützt die Konsistenz nach Ausfällen
Blockgrößenbereich512 Byte bis 64 KiBDie Blockgröße beeinflusst Speicherorganisation, Metadaten und mögliche Grenzen
Maximale DateigrößeBis zu 8 EiBGeeignet für sehr große einzelne Dateien
Maximale DateisystemgrößeBis zu 16 EiBGeeignet für sehr große Datenbestände
Maximale Dateinamenslänge255 ByteBegrenzt die Länge eines einzelnen Dateinamens, nicht den vollständigen Pfad
ACLsUnterstütztDifferenzierte Zugriffsregeln zusätzlich zu klassischen Unix-Rechten
QuotasUnterstütztBegrenzung und Überwachung des Speicherverbrauchs von Benutzern oder Gruppen
HSMAls Einsatzmöglichkeit integrierbarDaten können nach Regeln zwischen Speicherebenen eingeordnet oder verschoben werden
Volume-Manager-IntegrationGeeignet für LVM und andere SpeicherschichtenDas Dateisystem kann auf logischen Volumes oder anderen Blockgeräten liegen
VergrößernOnline möglichEin eingehängtes XFS-Dateisystem kann nach Erweiterung des Blockgeräts wachsen
VerkleinernNicht direkt möglichFür eine kleinere Größe ist ein neues Dateisystem und eine Datenübertragung erforderlich

Die genannten Maximalwerte sind technische Obergrenzen. Die tatsächlich nutzbaren Grenzen können von Plattform, Kernel, Administrationswerkzeugen und der gewählten Blockgröße abhängen. Zusätzlich können Partitionstabellen, Volume-Manager, RAID-Schichten oder Anwendungen eigene Begrenzungen einführen.

Leistungsprofil und geeignete Einsatzbereiche

XFS eignet sich besonders für große Dateien und große zusammenhängende Datenbestände. Ein Medienserver kann beispielsweise viele Video-, Audio- und Bilddateien speichern. Bei einem Backup-Speicher sind hohe Kapazität und effiziente Verarbeitung großer Dateien oft wichtiger als die Möglichkeit, das Dateisystem später zu verkleinern.

EinsatzfallEignungBegründungZu beachtende Einschränkung
Große MediendateienSehr gut geeignetExtent-basierte Verwaltung und Skalierung unterstützen große DateienDurchsatz hängt auch von Datenträgern, Netzwerk und Zugriffsmuster ab
Backup-SpeicherGut geeignetGroße Datenbestände und sequentielle Schreibvorgänge passen zum ProfilJournaling ersetzt keine mehreren Sicherungskopien
Virtuelle Maschinen und ImagesGut geeignetVirtuelle Festplatten können groß sein und hohe I/O-Last erzeugenStorage-Layout, RAID und Hypervisor-Konfiguration sind entscheidend
Allgemeine ServerdatenGeeignetStabile Verwaltung, ACLs, Quotas und LVM-IntegrationFür jeden kleinen oder stark spezialisierten Workload existieren Alternativen
Speicher mit erwarteter späterer VerkleinerungNur bedingt geeignetXFS kann online wachsenEin direkter Shrink ist nicht verfügbar

Die tatsächliche Leistung hängt vom Workload ab. Viele große sequentielle Dateien stellen andere Anforderungen als Millionen kleiner Dateien mit zufälligen Zugriffen. Auch SSDs, HDDs, NVMe-Geräte, RAID-Level, Cache-Einstellungen, LVM und Mount-Konfiguration wirken sich auf Durchsatz und Latenz aus.

XFS ist deshalb nicht automatisch die beste Wahl für jeden Workload. ext4 ist beispielsweise ein weit verbreiteter Allrounder. Btrfs bietet andere Funktionen wie Copy-on-Write und Snapshots. Die Auswahl sollte sich an benötigten Funktionen, Betriebswissen, Sicherungskonzept und Änderbarkeit der Speicherkapazität orientieren.

Verwaltungsfunktionen

ACLs

Eine ACL (Access Control List) ergänzt die klassischen Linux-Rechte für Besitzer, Gruppe und andere Benutzer. Damit kann beispielsweise ein gemeinsamer Projektbereich so konfiguriert werden, dass mehrere Benutzer lesen, bestimmte Gruppen schreiben und einzelne Konten zusätzliche Rechte erhalten.

getfacl /mnt/daten/projektdatei

Bei der Auswertung müssen Besitzer, Gruppe, ACL-Einträge, ACL-Maske und gegebenenfalls Vererbungsregeln berücksichtigt werden. Eine scheinbar passende klassische Rechteanzeige erklärt daher nicht immer vollständig, warum ein Zugriff erlaubt oder abgelehnt wird.

Disk Quotas

Eine Disk Quota begrenzt oder überwacht den Speicherverbrauch von Benutzern oder Gruppen. Quotas sind sinnvoll, wenn mehrere Benutzer einen gemeinsamen XFS-Speicher verwenden. Sie verhindern beispielsweise, dass ein einzelnes Konto den gesamten verfügbaren Platz belegt.

Eine Quota ist kein Ersatz für Monitoring. Administratoren sollten zusätzlich freien Speicher, Inodes, Fehlermeldungen und Wachstumstrends überwachen.

LVM und andere Speicherschichten

LVM (Logical Volume Manager) stellt logische Volumes bereit, die sich häufig flexibler erweitern lassen als einzelne Partitionen. XFS kann auf einem solchen Logical Volume liegen. Weitere Schichten können physische Datenträger, RAID, Verschlüsselung oder Storage-Systeme sein.

Beim Vergrößern müssen die Schichten in der richtigen Reihenfolge betrachtet werden: Zuerst muss die unterliegende Schicht zusätzlichen Platz bereitstellen. Danach wird das XFS-Dateisystem an diese neue Größe angepasst.

HSM

HSM steht für Hierarchical Storage Management. Dabei werden Daten abhängig von Zugriffshäufigkeit, Alter oder anderen Regeln zwischen Speicherebenen eingeordnet, etwa zwischen schnellem und kostengünstigem Speicher. XFS kann in Umgebungen eingesetzt werden, in denen solche hierarchischen Speicherlösungen verwendet werden.

Grundlegende Administration

Vorhandene Dateisysteme prüfen

Vor Änderungen sollten Gerät, Dateisystemtyp, Mountpoint, Größe und freier Speicher eindeutig geprüft werden.

lsblk -f
findmnt -t xfs
df -hT

lsblk -f zeigt unter anderem Blockgeräte, Dateisystemtypen und UUIDs. findmnt -t xfs listet eingehängte XFS-Dateisysteme. df -hT zeigt Dateisystemtyp, Kapazität, Belegung und freien Speicher in gut lesbaren Einheiten.

Neues XFS-Dateisystem erstellen

Zum Erstellen wird mkfs.xfs verwendet. Das Ziel kann eine Partition, ein Logical Volume oder ein anderes geeignetes Blockgerät sein.

sudo mkfs.xfs /dev/DEVICE
sudo mkdir -p /mnt/daten
sudo mount /dev/DEVICE /mnt/daten

Dauerhafte Einbindung mit /etc/fstab

Damit ein Dateisystem nach einem Neustart automatisch eingehängt wird, kann es in /etc/fstab eingetragen werden. Eine UUID ist meist robuster als ein Gerätename wie /dev/sdb1, weil sich Gerätenamen durch Erkennungsreihenfolge oder Hardwareänderungen ändern können.

sudo blkid /dev/DEVICE

UUID=ERMITTELTE-UUID /mnt/daten xfs defaults 0 0

sudo mount -a

Der Mountpoint muss existieren. Nach einer Änderung an /etc/fstab sollte sudo mount -a ohne Fehlermeldung ausgeführt werden, bevor das System neu gestartet wird.

XFS vergrößern und verkleinern

Online vergrößern

Ein XFS-Dateisystem kann im laufenden Betrieb vergrößert werden. Dafür muss zuerst das zugrunde liegende Blockgerät oder Logical Volume erweitert werden. Erst danach wird XFS angewiesen, den zusätzlichen Platz zu verwenden.

sudo lvextend -L +100G /dev/VG/LOGICAL_VOLUME
sudo xfs_growfs /mnt/daten
df -h /mnt/daten

Der erste Befehl ist ein Beispiel für LVM. Je nach Umgebung kann der Speicher auch durch eine vergrößerte Partition, ein RAID-Gerät oder ein Storage-Volume bereitgestellt werden. xfs_growfs arbeitet mit dem eingehängten Mountpoint, nicht mit dem Gerätenamen. Anschließend bestätigt df, ob die zusätzliche Kapazität verfügbar ist.

ZielVorgehenXFS-spezifischer Hinweis
Dateisystem vergrößernBlockgerät oder Logical Volume erweitern; anschließend xfs_growfs am korrekten Mountpoint ausführenOnline möglich, sofern die zugrunde liegende Speicherschicht erweitert wurde
Dateisystem verkleinernDaten sichern oder kopieren, kleineres XFS-Dateisystem anlegen und Daten kontrolliert zurückspielenEin bestehendes XFS-Dateisystem lässt sich nicht direkt schrumpfen

Warum XFS nicht direkt verkleinert werden kann

XFS stellt keine direkte Shrink-Funktion für ein bestehendes Dateisystem bereit. Ein kleineres Logical Volume oder eine kleinere Partition unter ein unverändert großes XFS-Dateisystem zu legen, würde Datenstrukturen abschneiden und das Dateisystem beschädigen.

Der sichere Ablauf besteht aus einer aktuellen Sicherung, dem Anlegen eines neuen kleineren Dateisystems und dem kontrollierten Zurückspielen der Daten:

  1. Belegung, Berechtigungen, ACLs, Quotas und benötigte Konfiguration dokumentieren.
  2. Eine überprüfte Sicherung der Daten erstellen.
  3. Das alte Dateisystem aushängen, sofern dies für die Umstellung erforderlich ist.
  4. Das kleinere Blockgerät oder Logical Volume bereitstellen.
  5. Darauf ein neues XFS-Dateisystem erstellen.
  6. Das neue Dateisystem einhängen und die Daten einschließlich Eigentümern, Rechten und ACLs zurückkopieren.
  7. Die Einbindung testen und die Sicherung erst löschen, wenn die Wiederherstellung geprüft wurde.

Wartung und Reparatur

Für Diagnose und Reparatur stehen XFS-spezifische Werkzeuge zur Verfügung. xfs_repair untersucht und repariert ein XFS-Dateisystem. Die Reparatur soll auf einem nicht eingehängten Dateisystem erfolgen.

sudo umount /mnt/daten
sudo xfs_repair -n /dev/DEVICE
sudo xfs_repair /dev/DEVICE

Die Option -n führt eine Analyse ohne Änderungen aus. Erst wenn die Situation verstanden und eine aktuelle Sicherung vorhanden ist, sollte eine echte Reparatur erwogen werden. Bei produktiven Daten sind Reparaturmaßnahmen besonders sorgfältig zu planen, da beschädigte Daten oder inkonsistente Hardware nicht durch ein Dateisystemwerkzeug vollständig geheilt werden können.

Bei einem Verdacht auf Hardwareprobleme gehören auch Kernelmeldungen, Systemprotokolle, SMART- oder Storage-Diagnosen und der Zustand von RAID-Komponenten zur Untersuchung. Ein sauber repariertes Dateisystem ersetzt keine ausgefallene Hardware und keine Datensicherung.

Fehlerbehebung

xfs_growfs meldet einen Fehler oder zeigt keine größere Kapazität

  • Mit lsblk prüfen, ob das Blockgerät oder Logical Volume tatsächlich erweitert wurde.
  • Mit df -hT die vom Mountpoint erkannte Größe vergleichen.
  • Kontrollieren, ob der korrekte Mountpoint angegeben wurde und das Dateisystem eingehängt ist.
  • Zuerst die unterliegende Speicherschicht erweitern, danach xfs_growfs /mnt/daten ausführen.

Ein XFS-Dateisystem soll verkleinert werden

Ein direkter Shrink-Versuch ist nicht der richtige Weg. Daten müssen gesichert oder kopiert werden. Anschließend wird ein kleineres Dateisystem erstellt und die Daten werden mit erhaltenen Eigentümern, Rechten und gegebenenfalls ACLs zurückübertragen.

Mount schlägt nach einer neuen fstab-Zeile fehl

  • Die UUID mit blkid erneut prüfen.
  • Kontrollieren, ob der Mountpoint existiert.
  • Syntax und Dateisystemtyp in /etc/fstab prüfen.
  • Mit mount -a testen, bevor ein Neustart durchgeführt wird.

Dateisystem wirkt nach einem Absturz beschädigt

  • System- und Hardwareprotokolle auf Stromausfälle, I/O-Fehler oder RAID-Probleme prüfen.
  • Das Dateisystem aushängen.
  • Zunächst xfs_repair -n zur Analyse ausführen.
  • Vor einer Reparatur eine aktuelle Sicherung erstellen und mögliche Datenverluste berücksichtigen.

Zugriff trotz passender Unix-Rechte verweigert

Eine ACL kann zusätzliche Regeln enthalten oder den effektiven Zugriff einschränken. Mit folgendem Befehl lassen sich die ACL-Einträge anzeigen:

getfacl /mnt/daten/projektdatei

Bei der Korrektur müssen Besitzer, Gruppe, ACL-Maske und mögliche Vererbungsregeln gemeinsam betrachtet werden.

Vergleich und Auswahl

XFS wird häufig gewählt, wenn Skalierung, große Dateien, große Datenbestände und flexible Erweiterung wichtiger sind als eine spätere Verkleinerung. Die Integration mit LVM, ACLs und Quotas unterstützt typische Serverumgebungen.

  • XFS: stark bei großen Datenmengen, großen Dateien und Online-Vergrößerung; kein direkter Shrink.
  • ext4: verbreiteter Allrounder mit umfangreicher Unterstützung und einem für viele Systeme passenden Funktionsumfang.
  • Btrfs: bietet unter anderem Copy-on-Write-orientierte Funktionen und Snapshots, verfolgt aber ein anderes Architektur- und Verwaltungsmodell.
  • JFS und ReiserFS: können als verwandte historische Vergleichsthemen betrachtet werden, sind jedoch nicht der Schwerpunkt bei der Auswahl von XFS.

Für ein System, dessen Speicherbereich voraussichtlich später kleiner werden muss, sollte die fehlende Shrink-Funktion von XFS ausdrücklich in die Planung einfließen. Für ein wachsendes Medienarchiv auf einem Logical Volume kann XFS dagegen sehr gut passen.

Praxisbeispiele

Großes Medienarchiv

Ein Server speichert große Video-, Audio- und Bilddateien. XFS wird wegen seiner Eignung für große Dateien und umfangreiche Datenbestände ausgewählt. Der Speicher liegt zunächst auf einem Logical Volume. Wenn das Archiv wächst, wird zuerst das Logical Volume erweitert und danach das eingehängte XFS-Dateisystem mit xfs_growfs angepasst.

Gemeinsamer Projektbereich

Mehrere Benutzer arbeiten in einem gemeinsamen XFS-Dateisystem. ACLs ermöglichen differenzierte Zugriffsrechte für einzelne Konten und Gruppen. Quotas begrenzen den Verbrauch, damit einzelne Benutzer oder Gruppen nicht den gesamten Speicher belegen.

Geplante Verkleinerung eines Datenbereichs

Ist ein XFS-Dateisystem größer als erforderlich, wird kein direkter Shrink versucht. Stattdessen werden die Daten gesichert, ein kleineres XFS-Dateisystem angelegt und die Daten kontrolliert zurückübertragen. Vor der Umstellung müssen auch ACLs, Eigentümer, Quotas und die dauerhafte Mount-Konfiguration berücksichtigt werden.

Zusammenfassung

  • XFS ist ein 64-Bit-Journaling-Dateisystem mit Extent-basierter Speicherverwaltung.
  • Es eignet sich besonders für große Dateien, große Datenbestände, Medien, Backups, virtuelle Maschinen und wissenschaftliche Daten.
  • ACLs, Quotas, HSM-Lösungen und LVM- beziehungsweise Volume-Management-Schichten können integriert werden.
  • Die technischen Obergrenzen reichen bis zu 8 EiB pro Datei und 16 EiB pro Dateisystem; effektive Grenzen hängen von der Umgebung ab.
  • Ein eingehängtes XFS-Dateisystem kann nach Erweiterung des zugrunde liegenden Speichers online wachsen.
  • Ein bestehendes XFS-Dateisystem kann nicht direkt verkleinert werden. Dafür sind Sicherung, neues Dateisystem und Datenübertragung erforderlich.
  • Reparaturwerkzeuge wie xfs_repair sollten bei produktiven Daten erst nach Sicherung und auf einem nicht eingehängten Dateisystem eingesetzt werden.