Chapitre 6. Le système de fichiers XFS

XFS est un système de fichiers hautement modulable et de haute performance, qui fut conçu à l'origine par Silicon Graphics, Inc. XFS est le système de fichiers par défaut de Red Hat Enterprise Linux 7.
Fonctionnalités principales
XFS prend en charge la journalisation de métadonnées, ce qui facilite une récupération après incident plus rapide. Le système de fichiers XFS peut aussi être défragmenté et élargi alors qu'il est monté et actif. En outre, Red Hat Enterprise Linux 7 prend en charge les utilitaires de sauvegarde et de restauration spécifiques à XFS.
Fonctionnalités d'allocation
XFS offre les schémas d'allocation suivants :
  • Allocation basée sur extensions
  • Politiques d'allocation par entrelacement
  • L'allocation différée
  • Pré-allocation de l'espace
L'allocation différée et les autres optimisations des performances affectent XFS de la même manière qu'ext4. Autrement dit, les écritures d'un programme sur un système de fichiers XFS ne garantissent pas d'être sur disque à moins que le programme n'effectue un appel fsync() par la suite.
Pour obtenir des informations supplémentaires sur les implications de l'allocation différée sur un système de fichiers (ext4 et XFS), veuillez consulter les Fonctionnalités de l'allocation dans le Chapitre 5, Le système de fichiers Ext4.

Note

Créer ou étendre des fichiers échoue occasionnellement avec un échec d'écriture ENOSPC inattendu même si le disque semble insuffisant. Cela s'explique par le design de XFS qui est basé sur la performance. Dans la pratique, ce n'est pas un problème car cela ne survient que si l'espace restant n'est que dans quelques blocs.
Autres fonctionnalités XFS
Le système de fichiers XFS prend également en charge ce qui suit :
Attributs étendus (xattr)
Ceci permet au système d'associer plusieurs paires nom/valeur supplémentaires par fichiers. Activé par défaut.
Journalisation de quotas
Ceci permet d'éviter le besoin de longues vérifications de cohérence des quotas après une panne.
Quotas de projets/répertoires
Ceci permet les restrictions de quotas sur une arborescence de répertoires.
Horodatage subsecond
Ceci permet à l'horodatage de donner la deuxième décimale des secondes.
Le comportement par défaut atime est relatime
Relatime est pour XFS par défaut. N'a presque pas de temps de latence par rapport à noatime tout en conservant des valeurs atime saines.

6.1. Créer un système de fichiers XFS

Pour créer un système de fichiers XFS, veuillez utiliser la commande mkfs.xfs /dev/device. En général, les options par défaut sont optimales pour un usage commun.
Lors de l'utilisation de mkfs.xfs sur un périphérique bloc contenant un système de fichiers, veuillez utiliser l'option -f pour forcer le remplacement de ce système de fichiers.

Exemple 6.1. Sortie de la commande mkfs.xfs

Ci-dessous figure un exemple de sortie de la commande mkfs.xfs :
meta-data=/dev/device            isize=256    agcount=4, agsize=3277258 blks
         =                       sectsz=512   attr=2
data     =                       bsize=4096   blocks=13109032, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal log           bsize=4096   blocks=6400, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

Note

Une fois qu'un système de fichiers XFS a été créé, sa taille ne peut pas être réduite. Cependant, il peut toujours être agrandi par la commande xfs_growfs (veuillez consulter Section 6.4, « Augmenter la taille d'un système de fichiers XFS »).
Pour les périphériques blocs à entrelacement (par exemple les matrices RAID5), la géométrie de l'entrelacement peut être indiquée pendant la création du système de fichiers. L'utilisation d'une géométrie d'entrelacement correcte améliore fortement les performances d'un système de fichiers XFS.
Lors de la création de systèmes de fichiers sur des volumes LVM ou MD, mkfs.xfs choisit une géométrie optimale. Ceci peut également s'appliquer à certains types de matériel RAID qui exportent des informations sur la géométrie au système d'exploitation.
Si le périphérique exporte des informations de géométrie de tranches, mkfs (pour ext3, ext4, et xfs) utilisera cette géométrie automatiquement. Si la géométrie de tranches n'est pas détectée, il sera possible de la spécifier automatiquement à un moment mkfs par les options suivantes :
su=value
Spécifie une unité d'entrelacement ou une taille de morceau RAID. La valeur value doit être indiquée en octets, avec un suffixe optionnel k, m, ou g.
sw=value
Spécifie le nombre de disques de données dans un périphérique RAID, ou le nombre d'unités d'entrelacement dans l'entrelacement.
L'exemple suivant indique une taille de morceau de 64k sur un périphérique RAID contenant 4 unités d'entrelacement :
# mkfs.xfs -d su=64k,sw=4 /dev/device
Pour obtenir davantage d'informations sur la création de systèmes de fichiers XFS, veuillez consulter man mkfs.xfs et Red Hat Enterprise Linux Performance Tuning Guide, chapitre Basic Tuning for XFS.