XFS ou ext4 : quel système de fichiers Linux pour optimiser le stockage ?

Les solutions de stockage nécessitent un système de fichiers pour organiser les données. Cet article explique comment choisir entre XFS et ext4 en fonction de la charge de travail prévue sur votre serveur Linux.

Les administrateurs de serveurs Linux doivent réfléchir soigneusement au système de fichiers à choisir – XFS ou ext4 – en fonction du rôle et des besoins de stockage de chaque équipement. Le personnel chargé du déploiement et de l’assistance des ordinateurs de bureau peut trouver qu’un système de fichiers différent convient mieux à ses systèmes qu’un système conçu pour les serveurs à hautes performances.

En gardant à l’esprit les implications en matière de stockage, comparez les systèmes de fichiers XFS et ext4 sur les équipements Linux en examinant la flexibilité, la protection des données, les performances, la capacité et la sécurité.

Prise en charge par la distribution

La plupart des distributions Linux ont un système de fichiers préféré ou par défaut, bien que vous puissiez modifier ce choix si nécessaire. Les distributions basées sur Debian utilisent généralement ext4, tandis que Red Hat Enterprise Linux (RHEL) et Rocky Linux utilisent XFS.

Affichez les systèmes de fichiers utilisés par les équipements de stockage de votre système en exécutant l’une des commandes suivantes :

  • df -T.
  • lsblk -f.
  • blkid /dev/sda1 (remplacez par votre propre chemin d’accès au périphérique).

La commande df -T affiche des informations sur les équipements de stockage, y compris le système de fichiers. Notez que /dev/sda1 utilise XFS dans la figure 1.

Figure 1. La commande df -T affiche des informations sur le stockage, dont le type de système de fichiers.
Figure 1. La commande df -T affiche des informations sur le stockage, dont le type de système de fichiers.

La commande lsblk -f permet d’obtenir un aperçu plus structuré des disques, des partitions et des systèmes de fichiers. Notez que /dev/sda1 et /dev/sda2 utilisent XFS dans la figure 2, tandis que /dev/sdb1 et /dev/sdc1 reposent tous deux sur ext4.

Figure 2. Affichez tous les équipements de stockage et toutes les partitions à l'aide de la commande lsblk -f.
Figure 2. Affichez tous les équipements de stockage et toutes les partitions à l'aide de la commande lsblk -f.

Vous pouvez obtenir une vue plus précise en spécifiant un volume ou une partition en particulier. La figure 3 montre les résultats de blkid /dev/sda1, y compris le type de système de fichiers.

Figure 3. Affichage des informations spécifiques au volume à l'aide de la commande blkid /dev/sda1.
Figure 3. Affichage des informations spécifiques au volume à l'aide de la commande blkid /dev/sda1.

Utilisez ces outils d’analyse de stockage pour déterminer les systèmes de fichiers utilisés sur vos serveurs Linux.

Comparer les performances et la capacité

Les performances et la capacité étant liées, elles sont évaluées ensemble ici.

Le système de fichiers ext4 est conçu pour une utilisation générale, ce qui en fait un choix naturel pour les stations de travail des développeurs, les ordinateurs des utilisateurs et les systèmes domestiques. Bien que les performances et la capacité soient certainement importantes pour ces utilisateurs, ils ne génèrent généralement pas les immenses fichiers ou charges de travail pour lesquels le système XFS est optimisé.

Ces types de stations de travail ne disposent pas non plus de la capacité de stockage massive ou des opérations I/O parallèles que XFS excelle à gérer. Dans le cas des machines à usage quotidien, ext4 est normalement plus performant.

Les attributs du système de fichiers Ext4 sont les suivants

  • Taille maximale de fichier de 16 To
  • Taille maximale du volume de 64 Zo, mais RHEL indique une prise en charge de 50 To.
  • Allocation fixe d’inodes.

Les attributs du système de fichiers XFS sont les suivants

  • Taille maximale du volume de 1024 To (1 Po).
  • Prise en charge des opérations parallèles.
  • Allocation dynamique des inodes.

En pratique, peu de gens se heurtent aux limites de taille de l’un ou l’autre système de fichiers.

XFS est également plus gourmand en ressources qu’ext4, ce qui est important pour les serveurs très sollicités. Ces derniers peuvent néanmoins bénéficier de la plus grande capacité de XFS à gérer des charges de travail plus importantes.

Gérer l’évolution des besoins

Les exigences en matière de stockage évoluent au fil du temps, à mesure que vous adaptez le rôle du serveur à l’évolution des besoins de l’entreprise. XFS peut s’adapter à ces besoins. Malheureusement, vous ne pouvez pas le réduire.

Alors que la plupart des scénarios de stockage impliquent une augmentation de la capacité, le fait que vous ne puissiez pas facilement réduire un système de fichiers XFS limite sa flexibilité. Le système de fichiers ext4 permet à la fois de croître et de décroître. Cette flexibilité est cruciale dans les environnements qui prévoient d’ajuster les configurations de stockage.

La prise en charge de XFS a été intégrée au noyau Linux en 2001. Il est donc rare de trouver des distributions qui n’offrent pas au moins une prise en charge de base. Beaucoup ne l’utilisent pas par défaut, mais autorisent des installations ou des configurations personnalisées ultérieurement. Les utilisateurs peuvent supposer sans risque que ext4 est également pris en charge par les distributions modernes. C’est principalement dans les anciennes distributions que l’on trouve des problèmes de prise en charge.

