XFS

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Système de fichiers journalisé haute performance
Contexte Défaut sous RHEL 7
Particularité Extensible uniquement (pas de réduction)
Outils mkfs.xfs, xfs_growfs, xfs_repair, xfs_admin
Voir aussi Ext4 · Fstab

XFS est le système de fichiers journalisé retenu par défaut à partir de RHEL 7. Après préparation du partitionnement (via LVM ou fdisk), il offre :

  • une restauration après crash très rapide grâce à la journalisation ;
  • les attributs étendus (xattr) ;
  • la journalisation des quotas ;
  • les quotas par projet/répertoire ;
  • des horodatages inférieurs à la seconde.

Paramètres structurants : taille de bloc des répertoires (4 à moins de 64 Ko), groupes d'allocation (allocation groups), contraintes de croissance.

Création

mkfs.xfs /dev/sda1

# Réglage du journal
mkfs.xfs -l size=logsize
mkfs.xfs -l sunit=Nb
mkfs.xfs -l su=size

Création avec stripe (alignement RAID) : su = taille d'unité de bande, sw = nombre de disques RAID :

mkfs.xfs -d su=64k,sw=4 /dev/device

Agrandissement

xfs_growfs /mount/point
xfs_growfs /mount/point -D size

Un système de fichiers XFS ne peut pas être réduit.

Désactivation des barrières (gestion du cache disque en cas de panne) :

mount -o nobarrier /dev/device /mount/point

Quotas

Types disponibles : uquota/uqnoenforce (utilisateur), gquota/gqnoenforce (groupe), pquota/pqnoenforce (projet).

xfs_quota -x -c 'report -h' /home
xfs_quota -x -c 'limit isoft=500 ihard=700 john' /home/

Quotas par projet :

xfs_quota -x -c 'project -s projectname' project_path
xfs_quota -x -c 'limit -p bsoft=1000m bhard=1200m projectname'

Maintenance et réparation

La réparation effectue un replay des journaux pour valider les données :

xfs_repair /dev/device

Si xfs_repair échoue :

  • en phase 1, restaurer les fichiers perdus depuis une sauvegarde ;
  • en phase 2 ou ultérieure, il est parfois possible de récupérer les fichiers : monter le système en lecture seule (mount -r), sauvegarder avec xfsdump, recréer le système avec mkfs.xfs, puis restaurer avec xfsrestore.

Gel des E/S (garantit la cohérence des données, utile avant snapshot) :

xfs_freeze -f /mount/point
xfs_freeze -u /mount/point

Sauvegarde et restauration (dump incrémental multi-niveaux) :

xfsdump -l 0 -f /dev/device /path/to/filesystem
xfsrestore -I
xfsrestore -f /dev/st0 -S session-ID /path/to/destination
xfsrestore -f /dev/st0 -S session-ID -r /path/to/destination

Utilitaires

  • xfs_fsr — défragmentation
  • xfs_bmap — carte des blocs utilisés
  • xfs_info — informations sur le FS
  • xfs_admin — modification des paramètres (FS démonté)
  • xfs_copy — copie de disque entier
  • xfs_metadump / xfs_mdrestore — sauvegarde/restauration des métadonnées
  • xfs_db — débogage

Correspondance ext3/4 → XFS

Tâche ext3/ext4 XFS
Créer un système de fichiers mkfs.ext4 / mkfs.ext3 mkfs.xfs
Vérifier un FS e2fsck xfs_repair
Retailler un FS resize2fs xfs_growfs
Sauvegarder une image du FS e2image xfs_metadump / xfs_mdrestore
Label et réglage tune2fs xfs_admin
Sauvegarde du FS dump / restore xfsdump / xfsrestore

Label

xfs_admin -l /dev/sdb
xfs_admin -L "VideoRecords" /dev/sdb

Lazy counter

Le lazy counter améliore les performances sur certaines charges :

xfs_admin -c 0 /dev/sdb   # désactivation
xfs_admin -c 1 /dev/sdb   # activation

Paramètres persistants

install xfs /sbin/modprobe --ignore-install xfs; echo 255 > /proc/sys/fs/xfs/rotorstep
sysctl -w "fs.xfs.systune=value"

Options de comportement héritées : inherit_noatime, inherit_nodfrg, inherit_nodump, inherit_nosym, inherit_sync, sgid_inherit, stats_clear, symlink_mode.

Options de montage réglables (min < défaut < max) :

  • probe_limit : 0 < 4096 < 2097151
  • rotorstep : 1 < 1 < 255 — nombre d'essais d'accès à l'allocateur avant de passer au groupe d'allocation suivant
  • syncd_timer : 100 < 3000 < 720000 — intervalle (centisecondes) avant que xfssyncd ne vide les métadonnées
  • xfs_buf_age : 100 < 1500 < 720000 — âge (centisecondes) avant que xfsbufd n'écrive les métadonnées dirty sur disque
  • xfs_buf_timer : 50 < 100 < 3000 — intervalle de balayage de la liste des métadonnées dirty
  • fstrm_timer : 1 < 3000 < 360000 — intervalle avant création d'un second fichier dans un flux de fichiers

Voir aussi

  • Ext4 — système de fichiers journalisé alternatif
  • Fstab — déclaration des points de montage