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
| Merkmal | Wert oder Unterstützung | Bedeutung |
|---|---|---|
| Architektur | 64-Bit-Dateisystem | Sehr große adressierbare Größenbereiche für Dateien und Dateisysteme |
| Journaling | Unterstützt | Metadatenänderungen werden protokolliert; das unterstützt die Konsistenz nach Ausfällen |
| Blockgrößenbereich | 512 Byte bis 64 KiB | Die Blockgröße beeinflusst Speicherorganisation, Metadaten und mögliche Grenzen |
| Maximale Dateigröße | Bis zu 8 EiB | Geeignet für sehr große einzelne Dateien |
| Maximale Dateisystemgröße | Bis zu 16 EiB | Geeignet für sehr große Datenbestände |
| Maximale Dateinamenslänge | 255 Byte | Begrenzt die Länge eines einzelnen Dateinamens, nicht den vollständigen Pfad |
| ACLs | Unterstützt | Differenzierte Zugriffsregeln zusätzlich zu klassischen Unix-Rechten |
| Quotas | Unterstützt | Begrenzung und Überwachung des Speicherverbrauchs von Benutzern oder Gruppen |
| HSM | Als Einsatzmöglichkeit integrierbar | Daten können nach Regeln zwischen Speicherebenen eingeordnet oder verschoben werden |
| Volume-Manager-Integration | Geeignet für LVM und andere Speicherschichten | Das Dateisystem kann auf logischen Volumes oder anderen Blockgeräten liegen |
| Vergrößern | Online möglich | Ein eingehängtes XFS-Dateisystem kann nach Erweiterung des Blockgeräts wachsen |
| Verkleinern | Nicht direkt möglich | Fü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.
| Einsatzfall | Eignung | Begründung | Zu beachtende Einschränkung |
|---|---|---|---|
| Große Mediendateien | Sehr gut geeignet | Extent-basierte Verwaltung und Skalierung unterstützen große Dateien | Durchsatz hängt auch von Datenträgern, Netzwerk und Zugriffsmuster ab |
| Backup-Speicher | Gut geeignet | Große Datenbestände und sequentielle Schreibvorgänge passen zum Profil | Journaling ersetzt keine mehreren Sicherungskopien |
| Virtuelle Maschinen und Images | Gut geeignet | Virtuelle Festplatten können groß sein und hohe I/O-Last erzeugen | Storage-Layout, RAID und Hypervisor-Konfiguration sind entscheidend |
| Allgemeine Serverdaten | Geeignet | Stabile Verwaltung, ACLs, Quotas und LVM-Integration | Für jeden kleinen oder stark spezialisierten Workload existieren Alternativen |
| Speicher mit erwarteter späterer Verkleinerung | Nur bedingt geeignet | XFS kann online wachsen | Ein 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.
| Ziel | Vorgehen | XFS-spezifischer Hinweis |
|---|---|---|
| Dateisystem vergrößern | Blockgerät oder Logical Volume erweitern; anschließend xfs_growfs am korrekten Mountpoint ausführen | Online möglich, sofern die zugrunde liegende Speicherschicht erweitert wurde |
| Dateisystem verkleinern | Daten sichern oder kopieren, kleineres XFS-Dateisystem anlegen und Daten kontrolliert zurückspielen | Ein 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:
- Belegung, Berechtigungen, ACLs, Quotas und benötigte Konfiguration dokumentieren.
- Eine überprüfte Sicherung der Daten erstellen.
- Das alte Dateisystem aushängen, sofern dies für die Umstellung erforderlich ist.
- Das kleinere Blockgerät oder Logical Volume bereitstellen.
- Darauf ein neues XFS-Dateisystem erstellen.
- Das neue Dateisystem einhängen und die Daten einschließlich Eigentümern, Rechten und ACLs zurückkopieren.
- 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
lsblkprüfen, ob das Blockgerät oder Logical Volume tatsächlich erweitert wurde. - Mit
df -hTdie 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/datenausfü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
blkiderneut prüfen. - Kontrollieren, ob der Mountpoint existiert.
- Syntax und Dateisystemtyp in
/etc/fstabprüfen. - Mit
mount -atesten, 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 -nzur 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_repairsollten bei produktiven Daten erst nach Sicherung und auf einem nicht eingehängten Dateisystem eingesetzt werden.