Introduction Au Système De Fichiers Linux Ext, Minix Et Alternatives

Introduction

Un système de fichiers est un ensemble de processus qui contrôle comment, où et quand les données sont stockées et extraites d’un périphérique de stockage. Un système de fichiers efficace est essentiel pour les processus système quotidiens.

Le noyau Linux prend en charge divers systèmes de fichiers, mais le plus couramment utilisé est le système de fichiers ext4.

Remarque : Sous Linux, tout est stocké sous forme de fichier (par exemple, les répertoires, les imprimantes, les partitions, les données du noyau, etc.). Cela rend d’autant plus important d’apprendre comment fonctionne le système de fichiers Linux.

Évolution Du Système De Fichiers Linux

Examinons de plus près l’évolution du système de fichiers Linux :

Système De Fichiers MINIX

Le système de fichiers Minix prenait en charge le système d’exploitation Minix. Il a été introduit pour la première fois en 1987 par Andrew S. Tanenbaum.

Le système d’exploitation Minix et son système de fichiers étaient principalement utilisés à des fins de codage pédagogique. Les performances du système de fichiers n’étaient pas conformes à la norme à l’époque. La longueur des noms de fichiers était limitée à quatorze caractères et les partitions étaient limitées à 64 Mo. À l’époque, les disques durs supportaient des partitions jusqu’à 140 Mo.

Système De Fichiers Ext

Le système de fichiers ext signifie « Système de fichiers étendu ». C’était le premier système de fichiers conçu pour prendre en charge le noyau Linux.

Le système de fichiers virtuel (VFS) a été utilisé pour le système de fichiers ext. Son objectif principal était de permettre au noyau Linux d’accéder au système de fichiers ext. Le système de fichiers ext limitait la longueur des noms de fichiers à 255 caractères et prenait en charge les partitions jusqu’à 2 Go.

Bien qu’il ait réussi à résoudre les problèmes rencontrés par le système de fichiers Minix, il présentait un défaut majeur : l’horodatage. Contrairement à aujourd’hui où chaque fichier Linux a trois horodatages (horodatage d’accès, horodatage modifié et horodatage modifié), le système de fichiers ext n’autorisait qu’un seul horodatage par fichier.

En janvier 1993, le système de fichiers ext2 a été introduit. Avec le temps, tous les utilisateurs sont passés de ext à ext2.

Système De Fichiers Ext2

Remi Card a conçu le système de fichiers ext2 et l’a publié en janvier 1993, moins d’un an après l’introduction du système de fichiers ext.

Le système de fichiers ext2 a permis de conserver la structure interne tout en étendant les fonctionnalités du système de fichiers. Les données des fichiers étaient conservées dans des blocs de données de même longueur. Le système de fichiers ext2 prenait en charge la taille de fichier maximale de 2 To. La longueur des noms de fichiers n’était pas limitée en caractères, mais en octets – 255 octets. Il ne supportait pas la journalisation.

Bien que ce système de fichiers ait été largement utilisé, il présentait toujours deux problèmes majeurs :

  • Corruption de fichiers – Ce phénomène se produirait si des données étaient écrites sur le disque au moment d’une panne de courant ou d’un plantage du système.
  • Perte de performances – La fragmentation du disque se produit lorsqu’un seul fichier est divisé en morceaux et répartis sur plusieurs emplacements sur le disque. Par conséquent, les fichiers prennent plus de temps à lire et à écrire, ce qui entraîne une dégradation des performances.

Le système ext2 a été principalement utilisé jusqu’au début des années 2000, lorsque le système de fichiers ext3 a été introduit. Il est parfois utilisé aujourd’hui pour les périphériques USB car il ne prend pas en charge le système de journalisation.

Système De Fichiers Ext3

Stephen Tweedie a conçu le système de fichiers ext3 (Third Extended File System). Il a été lancé en novembre 2001 avec le noyau Linux 2.4.15. Il est encore utilisé aujourd’hui.

Le système de fichiers ext3 est une version améliorée du système de fichiers ext2. Il prend en charge une taille de fichier maximale de 2 To et limite la longueur maximale du nom de fichier à 255 octets, comme le système de fichiers ext2. L’amélioration se reflète dans la journalisation.

