23.12Das xfs-Dateisystem

Das xfs-Dateisystem wurde ehemals von der Firma SGI für deren Workstations mit dem Unix-ähnlichen Betriebssystem IRIX entwickelt. Später wurde das Dateisystem für Linux portiert und schrittweise immer wieder verbessert. Das Dateisystem gilt als ausgereift, stabil und vor allem im Umgang mit sehr großen Dateien als effizient. Das gilt auch für Dateisysteme, die mehr als 16 TByte umfassen.

xfs galt über viele Jahre als Insider-Tipp für besondere Einsatzzwecke. Etwas überraschend ist das Dateisystem 2014 aber im Linux-Mainstream angelangt: Es wird sowohl von RHEL 7 bzw. CentOS 7 als auch von aktuellen SUSE-Distributionen als Standarddateisystem verwendet. (SUSE differenziert zwischen der System- und den Datenpartitionen: Für die Systempartition ist btrfs vorgesehen, für die Datenpartitionen xfs.)

Weitere Informationen zum xfs-Dateisystem finden Sie hier:

http://en.wikipedia.org/wiki/XFS
http://xfs.org/index.php/XFS_FAQ

XFS-Eigenheiten

Bei der Nutzung von xfs müssen Sie zwei Besonderheiten beachten: Zum einen kann ein xfs-Dateisystem mit xfs_growfs vergrößert, aber nicht wieder verkleinert werden.

Zum anderen nutzt das Dateisystem die Partition vom ersten Byte an und lässt im Gegensatz zu den anderen Linux-Dateisystemen keinen Platz für einen Boot-Sektor. Deshalb zerstört die Installation von GRUB in den Boot-Sektor einer xfs-Partition Teile des Dateisystems! Bei BIOS-Rechnern dürfen Sie GRUB ausschließlich in den Master-Boot-Sektor der Festplatte installieren. Bei EFI-Rechnern stellt sich diese Frage nicht; dort werden die GRUB-Dateien ohnedies in der EFI-Partition gespeichert.

Einträge für ein xfs-Dateisystem in /etc/fstab sehen üblicherweise wie im folgenden Beispiel aus. Zusätzliche mount-Optionen werden nur ganz selten benötigt. Sie sind in man mount verzeichnet.

# /etc/fstab /dev/sdb13 /data xfs defaults 0 0

Um in einer Partition ein xfs-Dateisystem einzurichten, führen Sie einfach mkfs.xfs aus. Falls das Kommando nicht zur Verfügung steht, installieren Sie vorher das Paket xfsprogs. Die von mkfs.xfs ausgegebenen Parameter können Sie bei Bedarf später mit xfs_info neuerlich auslesen.

root# mkfs.xfs /dev/sdb1 meta-data=/dev/sdb1 isize=256 agcount=4, agsize=1048512 blks = sectsz=512 attr=2, projid32bit=1 = crc=0 finobt=0 data = bsize=4096 blocks=4194048, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=0 log =Internes Protokoll bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =keine extsz=4096 blocks=0, rtextents=0

Jetzt fehlt nur noch ein mount-Kommando, und schon können Sie das Dateisystem nutzen:

root# mount -t xfs /dev/sdb1 /test

Die Integrität von xfs-Dateisystemen wird bei jedem mount-Vorgang automatisch überprüft. Dabei wird aber nur das Journaling-Protokoll ausgewertet. Zur manuellen Überprüfung führen Sie xfs_check aus. Das ist nur möglich, wenn das Dateisystem nicht eingebunden ist. Falls das Kommando Fehler entdeckt, können Sie versuchen, diese mit xfs_repair zu beheben.

Um für Kompatibilität zu den anderen Dateisystemen zu sorgen, existiert auch das Kommando fsck.xfs. Dieses Kommando erfüllt aber keine Aufgabe und liefert als Ergebnis immer OK.

xfs_growfs vergrößert ein xfs-Dateisystem im laufenden Betrieb. Das Dateisystem muss dazu eingebunden sein! Das Kommando setzt voraus, dass die zugrunde liegende Datenpartition vorher vergrößert wurde. xfs_admin verändert diverse Parameter des Dateisystems, beispielsweise den Namen (Label) und die UUID-Nummer. Das Dateisystem muss vorher aus dem Verzeichnisbaum gelöst werden (umount).