XFS
| 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 avecxfsdump, recréer le système avecmkfs.xfs, puis restaurer avecxfsrestore.
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éfragmentationxfs_bmap— carte des blocs utilisésxfs_info— informations sur le FSxfs_admin— modification des paramètres (FS démonté)xfs_copy— copie de disque entierxfs_metadump/xfs_mdrestore— sauvegarde/restauration des métadonnéesxfs_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 < 2097151rotorstep: 1 < 1 < 255 — nombre d'essais d'accès à l'allocateur avant de passer au groupe d'allocation suivantsyncd_timer: 100 < 3000 < 720000 — intervalle (centisecondes) avant que xfssyncd ne vide les métadonnéesxfs_buf_age: 100 < 1500 < 720000 — âge (centisecondes) avant que xfsbufd n'écrive les métadonnées dirty sur disquexfs_buf_timer: 50 < 100 < 3000 — intervalle de balayage de la liste des métadonnées dirtyfstrm_timer: 1 < 3000 < 360000 — intervalle avant création d'un second fichier dans un flux de fichiers