Linux prend en charge divers systèmes de fichiers tels que ext4, ZFS, XFS, Btrfs, Reiser4, etc. Différents types de systèmes de fichiers résolvent différents problèmes et leur utilisation est spécifique à l'application.
Le choix d'un système de fichiers Linux pour votre application est une décision importante. Ce didacticiel décrit certains des principaux systèmes de fichiers Linux et fournit des recommandations sur le système de fichiers adapté à votre application.
Qu'est-ce que le système de fichiers Linux
Presque toutes les données et la programmation nécessaires pour démarrer un système Linux et le faire fonctionner sont enregistrées dans le système de fichiers. Par exemple, le système d'exploitation lui-même, les compilateurs, les programmes d'application, les bibliothèques partagées, les fichiers de configuration, les fichiers journaux, les points de montage des supports, etc.
Les systèmes de fichiers fonctionnent en arrière-plan. Comme le reste du noyau d'un système d'exploitation, ils sont en grande partie invisibles dans l'utilisation quotidienne.
Le système de fichiers Linux est généralement une couche intégrée d'un système d'exploitation Linux utilisé pour gérer la gestion des données de stockage. Il contrôle la manière dont les données sont stockées et récupérées.
De plus, il gère le nom du fichier, sa taille, sa date de création et bien d'autres informations sur un fichier.
Système de fichiers Ext4
En 1992, le système de fichiers étendu ou ext a été lancé spécifiquement pour le système d'exploitation Linux. Il a ses racines dans le système d'exploitation Minix. En 1993, une mise à jour appelée Extended File System 2 ou ext2 a été publiée et a été le système de fichiers par défaut dans de nombreuses distributions Linux pendant de nombreuses années.
En 2001, ext2 a été mis à niveau vers ext3, qui a introduit la journalisation pour se protéger contre la corruption lors de pannes ou de pannes de courant.
Ext4 (Fourth Extended Filesystem) a été introduit en 2008, et c'est le système de fichiers Linux par défaut depuis 2010. Il a été conçu comme une révision progressive du système de fichiers ext3 et a surmonté certaines limitations dans ext3.
En conséquence, ext4 présente des avantages significatifs par rapport à son prédécesseur, tels qu'une conception améliorée, de meilleures performances, une fiabilité et de nouvelles fonctionnalités.
De nos jours, ext4 est le système de fichiers par défaut sur la plupart des distributions Linux. Il peut prendre en charge des fichiers volumineux et des systèmes de fichiers jusqu'à 16 téraoctets.
Il prend également en charge un nombre illimité de sous-répertoires (le système de fichiers ext3 n'en prend en charge que jusqu'à 32 000). De plus, ext4 est rétrocompatible avec ext3 et ext2, permettant à ces anciennes versions d'être montées avec le pilote ext4.
Il y a une raison pour laquelle ext4 est le choix par défaut pour la plupart des distributions Linux. Il a fait ses preuves, est stable, fonctionne parfaitement et est largement pris en charge. Donc, si vous recherchez la stabilité, ext4 est le meilleur système de fichiers Linux pour vous.
Malgré ses fonctionnalités, ext4 ne prend pas en charge la compression transparente, le chiffrement transparent ou la déduplication des données.
Système de fichiers XFS
XFS est un système de fichiers hautement évolutif développé par Silicon Graphics et déployé pour la première fois dans le système d'exploitation IRIX basé sur Unix en 1994. Il s'agit d'un système de fichiers journalisé et, en tant que tel, suit les modifications dans un journal avant de valider les modifications dans le système principal. système de fichiers.
L'avantage est la cohérence garantie du système de fichiers et une récupération accélérée en cas de panne de courant ou de panne du système.
Initialement, XFS a été créé pour prendre en charge des systèmes de fichiers extrêmement volumineux avec des tailles allant jusqu'à 16 exaoctets et des tailles de fichier allant jusqu'à 8 exaoctets. En conséquence, il fonctionne depuis longtemps sur de grands serveurs et baies de stockage.
Une caractéristique notable de XFS est le taux d'E/S garanti. Cela permet aux applications de réserver de la bande passante. Le système de fichiers calcule les performances disponibles et ajuste son fonctionnement en fonction des réservations existantes.
XFS a la réputation de fonctionner dans des environnements qui nécessitent des performances et une évolutivité élevées et est donc régulièrement mesuré comme l'un des systèmes de fichiers les plus performants sur les grands systèmes avec des charges de travail d'entreprise.
Aujourd'hui, XFS est pris en charge par la plupart des distributions Linux et est devenu le système de fichiers par défaut sur Red Hat Enterprise Linux, Oracle Linux, CentOS et de nombreuses autres distributions.
Meilleurs cas d'utilisation pour le système de fichiers XFS
Alors, avez-vous un gros serveur ? Avez-vous des besoins de stockage importants ou avez-vous un disque SATA local lent ?
Si votre serveur et votre périphérique de stockage sont volumineux et qu'il n'est pas nécessaire de réduire la taille du système de fichiers, XFS est probablement le meilleur choix.
XFS est un excellent système de fichiers, qui s'adapte bien aux gros serveurs. Mais même avec des baies de stockage plus petites, XFS fonctionne très bien lorsque la taille moyenne des fichiers est importante, par exemple, des centaines de mégaoctets.
Système de fichiers Btrfs
Btrfs est le système de fichiers Linux à usage général de nouvelle génération qui offre des fonctionnalités uniques telles que la gestion intégrée avancée des périphériques, l'évolutivité et la fiabilité. Il est sous licence GPL et ouvert à la contribution de tous. Différents noms sont utilisés pour le système de fichiers, notamment "Butter FS", "B-tree FS" et "Better FS".
Le développement de Btrfs a commencé chez Oracle en 2007. Il a été fusionné avec le noyau Linux principal en 2009 et a fait ses débuts dans la version Linux 2.6.29.
Btrfs n'est pas un successeur du système de fichiers ext4 par défaut utilisé dans la plupart des distributions Linux, mais il offre une meilleure évolutivité et fiabilité. Au lieu de cela, Btrfs est un système de fichiers de copie sur écriture (CoW) destiné à remédier à diverses faiblesses des systèmes de fichiers Linux actuels.
Btrfs principalement se concentre sur la tolérance aux pannes, les propriétés d'autoréparation et la facilité d'administration.
Btrfs peut prendre en charge jusqu'à une partition de 16 exbioctets et un fichier de même taille. Donc, si vous êtes confus par les chiffres, tout ce que vous devez savoir, c'est que Btrfs peut prendre en charge jusqu'à seize fois les données d'Ext4.
Comment fonctionne la copie sur écriture et pourquoi le voudriez-vous
Sur un système de fichiers traditionnel, la modification d'un fichier lirait les données, les modifierait, puis les réécrirait au même endroit. Dans un système de fichiers de copie sur écriture, il lit les données, les modifie et les écrit dans un nouvel emplacement. Cela évite la perte de données lors de la transaction de lecture-modification-écriture car les données sont toujours sur un disque.
Étant donné que vous ne "repointez" pas tant que le nouveau bloc n'est pas entièrement écrit, si vous perdez de l'alimentation ou plantez au milieu d'une écriture, vous vous retrouvez avec soit l'ancien bloc, soit le nouveau bloc, mais pas un bloc corrompu à moitié écrit. bloc. Vous n'avez donc pas besoin de fsck
systèmes de fichiers au démarrage et vous réduisez le risque de corruption des données.
Vous pouvez créer un instantané du système de fichiers à tout moment, en créant une entrée d'instantané dans les métadonnées avec l'ensemble actuel de pointeurs.
Cela empêche les anciens blocs d'être ramassés plus tard et permet au système de fichiers de présenter un volume tel qu'il était lors de l'instantané. En d'autres termes, vous disposez de capacités de restauration instantanées. Vous pouvez même cloner ce volume pour en faire un volume inscriptible basé sur l'instantané.
Votre autre choix est ZFS sur Linux, qui peut être plus stable, mais nécessite quelques étapes supplémentaires pour être installé sur les distributions Linux typiques.
Fonctionnalités Btrfs
- Copie sur écriture (CoW) et instantané – Effectuez des sauvegardes incrémentielles indolores, même à partir d'un système de fichiers ou d'une machine virtuelle (VM) "chaud".
- Sommes de contrôle au niveau du fichier – Les métadonnées de chaque fichier incluent une somme de contrôle utilisée pour détecter et réparer les erreurs.
- Compression – Les fichiers peuvent être compressés et décompressés à la volée, ce qui accélère les performances de lecture.
- Défragmentation automatique – Un thread d'arrière-plan règle les systèmes de fichiers pendant leur utilisation.
- Sous-volumes – Les systèmes de fichiers peuvent partager un seul pool d'espace au lieu d'être placés dans leurs partitions.
- RAID – Btrfs fait ses implémentations RAID, donc LVM ou mdadm ne sont pas tenus d'avoir RAID. Actuellement, RAID 0, 1 et 10 sont pris en charge. RAID 5 et 6 sont considérés comme instables.
- Les partitions sont facultatives – Bien que Btrfs puisse fonctionner avec des partitions, il a le potentiel d'utiliser directement des périphériques bruts (/dev/
). - Déduplication des données – La prise en charge de la déduplication des données est limitée; cependant, la déduplication deviendra éventuellement une fonctionnalité standard de Btrfs. Cela permet à Btrfs d'économiser de l'espace en comparant les fichiers via des différences binaires.
Btrfs est un système de fichiers qui n'a pas besoin d'être administré une fois implémenté. Par conséquent, vous ne devriez jamais avoir à exécuter le fsck
commande dessus. Chaque fois que des erreurs ou des incohérences surviennent, il suffit de les gérer et de continuer.
S'il est vrai que Btrfs est toujours considéré comme expérimental et est actuellement en cours de développement, le moment où Btrfs deviendra le système de fichiers par défaut pour les systèmes Linux se rapproche. Certaines distributions Linux ont déjà commencé à y basculer avec leurs versions actuelles.
Si vous n'avez pas peur de traiter avec un écosystème un peu moins mature, Btrfs peut être la meilleure option pour vous.
Système de fichiers ZFS
ZFS (Zettabyte File System) reste l'un des systèmes de fichiers les plus avancés techniquement et les plus complets depuis son apparition en octobre 2005. Il s'agit d'un système de fichiers local (c'est-à-dire ext4) et d'un gestionnaire de volumes logiques (c'est-à-dire LVM) créé par Sun Microsystems.
ZFS a été publié sous une licence open-source jusqu'à ce qu'Oracle achète Sun Microsystems et ferme la licence.
Vous pouvez considérer ZFS comme un gestionnaire de volume et une matrice RAID en un , ce qui permet d'ajouter des disques supplémentaires à votre volume ZFS, ce qui permet d'ajouter de l'espace supplémentaire à votre système de fichiers. De plus, ZFS est livré avec d'autres fonctionnalités que le RAID traditionnel n'a pas.
ZFS dépend fortement de la mémoire, vous avez donc besoin d'au moins 8 Go pour démarrer. En pratique, utilisez-en autant que possible pour votre matériel/budget.
ZFS est couramment utilisé par les thésauriseurs de données, les utilisateurs de NAS et d'autres geeks qui préfèrent faire confiance à leur propre système de stockage redondant plutôt qu'au cloud. C'est un système de fichiers fantastique pour gérer plusieurs disques de données et rivaliser avec certaines des superbes configurations RAID.
ZFS est similaire à d'autres approches de gestion du stockage, mais il est radicalement différent à certains égards. Par exemple, ZFS n'utilise généralement pas le gestionnaire de volumes logiques Linux (LVM) ou les partitions de disque, et il est généralement pratique de supprimer les partitions et les structures LVM avant de préparer le support pour un zpool.
Le zpool est l'analogue du LVM. Un zpool s'étend sur un ou plusieurs périphériques de stockage, et les membres d'un zpool peuvent être de différents types. Les éléments de stockage de base sont des périphériques uniques, des miroirs et des raidz. Tous ces éléments de stockage sont appelés vdevs.
ZFS peut appliquer l'intégrité du stockage bien mieux que n'importe quel contrôleur RAID, car il a une connaissance intime de la structure du système de fichiers. Par conséquent, la sécurité des données est une caractéristique de conception importante de ZFS. Tous les blocs écrits dans un zpool sont soumis à une somme de contrôle agressive pour garantir la cohérence et l'exactitude des données.
Pour une utilisation serveur où vous souhaitez éliminer presque entièrement toute possibilité de perte de données et où la stabilité est le nom du jeu, vous voudrez peut-être vous pencher sur ZFS.
Fonctionnalités ZFS
Évolutivité sans fin . Eh bien, ce n'est pas techniquement infini, mais c'est un système de fichiers 128 bits capable de gérer des zettaoctets (un milliard de téraoctets) de données. Par conséquent, quel que soit l'espace disque dont vous disposez, ZFS conviendra pour le gérer.
Intégrité maximale . Tout ce que vous faites à l'intérieur de ZFS utilise une somme de contrôle pour garantir l'intégrité des fichiers. Par conséquent, vous pouvez être assuré que vos fichiers et leurs copies redondantes ne subiront pas de corruption silencieuse des données. De plus, pendant que ZFS est occupé à vérifier discrètement l'intégrité de vos données, il effectuera des réparations automatiques à tout moment.
Mise en commun de Drive . Les créateurs de ZFS veulent que vous le considériez comme étant similaire à la façon dont votre ordinateur utilise la RAM. Lorsque vous avez besoin de plus de mémoire dans votre ordinateur, vous insérez une autre clé et vous avez terminé.
De même, avec ZFS, lorsque vous avez besoin de plus d'espace disque, vous installez un autre disque dur et vous avez terminé. Il n'est pas nécessaire de passer du temps à partitionner, formater, initialiser ou faire quoi que ce soit d'autre sur vos disques. Lorsque vous avez besoin d'un "pool" de stockage plus important, ajoutez simplement des disques.
RAID . ZFS est capable de nombreux niveaux RAID différents tout en offrant des performances comparables à celles des contrôleurs RAID matériels. Cela vous permet d'économiser de l'argent, de faciliter la configuration et d'accéder à des niveaux RAID supérieurs améliorés par ZFS.
Système de fichiers Reiser4
ReiserFS est un système de fichiers informatiques journalisé à usage général initialement conçu et mis en œuvre par une équipe de Namesys dirigée par Hans Reiser. Introduit dans la version 2.4.1 du noyau Linux, il s'agissait du premier système de fichiers de journalisation inclus dans le noyau standard.
À l'exception des mises à jour de sécurité et des correctifs de bogues critiques, Namesys a cessé le développement sur ReiserFS. Reiser4 est le système de fichiers successeur de ReiserFS. Il a ajouté un cryptage, amélioré les performances et bien plus encore.
Reiser4 nécessite un noyau patché. Malheureusement, il n'est toujours pas inclus dans le noyau Linux officiel, mais des correctifs pour Linux-5.x sont déjà disponibles. Les raisons pour lesquelles Reiser4 n'est pas dans le noyau Linux aujourd'hui peuvent être résumées comme des affirmations selon lesquelles des tests supplémentaires sont nécessaires.
Reiser4 fournit l'utilisation de l'espace disque la plus efficace parmi tous les systèmes de fichiers dans tous les scénarios et charges de travail. ReiserFS offre des avantages par rapport aux autres systèmes de fichiers, en particulier lors de la gestion d'un grand nombre de petits fichiers.
Il prend en charge la journalisation pour une récupération rapide en cas de problème. La structure du système de fichiers est basée sur des arbres. De plus, Reiser4 consomme un peu plus de CPU que les autres systèmes de fichiers.
Reiser4 a une capacité unique à optimiser l'espace disque occupé par de petits fichiers (moins d'un bloc). En effet, ils sont entièrement stockés dans leur inode, sans allouer de blocs dans la zone de données.
En plus d'implémenter les fonctions traditionnelles du système de fichiers Linux, Reiser4 fournit aux utilisateurs des fonctionnalités supplémentaires :compression et chiffrement transparents des fichiers, journalisation complète des données et extensibilité presque illimitée (avec l'aide de l'architecture de plug-in).
Cependant, il n'y a pas de prise en charge des E/S directes (le travail a commencé sur la mise en œuvre), des quotas et de l'ACL POSIX.
Conclusion
Le choix du système de fichiers qui répond aux besoins spécifiques de votre application nécessite la consultation et la recherche de divers paramètres.
Cet article décrit les avantages des options de système de fichiers ext4, ZFS, XFS, Btrfs et Reiser4 pour vous aider à choisir le bon système de fichiers pour vos environnements d'application.
Merci d'avoir passé votre temps ici.