Qu'est-ce que la défragmentation ?

Introduction

Vous l'avez très certainement entendu souvent: si votre ordinateur devient lent, il faut le défragmenter. Patiemment -car la défragmentation prend du temp- vous lancez alors votre défragmenteur fétiche: MyDefrag, Defraggler, UltraDefrag, ou autre. Il en existe des dizaines, mais au final c'est la même chose: une longue attente, des petits carrés de couleurs qui bougent et un ordinateur qui tripatouille le disque dur à plein régime.
 
Vaguement, quelqu'un vous a certainement expliqué que défragmenter, c'est ranger votre ordinateur. C'est effectivement le cas, mais cet article vous invite à préciser votre savoir en la matière, en comprenant notamment pourquoi un ordinateur se dérange. Ce phénomène de désorganisation de votre compagnon électronique ronronnant s'appelle la fragmentation, phénomène qui nous oblige à défragmenter nos ordinateurs!
 
Si vous souhaitez faire le lien entre l'exemple-illustré de l'explication qui suit et sa réalité et sa cause dans l'ordinateur, nous vous invitons à découvrir les articles suivants: le disque dur et le système de gestion de fichier. Evidement l'explication est plus simple à comprendre que sa cause, les articles conseillés ne sont pas des prérequis et les lecteurs les moins courageux peuvent donc lire l'explication suivante et tout de même tout comprendre.

La fragmentation

Pour cet article, nous considéreront l'analogie suivante: un ordinateur (une banque) gère des fichiers de données (les livres de compte de ses clients), tâche confiée au système de gestion de fichier (la secrétaire). Pour cela il stocke les informations  sur un disque dur (des salles pleines d'étagères) en utilisant un nombre entier de clusters [cf disque dur] qui sont des unités virtuelles de stockages (des cahiers 96 pages: au moins un par client).
----
Le système de gestion de fichier de l'ordinateur gère les fichiers, chacun étant stockés en utilisant un nombre entier de cluster du disque dur.
La secrétaire de la banque gère les livres de comptes des clients, chacun utilisant un nombre entier de cahiers disposés dans des étagères.
----
Et où intervient la fragmentation ?
----
Un fichier devient trop volumineux et ne tient plus sur un cluster. Il faut donc fragmenter le fichier et mettre en place une stratégie de gestion.
Le dossier du client est trop long et ne tient plus sur un cahier. Il faut utiliser plusieurs cahiers et ne surtout pas en perdre.
----
Si un fichier devient trop gros (le client utilise énormément son compte) il ne tiendra plus sur un cluster (il lui faudra plusieurs cahiers) et il faudra mettre en place des stratégies pour ne perdre aucune infos (surtout ne pas perdre les cahiers!). Classiquement, le système de gestion de fichier - le SGF-  fonctionne (en tout cas pour le NTFS: système Windows) de la manière suivante: il possède un cahier spécial qui est une sorte de table des matières des clients de l'entreprise. Dans cette table des matières appelée MFT (Master File Table ou Table de Fichiers Principale) est écrit le nom de tous les clients avec le numéro de leur cahier et l'endroit où ils se trouve sur l'étagère. Quand un client nécessite plusieurs cahiers, seul le premier cahier est noté dans la MFT, les suivants sont gérés sous forme d'une liste chaînée. Le principe est simple: dès qu'un cahier est plein, la secrétaire crée un nouveau cahier qui sera la suite du précédent. Sur la dernière page du cahier plein elle note l'emplacement du cahier suivant et ainsi de suite.
----
Le SGF tient une Table de Fichier Principale pour trouver le premier cluster contenant le fichier voulu sur le disque. Pour trouver la suite du fichier, le SGF associe à chaque morceau du fichier une référence vers le cluster suivant.
La secrétaire tient un index des clients pour trouver où se trouve le début de son dossier dans les étagères. Pour trouver la suite du dossier, elle écrit sur chaque dernière page de cahier l'endroit où se trouve le cahier suivant.
 
