mercredi 30 avril 2008

Faut il défragmenter sous Linux ? Existe t'il des outils pour la défragmentation ?

En fait, il est incorrect de dire qu'il n'en existe pas, mais il conviendra d'insister sur le fait qu'ils sont le plus souvent totalement inutiles. Pour comprendre cette réponse, il est nécessaire de comprendre ce qu'est la fragmentation.La taille d'un fichier se mesure en kilo-octets. Un disque dur est compartimenté en blocs de quelques kilo-octets (par défaut, 4 ko pour le système de fichiers ntfs), ce bloc étant appelé un cluster. Il s'agit en fait de la plus petite taille que peut occuper un fichier donné sur votre disque dur. Par exemple, si vous avez un fichier de 17 ko, il va occuper 5 clusters (pour un total de 20 ko ; en effet, 4 clusters seraient insuffisants, car avec 16 ko au total, ils ne permettraient pas l'écriture intégrale du fichier), et il restera 3 ko réservés (20 ko disponibles dans les 5 clusters, mais seulement 17 ko occupés par le fichier), mais cependant non utilisés. Lorsque vous utilisez Windows et que vous avez besoin d'écrire un fichier sur le disque dur, le logiciel se positionnera sur le premier cluster libre qu'il rencontrera, et commencera à le remplir. S'il a besoin de plus d'un cluster, il écrira également dans le cluster voisin, puis dans le suivant, et ainsi de suite, jusqu'à ce que le fichier entier soit écrit, ou que le cluster qui suit soit déjà occupé par un autre fichier. En ce cas, il continuera à parcourir le disque dur jusqu'à trouver un nouveau cluster libre et écrira dedans et ses voisins, ainsi de suite, jusqu'à ce que le fichier entier soit écrit, en autant de blocs séquentiels logiques possibles.
Bien sûr, il en résulte qu'un même fichier peut être écrit, petit bout par petit bout, en plusieurs endroits du disque. Si les données sont trop dispersées, la lecture d'un fichier peut en être plus ou moins ralentie, et le phénomène empire à mesure que le disque se remplit. On dit alors que le disque est « fragmenté », c'est-à-dire que les données ne sont pas rangées à la suite les unes des autres.
Sous Windows, il existe des utilitaires qui permettent d'analyser le contenu du disque, et de réorganiser son contenu de façon à ce que tous les clusters liés au même fichier soient contigus, et dans le bon ordre. Cette opération d'analyse et de réorganisation s'appelle « la défragmentation ». Elle permet, dans certains cas, de nettes accélérations du système.
Sous Linux, cette opération n'est pas nécessaire, car de par leur conception, les systèmes de fichiers ext3 ou reiserfs (par exemple) vont avoir une tendance naturelle à n'écrire que là où il y aura la place de le faire, et d'optimiser l'espace disque consommé. Bien sûr, lorsque le disque commence à être plein, et que de gros volumes de données sont manipulés, il n'y aura pas de miracle : le système écrira ce qu'il pourra où il pourra, même s'il en résulte une fragmentation des fichiers.
Alors doit-on défragmenter sous Linux ? Si vous écoutez les prêcheurs anti-Windows, jamais de la vie : Linux est tellement plus intelligent que son système de fichier ne fragmente (presque, mais on l'oublie souvent) pas. Il est vrai que les systèmes de fichiers Linux font un usage optimisé de l'espace, mais il n'est malheureusement pas en mesure de savoir aujourd'hui quelle sera l'organisation optimale de votre disque après une ou deux années d'usage intensif. Pour résumer, si vos disques durs ont une durée de vie supérieure à deux ans, que vous travaillez régulièrement dessus, que vous manipulez quotidiennement de gros fichiers (vidéos, morceaux de musique...), que vous vous livrez au P2P ou encore qu'il vous arrive d'exhumer de vieux (et gros !) fichiers pour retravailler dessus, vous ressentirez vite, comme tout le monde, le besoin de défragmenter votre beau disque Linux !
Donc si vous avez besoin de réaliser cette opération, il ne vous reste plus qu'à vous intéresser à l'un des projets suivants : Shake (http://vleu.net/shake/) ou encore Defrag (http://ck.kolivas.org/apps/defrag/). Mais ne sombrez pas dans la paranoïa et assurez-vous bien d'en avoir réellement besoin avant de vous lancer dans l'aventure : pour un utilisateur lambda, cela n'en vaudra certainement pas la peine...

Aucun commentaire: