linux-rhel-centos-fedora storage filesystem xfs performance rhel

XFS Filesystem: The RHEL Standard (Artikel 087)

Tiefgehende Analyse des XFS-Dateisystems unter RHEL. Erfahren Sie alles über Skalierbarkeit, Performance-Optimierung und die Wartung von hochvolumigen Storage-Systemen.

# XFS Deep Dive: Das Kraftpaket für Enterprise-Daten

TL;DR / Management Summary XFS ist seit RHEL 7 das Standard-Dateisystem der Red Hat Familie. Es wurde ursprünglich von Silicon Graphics (SGI) für High-End-Server entwickelt und ist auf extreme Skalierbarkeit (Petabyte-Bereich) und parallele I/O-Zugriffe optimiert. Ein Senior Admin muss wissen: XFS ist unschlagbar schnell beim Schreiben großer Mengen, kann aber im Gegensatz zu Ext4 nicht verkleinert werden.


# 1. Einführung & Architektur

Allocation Groups und Journaling.

XFS nutzt ein konsequentes B-Baum-Design für alle Metadaten. Ein entscheidendes Feature sind die Allocation Groups (AG).

# Architektur-Übersicht (Mermaid)

graph TD
    A[XFS Partition] --> B[Allocation Group 0]
    A --> C[Allocation Group 1]
    A --> D[Allocation Group N]
    B --> E[Superblock / Inodes / Free Space]
    F[Kernel: Parallel I/O] --> B
    F --> C
    F --> D
    G[Journal / Intent Logging] --> A
  • Allocation Groups: Erlauben es dem Kernel, gleichzeitig auf verschiedene Bereiche der Disk zu schreiben (Locking-Minimierung).
  • Journaling: Schützt die Dateisystem-Metadaten vor Korruption bei Stromausfällen.

# 2. Erstellung & Konfiguration

Optimiert für die Hardware.

# XFS formatieren

Normalerweise erkennt XFS die Geometrie der Disk (Stripes, Blocks) automatisch.

sudo mkfs.xfs /dev/sdb1

# Mount-Optionen für Performance

In der /etc/fstab nutzen wir meist defaults. Aber für High-Load Server:

  • noatime: Deaktiviert das Schreiben des Zugriffszeitstempels (spart I/O).
  • logbsize: Erhöht den In-Memory Journal Puffer (z.B. 256k).
# Beispiel fstab
UUID=xxx /data xfs defaults,noatime,logbsize=256k 0 0

# 3. Day-2 Operations: Wartung & Resizing

Im laufenden Betrieb skalieren.

# Online Vergrößern (Online Resize)

XFS kann vergrößert werden, während das Dateisystem gemountet ist.

# 1. LV vergrößern (siehe Artikel 020)
sudo lvextend -L +100G /dev/vg_data/lv_data

# 2. XFS informieren (Pfad ist der MOUNTPOINT!)
sudo xfs_growfs /mnt/data

# Integrität prüfen (Repair)

XFS führt beim Booten kein klassisches fsck durch. Wenn Fehler auftreten:

# Prüfen & Reparieren (Nur ungemountet!)
sudo xfs_repair /dev/sdb1

# 4. Troubleshooting & “War Stories”

Wenn die Metadaten hängen.

# Story 1: “Der Shrink-Wunsch”

Symptom: Ein Kunde will von 10TB auf 500GB reduzieren, um Kosten in der Cloud zu sparen. Ursache: Das Dateisystem ist XFS. Lösung: Backup & Restore. Es gibt keinen Weg, XFS zu verkleinern. Lektion: Nutzen Sie bei unsicheren Größen-Planungen LVM-Thin-Provisioning oder Ext4.

# Story 2: “Corrupt Metadata”

Symptom: Der Server bootet, bricht aber mit “Structure needs cleaning” beim Mounten ab. Ursache: Harter Power-Off während massiver Metadaten-Operationen. Lösung: Nutzen Sie xfs_repair -L. Das -L löscht das Journal (Log). Es kann zu minimalem Datenverlust der letzten Sekunden kommen, stellt aber die Konsistenz des Dateisystems wieder her.


# 5. Performance & Benchmarking

Verwenden Sie xfs_info, um die Geometrie zu prüfen:

sudo xfs_info /mnt/data

Achten Sie auf agcount. Bei sehr vielen Kernen und massiver Parallelität sollte dieser Wert hoch sein.


# 6. Fazit & Empfehlung

  • Database & Big Data: XFS ist die erste Wahl.
  • Root Partition: Perfekt, da es extrem robust ist.
  • Wichtig: Sichern Sie Ihre Daten! Die Unfähigkeit zu “Shrinken” macht XFS unflexibel bei Fehlplanungen.

# Anhang: Cheatsheet

Aufgabe Befehl
Dateisystem Info xfs_info <mountpoint>
Vergrößern xfs_growfs <mountpoint>
Reparieren xfs_repair <device>
Metadaten dumpen xfs_metadump <device> <file>
Defragmentieren xfs_fsr <device>
Statistics xfs_stats