Ce texte a été écrit à la suite d'une question "Pourquoi n'y a-t-il pas de programme de défragmentation sous Linux (Ubuntu) |
-
F A T
Le système FAT est parfait tant qu'il n'y a pas des mutations constantes des fichiers. En fait, le système FAT fonctionnait très bien jusqu'à windows 98. |
N T F S
Le système NTFS (New Technology File System) est fortement basé sur le système FAT. C'est pour cela que la conversion d'un volume FAT en NTFS est si rapide. Le répertoire ne contient que les informations de base (comme avec le système de fichiers FAT), les informations étendues sont reprises dans une base de données (MFT: Master File Table). L'avantage d'une base de données est qu'on peut modifier aisément la structure des enregistrements pour ajouter de nouvelles fonctionalités. Il ne s'agit pas d'un tableau dont les dimensions sont fixes. En ce qui concerne la prévention de la fragmentation, le système NTFS dispose de deux avantages:
Le premier problème du système FAT (qui n'est pas résolu par le système NTFS) prend des proportions catastrophiques avec les systèmes d'exploitation vista et windows 7 qui écrivent de nombreux fichiers. Fichiers qui ne servent strictement à rien et qui peuvent être effacés en montant le disque dans un autre ordinateur et en effaçant manuellement les fichiers. Un autre exemple qui contribue à la fragmentation du système sont les downloads de type "torrent" où le fichier définitif (par exemple un film) est téléchargé en petits morceaux de différentes sources. Le disque contient alors de nombreux fichiers fortement fragmentés (puisque le téléchargement est simultané de plusieurs sources). Quand le fichier définitif est créé, les petits morceaux sont assemblés dans un seul fichier, laissant de très nombreux trous dans la structure. Il faut non seulement défragmenter le système, mais aussi récupérer toute la place laissée par les nombreux morceaux de fichiers.
Exemple d'un volume fragmentéLe second volume n'est utilisé que pour la sauvegarde. Il s'agit donc de fichiers qui ne sont écrits qu'une fois. Il s'agit de photos qui ne sont plus jamais modifiées par après. Après un shooting-photo, je place les photos sur le disque de sauvegarde et je n'y touche plus. Et pourtant il y a fragmentation! Pas des photos, puisqu'elles sont écrites en une fois, mais bien des répertoires. Le répertoire doit s'aggrandir au fil et à mesure que les photos sont ajoutées. Or il n'y a pas de place pour permettre au répertoire de grandir (tandis que le système savait à l'avance le nombre de photos à transvaser (elles se trouvent sur une carte de mémoire)). C'est un des problèmes inhérent au système de fichiers NTFS. La base de données des fichiers est le MFT (Master File Table). Le système réserve à l'avance 12.5% de l'espace disponible du disque pour son stockage. Cela ne semble pas empècher le MFT de se fragmenter (troisième exemple). Le MFT ne peut pas être défragmenté, puisqu'il s'agit d'un fichier qui est toujours ouvert. Il n'y a en pratique que très peu de différence entre FAT et NTFS, et j'ai vu passer des milliers d'ordinateurs! La fragmentation est endémique, même sur un volume qui dispose de 72% d'espace de libre! (quatrième exemple). Le système de fichiers NTFS (tout comme son prédécesseur FAT) ont besoin d'une application de défragmentation. Mais savez-vous qu'il est possible d'éviter la fragmentation dès le départ? Non, vous ne le savez pas, puisque vous travaillez sous windows! |
E X T
Le format EXT a été conçu dès l'origine pour les applications multi-utilisateurs. Un système Linux est un serveur qui sert de nombreux clients. Le multi-tasking est une nécessité.
Un volume EXT se compose de stripes (ou bandes) qu'on pourrait comparer à de petites partitions dans le volume. Chaque fois qu'on écrit un fichier, on le place dans le stripe correspondant à l'application (ce qui permet d'avoir tous les fichiers "à portée de main"), mais on le place loin des autres fichiers. A première vue c'est une manière de faire assez débile, les fichiers étant disséminés un peu partout sur le disque. Mais il n'y a pas de problème quand un fichier grandit: il y a suffisamment de place à coté! Tout comme le format NTFS, le format EXT tient une liste de blocs disponibles à jour: il faut être en mesure de trouver rapidement et efficacement de la place quand le disque commence à bien se remplir. Le système va chaque fois réserver suffisamment de place pour que le fichier puisse grandir: le premier fichier est placé au début du stripe, le second à la moitié du stripe, le troisième au quart, le quatrième fichier au 3/4, etc. Le système de gestion de fichiers EXT est standardisé, mais diffère selon l'algoritme utilisé pour placer les fichiers. Chaque implémentation pratique dispose d'une fonction qui peut être différente pour le placement des fichiers. La fragmentation est limitée jusqu'à un niveau de remplissage de 80%. Les fichiers sont parfois coupés en deux fragments car l'emplacement orgininal était trop petit, mais cela n'est en aucun cas comparable au millier de fragments qu'on retrouve sous NTFS. Notez que le système EXT se déglingue complètement passé un taux de remplissage de 80% Il est possible d'avoir des statistiques sur l'état d'un volume: utilisez la commande fsck. Le système de fichiers utilise 11419 inodes (0.04% du nombre d'inodes disponibles). Le tableau d'inodes est créé lors du formatage du volume et ne peut pas être modifié. Ce tableau correspond un peu au FAT. La fragmentation est de 2% (ce qui est peu pour un disque qui sert de stockage temporaire de fichiers des clients). Le nombre d'inodes avec accès indirect (ind), double indirect (dind) et triple indirect (tind) est également fourni (voir le fonctionnement du format EXT pour plus d'explications). Le fait que la fragmentation est si limitée fait qu'il n'est pas besoin de défragmenter le volume. Quand la fragmentation apparait, c'est un signe que le volume est devenu trop petit. Le système EXT est défragmenté automatiquement quand on fait une copie du volume vers un nouveau volume. FSArchiver fonctionne au noveau des fichiers et va copier chaque fichier l'un après l'autre, assurant par là la défragmentation et la réservation d'espace pour permettre aux fichiers de grandir.
LatencyUn disque dur classique a un temps d'accès (seek time) moyen de 8ms (la tête se déplace du tiers du nombre de pistes) et un temps de latence de 5.5ms. Le temps de latence est le temps nécessaire pour que le disque fasse une demi-rotation. Le temps d'un saut de piste à piste est de 1ms.
|
Publicités - Reklame