Le système de journalisation tient un « journal » de toutes les modifications de la structure de données qui n’ont pas encore été validées. En cas de panne de courant ou de plantage du système, les journaux stockés via le système de journalisation renvoient les données en quelques secondes, réduisant ainsi le risque de corruption ou de perte de données. Le système écrit les données dans les zones appropriées du système de fichiers lorsque le journal est mis à jour.

Le noyau Linux prend en charge trois niveaux de journalisation :

  • Journal – Il consiste à écrire des métadonnées et le contenu des fichiers dans un journal avant que des modifications ne soient apportées au système de fichiers principal. Cela permet d’économiser des données en cas de panne de courant ou de panne du système. L’inconvénient de ce niveau de journalisation est que les performances du système diminuent.
  • Ordonné – Ce niveau de journalisation écrit les métadonnées dans le journal, tandis que le contenu des fichiers est automatiquement stocké dans le système de fichiers principal. Le processus est exécuté dans un ordre spécifique. Premièrement, les métadonnées sont écrites dans le journal. Ensuite, le contenu du fichier est écrit dans le système de fichiers principal. Finalement, les métadonnées se connectent au système de fichiers principal. Par conséquent, le système de fichiers principal n’est pas corrompu en cas de panne du système. Seuls les fichiers en cours d’écriture lors d’un plantage peuvent être corrompus.
  • Réécriture – Ce niveau de journalisation écrit uniquement les métadonnées dans le journal. Le contenu des fichiers est écrit dans le système de fichiers principal uniquement après la mise à jour du journal. En raison du manque de synchronisation des métadonnées et du contenu des fichiers, le système de fichiers sera probablement corrompu si le système tombe en panne.

Système De Fichiers Ext4

Le système de fichiers ext4 est le système de fichiers par défaut du noyau Linux actuel. Il a été introduit en octobre 2008 avec le noyau Linux 2.6.28.

Le système de fichiers ext4 prend en charge la taille de fichier maximale de 16 To et limite la longueur maximale des noms de fichiers à 255 octets.

Fonctionnalités Du Système De Fichiers Ext4

Regardons les principales caractéristiques du système de fichiers ext4.

Rétrocompatibilité

Le système de fichiers ext4 prend en charge la rétrocompatibilité avec les systèmes de fichiers ext3 et ext2. Une fonctionnalité supplémentaire est le montage automatique du système de fichiers ext3 en mode ext3 à l’aide d’un pilote ext4.

Améliorations De L’allocation

Le système de fichiers ext4 alloue les blocs de stockage plus efficacement avant de les écrire sur le disque. Cela améliore les performances de lecture et d’écriture.

Améliorations De L’horodatage

Le système de fichiers ext4 ajoute 408 années supplémentaires à l’horodatage et prend en charge les dates jusqu’au 10 mai 2446. Les horodatages sont également mesurés plus rapidement, en nanosecondes.

Étendues

Les versions obsolètes du système de fichiers ext mappent tous les blocs en corrélation avec chaque fichier. Le processus ne fonctionne pas lorsqu’il s’agit de fichiers volumineux nécessitant un nombre élevé de blocs. Les extensions ont résolu le problème dans le système de fichiers ext4.

Les étendues réduisent la quantité de métadonnées requises pour mapper les blocs de chaque fichier. Le système enregistre l’adresse du premier et du dernier bloc correspondant au gros fichier.

Améliorations De L’allocation Multibloc

Un allocation de bloc recherche les blocs libres qui peuvent être utilisés pour écrire des données sur le disque. Le système de fichiers ext4 utilise plusieurs allocations qui permettent l’allocation de plusieurs blocs par appel. Cela réduit la fragmentation du disque.

Attribution Différée

La fonction d’ allocation différée alloue des blocs uniquement lorsque le fichier est écrit sur le disque. Grâce à cette fonctionnalité, la mémoire cache n’est pas remplie de données inutiles et les performances du système augmentent.

Nombre Illimité De Sous-répertoires

La version 2.6.23 du noyau Linux prend en charge un nombre illimité de sous-répertoires. Le système de fichiers ext4 a introduit la structure de données HTree pour éviter les baisses de performances. La structure de données HTree représente une version spécialisée du B-tree.

Sommes De Contrôle Du Journal

Le système de fichiers ext4 utilise l’ option de somme de contrôle. Cette option a été introduite pour réduire le risque de corruption de fichiers.