Dans une grosse entreprise (un gros disque dur sur votre ordinateur) le nombre de cahiers est si grand qu'il faut parfois plusieurs pièces pleines d'étagères pour les stocker. Lorsque le patron (l'utilisateur de l'ordinateur: vous) demande de sortir le dossier du client M. Dupont (vous souhaitez ouvrir votre document en cliquant sur l'icone du fichier), la secrétaire parcours son cahier 'table des matières' pour trouver le premier cahier de M. Dupont. Imaginons que ce soit un client de longue date, son premier cahier est pièce 1  étagère 2. Une fois ce cahier récupéré, elle s'aperçoit en dernière page qu'il a une suite, pièce 2 étagère 23. Ce second cahier a encore une suite: pièce 6 étagère 8, et ainsi de suite: un fichier peut-être fractionné en centaines de morceaux! La secrétaire revient avec le dossier essoufflée: il lui a fallut plusieurs minutes pour reconstituer le dossier de M. Dupont et le patron la trouve décidément bien inefficace: vous trouvez que votre ordinateur rame.
 
Lorsque l'utilisateur ouvre un fichier, le SGF parcours l'intégralité de la liste chainée de ses clusters. Si ceux-ci sont éparpillés sur le disque, les têtes de lecture doivent beaucoup se déplacer ce qui augmente le temps de réponse. L'ordinateur rame.
Lorsque le patron demande un dossier, la secrétaire récupère un à un tout les cahiers du client. Si ceux-ci sont éparpillés dans les salles et sur le nombreuses étagères, elle doit beaucoup se déplacer ce qui lui prend du temps. La secrétaire met longtemps à apporter le dossier au patron.
----
 
Mais pourquoi les fichiers sont-ils en petits morceaux ?
Nous avons vu qu'un fichier ne peut être stocké que sur des petits cahiers [cf disque dur]. Or la secrétaire remplit ses étagères dans l'ordre chronologique (c'est une secrétaire très particulière). M. Dupont est client depuis 20 ans, lors de son inscription, son cahier c'est retrouvé pièce 1 étagère 2: c'était l'ouverture de la banque. Depuis il fait un retrait par jour. Au bout de 95 retraits (la 96ème page étant réservée pour indiquer où se trouve la suite), il a fallu lui créer un nouveau cahier. Comme entre temps de nombreux clients se sont inscrits son nouveau cahier n'a pu trouver de place qu'en pièce 2 étagère 23.
Si par hasard M. Dupont fermait son compte (vous supprimez un fichier de votre ordinateur) la secrétaire brûle chacun de ses cahiers, laissant autant de trou dans la bibliothèque. Du coup, même si il y a un trou en pièce 1 étagère 8, tout nouveau client verra son cahier à la fin: la secrétaire ne comble pas les trous.
 ----
Un fichier est inscrit sur les clusters du disque. Lorsque qu'un nouveau cluster est nécessaire, le SGF utilise le premier endroit qu'il sait libre: là où les têtes de lecture se trouve ou en fin de disque. Lorsqu'un fichier est supprimé, le SGF marque les clusters utilisé comme désormais libre et supprime l'entrée du fichier dans sa table. Comme il ne touche pas aux clusters des autres fichiers, il en résulte des zones inutilisées partout sur le disque.
Un dossier est noté dans des cahiers. Lorsqu'un nouveau cahier est nécessaire, la secrétaire le range au premier endroit qu'elle sait libre: là où elle est ou tout à la fin. Lorsqu'elle doit supprimer le compte d'un client, elle brûle tous les cahiers qui lui correspondent et le supprimer de sa liste de client. Comme elle ne touche pas aux autres cahiers des étagères, il y a pleins de trous partout!
----
 
Il en résulte des étagères toutes désordonnées, pleines de trous, les cahiers des clients éparpillés de partout: c'est la fragmentation. Du coup une fois de temps en temps, le patron embauche un stagiaire (le logiciel de défragmentation) qui prend quinze jours pour tout réordonner: supprimer les trous et remettre les cahiers dans l'ordre. Vous imaginez bien combien cette opération peut-être longue: il faut tout sortir, déplacer, réécrire les dernières pages des cahiers pour les nouveaux emplacements, réécrire la table des matières... tout ça parce que la secrétaire gère mal (mais on l'aime bien quand même, elle fait de bons cafés, alors on la garde).
Sans faire de mauvaise publicité, c'est ici le système Windows.
avantage: l'enregistrement d'un fichier va vite; il suffit de mettre le cahier à la suite des autres.
inconvénient: l'ordinateur se dérange de plus en plus au fur et à mesure de l'utilisation. L'ouverture de fichier devient longue et pénible. L'opération de rangement est longue et fastidieuse.
Comme l'utilisation des fichiers fini par devenir fastidieuse, l'utilisateur lance de temps en temps une défragmentation. C'est un logiciel qui va alors s'occuper de regrouper tous les clusters d'un même fichier, puis de placer ses clusters en début de disque dans un ordre logique d'utilisation. Cette opération prend du temps.
Comme la secrétaire met de plus en plus de temps à s'y retrouver, le patron demande parfois une réorganisation des archives. C'est des stagiaires qui s'occupent de regrouper les cahiers par clients, puis de les ranger dans un ordre logique d'utilisation. Evidément, ça leur prend du temps.
----
La défragmentation c'est l'opération de rangement du disque dur, opération qui supprime donc l'effet de fragmentation inhérent à l'utilisation de l'ordinateur.

Concrètement c'est quoi et quand qui se fragmente ?

Si vous avez bien suivi, vous l'avez compris: tous les types de fichiers peuvent se fragmenter, et celà dès qu'il y a modification du fichier. En effet, c'est toujours lorsque le fichier est modifié que sa taille grandie ou diminue et qu'il faut donc lui ajouter ou supprimer des clusters. A chaque fois que vous enregistez votre fichier, que vous copiez/collez un fichier, que vous lancez une application -bref en permanence- la fragmentation est potentiellement en cours.

Peut-on éviter la fragmentation ?

J'ai entendu dire que sous Linux, il n'y avait pas besoin de défragmenter, pourquoi?
Tout simplement, et encore une fois sans faire de publicité, parce que la secrétaire d'une entreprise Linux est plus organisée que celle étudiée précédemment!
Mais que fait-elle alors au juste ? Tout comme la première, elle va tenir une table des matières, c'est la journalisation. Lors de l'arrivée d'un nouveau client, elle lui crée un nouveau cahier. Mais au lieu de le placer dans la dernière étagère libre, elle cherche le premier trou libre dans la première étagère et y dépose son cahier: du coup, elle comble les trous.
Plus fort encore, quand le client a besoin d'un nouveau cahier, au lieu de placer celui-ci dans un autre trou libre, elle prend tous les cahiers du dossier et les déplacent d'un bloc vers un trou d'une taille suffisante pour pouvoir les y déposer de manière contiguë. Du coup, les cahiers se suivent toujours, évitant à la secrétaire de faire de multiple allers-retour: l'ouverture d'un fichier est rapide. Le fait de combler les trous et de stocker les fichiers de manière contiguë s'appelle la défragmentation à chaud. Plus vous utilisez votre Linux, plus il se range! Seul inconvénient, créer un nouveau cahier prend un peu plus de temps, il faut tout déplacer.
avantages: rapidité de lecture, défragmentation à chaud des fichiers.
inconvénients: enregistrement plus lent

Pourquoi Windows ne fait-il pas la même chose ?

Windows utilise les méthodes nommées NTFS, FAT et bientôt exFAT. Linux les méthodes ext2, ext3 et maintenant ext4. Comme nous l'avons vu, les méthodes ne sont pas compatibles. Du coup, Windows ne peut pas lire le ext2,3 ou 4. Notons en revanche que Linux sait lire le NTFS et le FAT, du coup une partition Windows sera utilisable avec Linux mais pas vice-versa.
Windows avait commencé à l'époque avec son système en pensant certainement que cela accélérerait l'enregistrement, mais ne dégraderait pas temps que ça les performances, après tout à l'époque les disques durs était vraiment tout petit!
Seulement, la capacité des disques augmentant, le désordre engendré est devenu gênant. Les systèmes d'exploitation Microsoft s'étant largement répandu depuis, de nombreux systèmes sont ainsi formatés (utilise une secrétaire Microsoft). Plus possible de changer de mode de gestion au risque de perdre tous leur ancien client: pour changer d'une secrétaire à l'autre, il faut formater le disque dur, c'est à dire brûler tous les cahiers et recommencer. Personne ne veut perdre toute ses données! Les nouveaux systèmes doivent donc être compatibles avec les anciens, et la fragmentation continue...
Votre note : Aucun(e) Moyenne : 5 (5 votes)