Administration et récupération de votre système de fichiers

XFS contient une suite d’outils d’administration permettant aux administrateurs de sauvegarder, restaurer, redimensionner, réparer et même établir des quotas sur le système de fichiers. Cette intégration d’outils et leur facilité d’utilisation séduisent de nombreux administrateurs système.

Le jeu d’outils XFS comprend les éléments suivants :

  • xfs_growfs. Développe le système de fichiers.
  • xfs_admin. Gère des paramètres tels que l’étiquette ou l’identifiant universel unique.
  • xfs_copy. Copie le système de fichiers vers une autre cible.
  • xfs_quota. Gère les quotas du système de fichiers.
 Figure 4. La liste des outils XFS.
Figure 4. La liste des outils XFS.

Bien que ext4 prenne en charge un grand nombre de ces fonctionnalités, les administrateurs les mettent en œuvre à l’aide d’outils externes qui peuvent ne pas être cohérents ou interdépendants.

Utilisez les outils suivants pour gérer les systèmes de fichiers ext4 :

  • e2fsck. Vérifie et répare le système de fichiers.
  • tune2fs. Gère les paramètres.
  • resize2fs. Augmente ou réduit le système de fichiers.
  • e2label. Modifie l’étiquette du système de fichiers.
  • quota. Gestion des quotas du système de fichiers.
Figure 5. La page de manuel de ext4 est très complète et comprend une liste d'outils supplémentaires à consulter.
Figure 5. La page de manuel de ext4 est très complète et comprend une liste d'outils supplémentaires à consulter.

De nombreux outils ext4 prennent également en charge les anciens systèmes de fichiers ext2 et ext3 que l’on trouve parfois sur les anciens serveurs.

Les systèmes de fichiers modernes prennent en charge la journalisation, ce qui améliore leur fiabilité et leur temps de récupération en cas de coupure de courant soudaine ou de panne du système. Les modifications des données sont écrites dans le journal avant le système de fichiers, fournissant un enregistrement des modifications récentes.

Le système de fichiers analyse le journal à la recherche d’événements récents pour se sortir d’un plantage, plutôt qu’examiner le disque entier. Ext4 et XFS implémentent tous deux la journalisation, tout comme d’autres systèmes de fichiers courants, dont Windows NTFS.

Changer de système de fichiers

Aucun des deux systèmes de fichiers ne fournit de méthode pour convertir un volume de l’un à l’autre. Mais des outils tiers existent pour migrer d’un système de fichiers à l’autre.

L’approche standard pour basculer entre XFS et ext4 est de recréer le système de fichiers. C’est une façon polie de dire que vous devez sauvegarder les données existantes, reformater le disque avec un nouveau système de fichiers et restaurer les données.

Les étapes ressemblent à ceci :

  • Sauvegardez les données existantes et assurez-vous de vérifier leur intégrité.
  • Démontez le volume à l’aide de la commande umount.
  • Formatez le volume avec le nouveau système de fichiers ext4 ou XFS.
  • Restaurez les données de la sauvegarde et testez le système.

Ce processus peut être long, en fonction de la taille du volume. N’oubliez pas que l’un des arguments de vente de XFS est sa prise en charge d’énormes systèmes de fichiers. Et même ext4 prend en charge des quantités de données qui prennent beaucoup de temps à sauvegarder ou à restaurer. La vitesse de votre infrastructure de stockage est un facteur déterminant.

Assurez-vous de vérifier la sauvegarde avant de formater une partition avec le nouveau système de fichiers. Vous pouvez utiliser les commandes mkfs.xfs ou mkfs.ext4 pour le formatage.

Figure 6. Utilisez les commandes blkid et mkfs.ext4 pour convertir un système de fichiers XFS en ext4. Assurez-vous de sauvegarder d'abord les données existantes.
Figure 6. Utilisez les commandes blkid et mkfs.ext4 pour convertir un système de fichiers XFS en ext4. Assurez-vous de sauvegarder d'abord les données existantes.

D’autres points de comparaison entre XFS et ext4

Il est pertinent de noter que la plate-forme de serveur de Red Hat choisit par défaut XFS, tandis que les distributions pour utilisateurs finaux, comme Ubuntu, s’appuient sur ext4 pour gérer le stockage. XFS excelle dans les environnements fortement sollicités, avec des I/O très élevés, comme c’est le cas pour les serveurs. Les stations de travail à usage général, où une seule tâche est accomplie à la fois (celle que l’utilisateur manipule avec sa souris et son clavier) verront de meilleures performances avec ext4 par rapport à XFS.

Le choix d’un système de fichiers pour votre prochain déploiement commence par la compréhension du rôle de l’appareil et de la charge de travail prévue. Soyez également conscient du matériel impliqué. Assurez-vous que les matériels de stockage n’étranglent pas les I/O avant même que le système de fichiers ne soit impliqué. Considérez aussi le besoin de flexibilité dans votre usage du stockage, car un volume ext4 peut être redimensionné plus large ou plus petit, tandis que la taille d’un volume XFS ne peut que croître et jamais être réduite.

La mise en œuvre de XFS correspond généralement à un besoin spécifique, comme le calcul haute performance. Cela dit, les outils de support natifs de XFS étant plus puissants et plus pratiques, ils séduisent souvent les administrateurs en dehors d’un scénario d’usage.

Pour approfondir sur Linux