Le système de journalisation est la partie la plus utilisée du disque. Lorsqu’une panne matérielle se produit, les blocs deviennent inutilisables et une corruption de fichiers se produit. L’option de somme de contrôle vérifie constamment si un bloc est endommagé. Ce processus améliore également les performances car il raccourcit le temps de journalisation.

Vérifications Plus Rapides Du Système De Fichiers

Dans un système de fichiers ext4, les groupes non distribués de blocs et les tables d’inodes sont marqués. Le temps nécessaire à l’exécution de la commande fsck est considérablement raccourci car les groupes marqués sont ignorés. Il améliore les performances globales.

Défragmentation En Ligne

La fragmentation du disque entraîne une dégradation des performances, ce qui était un problème important avec les systèmes de fichiers ext2 et ext3. Le système de fichiers ext4 prend en charge l’ outil e4defrag qui permet aux utilisateurs de défragmenter des fichiers individuels ou le système de fichiers complet.

Limitations Du Système De Fichiers Ext4

Bien que le système de fichiers ext4 soit considéré comme le meilleur système de fichiers pour les distributions Linux, il existe quelques limitations qui doivent être prises en compte dans le développement ultérieur du système :

  • Récupération de données corrompues – Le système de fichiers ext4 ne peut pas détecter ou récupérer des données corrompues déjà écrites sur le disque.
  • Taille maximale du volume – La taille maximale du volume est définie sur 1 EiB. Cependant, le système de fichiers ne peut pas traiter plus de 100 Tio de données sans une perte significative de performances et une fragmentation accrue du disque.

Systèmes De Fichiers Linux Alternatifs

Il existe plusieurs alternatives au système de fichiers ext4. Le noyau Linux prend en charge toutes les alternatives répertoriées ci-dessous.

Remarque : Pour éviter les problèmes, utilisez des systèmes de fichiers alternatifs dans des répertoires distincts.

XFS

XFS est un système de fichiers 64 bits introduit pour la première fois en 1994 et intégré au noyau Linux depuis 2001. Il s’agit du système de fichiers par défaut de RedHat Linux.

XFS prend en charge une taille de fichier maximale de 8 EiB et limite la longueur du nom de fichier à 255 octets. Il prend en charge la journalisation et, comme ext4, il enregistre les modifications dans un journal avant que les modifications ne soient validées dans le système de fichiers principal. Cela réduit la possibilité de corruption de fichiers.

Les données sont structurées en arbres B+ , ce qui permet une allocation efficace de l’espace et donc des performances accrues.

Le principal inconvénient de ce système se reflète dans le processus de redimensionnement difficile d’un système de fichiers XFS existant.

OpenZFS

OpenZFS est une plate-forme qui combine des systèmes de fichiers avec des gestionnaires de volumes. Il a été introduit pour la première fois en 2013.

OpenZFS prend en charge une taille de fichier maximale de 16 EiB et limite la longueur maximale du nom de fichier à 255 caractères. Certaines des fonctionnalités de ce système sont la protection contre la corruption des données, le cryptage, la prise en charge de capacités de stockage élevées, la copie sur écriture et RAID-Z.

Le principal inconvénient d’OpenZFS est l’incompatibilité légale entre les licences CDDL (OpenZFS) et GPL (noyau Linux). Cela est résolu en compilant et en chargeant le code ZFS dans le noyau Linux.

BtrFS

Oracle a conçu BtrFS (signifie « système de fichiers B-tree ») et l’a publié en 2009 avec le noyau Linux 2.6.29.

BtrFS prend en charge une taille de fichier maximale de 16 EiB et limite la longueur maximale du nom de fichier à 255 caractères. Certaines des fonctionnalités de BtrFS sont la défragmentation en ligne, l’ajout et la suppression de périphériques de bloc en ligne, la prise en charge RAID, la compression configurable par fichier ou volume, le clonage de fichiers, les sommes de contrôle et la capacité de gérer les fichiers d’échange et les partitions d’échange.

Conclusion

Le système de fichiers Linux a évolué pendant des décennies pour gagner en complexité et en fonctionnalités. Chaque nouvelle fonctionnalité résolvait un problème présent dans les versions obsolètes du système.

Après avoir lu cet article, vous devriez avoir une meilleure compréhension du système de fichiers Linux et de son fonctionnement.

Ensuite, pensez à en savoir plus sur les sauvegardes de données dans notre article Snapshot vs Backup.

Cet article a-t-il été utile?

Oui Non