# Centos: cheat sheet XFS. {{INLINETOC}} XFS est maintenant le système de fichiers par défaut RHEL7. XFS apporte les avantages suivants: * possibilité de gérer des systèmes de fichiers allant jusqu'à 500 To avec des fichiers d'une taille allant jusqu'à 50 To, * meilleures performances pour la plupart des charges de travail (en particulier avec un stockage à grande vitesse et un plus grand nombre de cœurs), * consomme moins de ressources processeur que la plupart des autres systèmes de fichiers (meilleures optimisations autour des conflits de verrous, etc.), * le plus robuste à grande échelle (a été utilisé à plus de cent tailles de tuberculose depuis de nombreuses années), * le système de fichiers le plus courant dans plusieurs communautés en amont: la base la plus courante pour ceph, gluster et openstack plus largement, * pionnier de la plupart des techniques maintenant dans Ext4 pour la performance (comme l'allocation retardée), * pas de vérification du système de fichiers au démarrage, * Somme de contrôle CRC sur tous les blocs de métadonnées. XFS était déjà entièrement pris en charge dans RHEL6 mais, ce n’était pas le système de fichiers par défaut. ## Gestion de base XFS Pour créer un nouveau volume logique appelé `lv_vol` avec une taille de 100 Mo dans le groupe de volumes vg, taper: ``` # lvcreate --size 100M --name lv_vol /dev/vg ``` Pour créer un nouveau système de fichiers XFS, taper: ``` # mkfs.xfs /dev/vg/lv_vol ``` Pour monter le nouveau système de fichiers sous /mnt, taper: ``` # mount /dev/vg/lv_vol /mnt ``` Pour augmenter la taille du système de fichiers de 50 Mo, taper: ``` # lvextend --size + 50M /dev/vg/lv_vol # xfs_growfs /mnt ``` Cela n'est possible que pour un système de fichiers monté.\\ \\ On ne peut pas réduire un système de fichiers XFS même si on le démonte. Il faut le sauvegarder, le déposer et le recréer. ## Gestion avancée XFS Si un problème survient et que l'on souhaite réparer le système de fichiers, on est censé monter et démonter avant de taper: ``` # xfs_repair /dev/vg/lv_vol ``` Essayer l’option «-L» («forcer la mise à zéro du journal») pour effacer le journal si rien ne fonctionne. Pour attribuer une étiquette (jusqu'à 12 caractères) au système de fichiers, taper: ``` # umount /dev/vg/lv_vol # xfs_admin -L "Label" /dev/vg/lv_vol ``` Avec RHEL 7.6, il est désormais possible d'attribuer une étiquette à un système de fichiers monté à l'aide de la commande `xfs_io`:\\ \\ `xfs_io -c "Label" /dev/vg/lv_vol` Pour lire l'étiquette (le système de fichiers peut être monté ou non mais il faut spécifier le nom de la partition), taper: ``` # xfs_admin -l /dev/vg/lv_vol ``` ## Sauvegarde XFS Pour sauvegarder un système de fichiers XFS, utiliser l'utilitaire `xfsdump`. Centos prend en charge les sauvegardes sur des lecteurs de bande ou des images de fichiers standard, et permet également l'écriture de plusieurs dumps sur la même bande. L'utilitaire `xfsdump` permet également à un dump de s'étendre sur plusieurs bandes, bien qu'un seul dump puisse être écrit dans un fichier normal. De plus, `xfsdump` prend en charge les sauvegardes incrémentielles et peut exclure des fichiers d'une sauvegarde à l'aide d'indicateurs de taille, de sous-arbre ou d'inode pour les filtrer. ### Dump xfs local ``` $ xfsdump -l0 -f /sda4_full_backup.xfsdump /dev/sda4 ``` Pour effectuer une sauvegarde complète du système de fichiers et l'insérer dans le fichier /root/dump.xfs sans spécifier d'étiquette de vidage, taper: ``` # xfsdump -F -f /root/dump.xfs /mnt ``` On peut spécifier le point de montage ou le nom de la partition.\\ \\ Cela n'est possible que pour un système de fichiers monté.\\ \\ On peut exécuter un vidage incrémentiel à l'aide de l'option “-l” avec un nombre compris entre 0 et 9 (0 = vidage complet). Pour spécifier une étiquette de session et une étiquette de média, taper: ``` # xfsdump -L étiquette_session -M étiquette_média -f /root/dump.xfs /dev/vg/lv_vol ``` ### Dump xfs sur un hôte distant: ``` $ xfsdump -l0 - / | gzip -c | ssh user@host dd of=/backup.dgz ``` ## Restauration XFS ### Restauration depuis un dump local Pour restaurer le système de fichiers, taper: ``` # xfsrestore -f /root/dump.xfs /mnt ``` Pour obtenir la liste de toutes les sauvegardes disponibles, taper: ``` # xfsrestore -I ``` Pour défragmenter le système de fichiers (opération normalement inutile), taper: ``` # xfs_fsr /dev/vg/lv_vol ``` le point de montage et le nom de la partition sont valides. Pour geler le système de fichiers avant de prendre un instantané, taper: ``` # xfs_freeze -f / mnt ``` Il faut spécifier le point de montage, le nom de la partition n'est pas autorisé. Pour libérer le système de fichiers, taper: ``` # xfs_freeze -u / mnt ``` ### Clônage d'un système de fichiers Pour copier le contenu d'un système de fichiers (ici monté sous /mnt) dans un autre répertoire, taper: ``` # xfsdump -J - /mnt | xfsrestore -J - /new ``` L'option «-J» évite toute écriture dans l'inventaire.