Cette article parle de EXT comme vous vous en doutez compte-tenu du titre. Principalement de l’évolution de celui ci à travers ces versions 2, 3 et 4. Les principaux changements ou ajouts et les raisons poussant à passer d’une version à une autre .
On va commencer par l’apparition d’EXT2.
Il s’agit du premier système de fichier de qualité commerciale de Linux . Au début Linux utilisait le système de fichier MINIX fs, celui-ci était plutôt exempte de bugs mais utilisait des offsets 16 bits en interne imposant alors une taille de fichier de 64 Mo et une longueur maximale de 14 caractères pour la nomination des fichiers. c’est à cause de ces limites qu’a commencé le développement d’un autre système de fichier pour Linux.
Pour faciliter l’ajout de systèmes de fichiers et générer un nouveau fichier générique API , une couche de système de fichiers virtuelle a été ajoutée au kernel : VFS. Le but de VFS est de permettre aux applications clientes d’avoir accès à différent types de fichiers concrets de manière uniforme. Un VFS permet par exemple d’avoir accès à un système de stockage local ou connecté de manière transparente sans que l’application cliente ne voit la différence.
Grâce à l’ajout de VFS la taille d’un fichier peut aller jusqu’à 2GB et la longueur des noms de fichiers jusqu’à 255 caractères, EXT a été le premier système de fichier utilisant l’interface VFS distribué en avril 1992 dans le noyau Linux 0.96c mais il y a encore des soucis par rapport à la modification d’inoeud, modification de données ou le support des date de modifications pour chaque fichiers. Comme solutions pour ces deux problèmes en 1993 deux systèmes de fichiers ont commencé à être développés en 1993 pour le noyau Linux 0.99.
Xiafs et le deuxième système de fichiers étendu (EXT2), qui était une refonte du système de fichiers étendu, intégrant de nombreuses idées du système de fichiers rapide de Berkeley. EXT2 a également été conçu pour être évolutif, tout en laissant de la place dans de nombreuses structures de données sur disque pour pouvoir être utilisé par les versions futures.
EXT2 est encore aujourd’hui un système de fichier de choix pour les périphériques de stockage basé sur le flash (SSD) dû au manque de journalisation augmentant les performances et minimisant le nombre d’écritures, ce qui est bon pour les ssd qui ont un nombre limité de cycles d’écritures sur la mémoire.
EXT3 ou le troisième extended file system est un système de fichier journalisé souvent utilisé dans le noyau Linux. Pour beaucoup de distributions Linux c’était le système de fichiers par défaut. Le gros avantage de EXT3 par rapport à EXT2 c’est la journalisation qui ajoute de la fiabilité et enlève la nécessité de vérifier le système de fichiers après une extinction non contrôlée.
Par rapport à EXT2 l’ajout majeur chez EXT3 est bel et bien la journalisation. Il y a 3 modes de journalisation sur EXT3 :
-
- Journal : Ce mode correspond à la journalisation physique. Les modifications apportés aux méta-données et au système de fichiers sont enregistrées dans le journal. Il s’agit du mode le plus sécurisé, il permet d’éviter au maximum que les modifications apportés ne soient perdues.
-
- Writeback : Ce mode correspond à l’écriture à risque. Il est censé être le plus rapide des trois modes, dans le sens où il n’enregistre que les modifications des méta-données, et n’enregistre pas celles apportées au disque. Les écritures disque correspondantes peuvent être indifféremment exécutées avant ou après l’enregistrement dans le journal. il y a alors un risque, si un arrêt brutal du système intervient entre la journalisation et l’écriture effective sur le support, qu’il y ait une incohérence entre l’état du support de stockage et l’état du journal.
-
- Ordered : Il s’agit du mode par défaut. Il correspond à la journalisation logique, et à l’instar du mode Writeback, seul les modifications apportées aux méta-données du système de fichiers sont enregistrées dans le journal. La différence est que l’écriture des modifications sur le disque est faite avant d’ajouter l’entrée dans le journal. Ainsi, on est sûr que les changements inscrits dans le journal ont bien été réalisés. En contrepartie, le fait que l’écriture sur le disque doive se faire avant de modifier le journal ne permet pas une souplesse d’ordonnancement des écritures disques, ce qui peut impliquer de légers ralentissements.
La performance en terme de vitesse d’EXT3 est moins grande que celle des systèmes de fichiers de Linux plus compétitifs comme EXT4, JFS, ReiserFs et XFS mais EXT3 a un avantages signifiant sur la mise à niveau depuis EXT2 faisable sans sauvegarde et restauration de données.
Il est aussi considéré comme le plus sûr des systèmes de fichiers Linux due à sa simplicité et à la base de tests plus large.
Dans EXT4 pour augmenter la fiabilité les meta-données et les sommes de contrôle du journal ont été ajoutés.
L’allocation de données à été modifié passant des blocs aux extents. Un extent est décrit par son espace de début et de fin sur le disque dur. Ca rend possible de décrire un fichier long et continu avec une seul entrée de pointeur inoeud , ce qui peut réduire de manière significative le nombre de pointeur nécessaire pour décrire un long fichier (Un simple extent en EXT4 peut mapper jusqu’à 128MiB d’espace continue avec un bloc de taille 4KiB . Il peut y avoir jusqu’à quatre extents stocké directement dans l’inoeud. Quand il y a plus de 4 extents pour un fichier , le reste des extents est indexé en arbre).
Il y a aussi d’autres stratégies d’allocation qui ont été mis en place pour réduire la fragmentation. EXT4 diminue la fragmentation notamment en dispersant les différents nouveaux fichiers sur le disque dur pour qu’il ne soient pas rassembler au début du disque dur comme beaucoup de systèmes de fichiers. D’autres stratégies sont utilisés comme l’allocation d’espace en extra lors de la création ou de l’extension de fichiers. Ce qui permet d’assurer que lorsqu’il y aura extension de fichier il n’y ai pas forcément fragmentation. Il y a aussi le fait que l’espace pour les nouveaux fichiers n’est pas alloué juste à la suite des fichiers précédent . Prévenant ainsi la fragmentation des fichiers existants.
Il y a aussi possibilité de désactiver la journalisation dans EXT4 permettant ainsi une utilisation sur les hdd.
Les nouveautés dans EXT4 par rapport à EXT3 ont augmentés la fiabilité , la performance et la capacité du système de fichier. La fragmentation est vraiment basse avec les systèmes de fichiers EXT.
Vianel Ebourefe, Johann Hospice, Jude Ingani, Paul Zheng