Histoires de BureauLa vérité sur la défragmentation

Wes Miller

La fragmentation de disque est aussi ancienne que les disques durs. Si vous êtes soucieux de vos systèmes, vous les défragmentez certainement régulièrement. Ceci vous rappelle probablement ce monologue que vous sert chaque année votre dentiste sur l'importance de l'utilisation du fil dentaire ; vous vouez certainement de quoi je veux parler. Eh bien, la défragmentation est tout aussi importante.

À moins que votre ordinateur ne soit relégué dans un coin, toujours éteint, il est de plus en plus fragmenté. Je vous montrerai d'ici peu comment cela se produit, mais penchons-nous pour l'instant sur un petit historique de la défragmentation.

Défragmentation et Windows NT

Windows NT® ne possédait pas d'utilitaire de défragmentation intégré et les idées reçues de l'époque voulaient que vous n'en ayez pas besoin. Après tout, le système de fichiers NTFS avait été créé avec l'optimisation à l'esprit, et il ne souffrait pas de la fragmentation de manière aussi spectaculaire qu'un volume FAT similaire. Mais au fil du temps, même les performances NTFS peuvent pâtir d'un placement de fichier moins qu'optimal. Ceci a permis la naissance d'un marché des outils de défragmentation tiers très prospère. L'un des produits les plus populaires parmi les professionnels de l'informatique était le logiciel Diskeeper d'Executive Software (maintenant Diskeeper Corporation). Lorsque Windows 2000 a intégré la fonctionnalité de défragmentation, Microsoft a acquis la licence de la technologie d'Executive Software. La fonctionnalité de défragmentation de Windows® 2000 était disponible dans son propre composant enfichable MMC (Microsoft ® Management Console), dfrg.msc. Celui-ci pouvait être invoqué en cliquant sur un volume ou en exécutant manuellement defrag.exe à partir de la ligne de commande. Bien que cet utilitaire ne permît pas la planification et disposât uniquement ligne de commande uniquement, de nombreux professionnels de l'informatique créèrent néanmoins des scripts fonctionnels pour automatiser la défragmentation en utilisant cette version intégrée. Defrag.exe dans Windows XP et Windows Server® 2003 constituait une légère amélioration par rapport à la version précédente, mais offrait une automatisation limitée. Il était toujours nécessaire d'écrire des scripts pour celle-ci.

Plusieurs fournisseurs, dont Winternals Software (mon ancien employeur), ont alors créé des logiciels pour le segment de la défragmentation d'entreprise. La plupart de ces produits fonctionnent de façon identique, avec une console centralisée, un agent d'un certain type hébergé sur les systèmes clients (parfois de manière permanente et parfois seulement sur demande) et une structure permettant d'indiquer quand et comment la tâche de défragmentation s'exécute.

Windows Vista® perpétue principalement la tendance de défragmentation de système unique, tout en optimisant le defragmenteur et en incluant des options telles que la défragmentation de petits fragments de fichiers (64 Mo ou moins), ce qui accélère la défragmentation mais conserve les plus grands fragments de fichiers sur le disque. Le moteur de défragmentation à proprement parler est plus puissant dans Windows Vista et Windows Server 2008 que dans les versions précédentes de Windows. Il s'exécute en outre automatiquement et ne nécessite aucune planification manuelle. Mais si vous êtes en charge d'une grande organisation ou devez optimiser vos systèmes avec des méthodes non fournies par défaut par la défragmentation, il est possible que vous deviez toujours avoir recours à des logiciels tiers. Et, tout comme dans les versions précédentes, vous risquez de rencontrer des difficultés pour la défragmentation d'un volume sur lequel la compression NTFS est activée et utilisée de façon intensive. Un outil tiers peut également être utile dans un tel scénario.

Comment la fragmentation survient-elle ?

La fragmentation survient car les fichiers changent avec le temps. Dans l'idéal, les fichiers Windows ne changent pas. Ou, tout du moins, ils ne changent pas très souvent, à vrai dire seulement avec les installations de Service Packs et de mises à jour logicielles. Autrement, les fichiers système demeurent relativement constants. Après l'exécution d'une mise à jour importante telle que l'installation d'un Service Pack, une fragmentation surviendra naturellement puisque les fichiers mis à jour ne peuvent habituellement pas être écrasés à leur emplacement sur le disque (et peuvent nécessiter un redémarrage pour être mis à jour) ce qui se traduit par une nouvelle fragmentation.

Les fichiers et données des utilisateurs (et le Registre Windows), en revanche, font l'objet de modifications constantes. La lecture, l'écriture, la modification, la copie et la suppression continuelles de fichiers provoquent une fragmentation intensive, en particulier lorsque la capacité du lecteur est atteinte.

Pour représenter ceci, imaginons un disque parfaitement ordonné, dans lequel les fichiers occupent un espace contigu sans aucun espace entre eux. Supposons que vous ouvrez un fichier et le modifiez, puis essayez de l'enregistrer. Si le fichier a grandi, Windows doit enregistrer le fichier dans son intégralité à un autre emplacement sur le disque (par exemple après le fichier N) ou enregistrer les nouvelles données après le fichier N. Cela signifie que le fichier 2 est maintenant fragmenté. Si vous modifiez maintenant le fichier 1, vous aurez deux fichiers fragmentés. Répétez ceci au fil du temps et vous obtiendrez un système considérablement fragmenté dans lequel le lecteur doit examiner un grand nombre d'emplacements pour accéder à un fichier individuel. Avec des fichiers de base de données de grande taille, des fichiers de disque dur volumineux pour les technologies d'informatique virtuelle et une multitude de vidéos et de fichiers audio enregistrés sur les disques standard, la fragmentation est chose commune. Bien sûr, la taille toujours plus importante des disques durs atténue le problème représenté par la fragmentation, mais celui-ci ne disparaît pas pour autant. Les anciens portables avec des disques durs plus réduits réagiront de moins en moins bien, seront plus lents à démarrer et nécessiteront une durée plus longue pour ouvrir et enregistrer des fichiers.

Le principal souci ne réside pas dans le degré de fragmentation du disque, mais celui des fichiers individuels. Depuis l'arrivée des premiers défragmenteurs de disque avec indications visuelles multicolores, les utilisateurs les observent en se disant « je voudrais une barre de couleur pleine ». Cela ne serait en fait absolument pas souhaitable. Certains produits tentent de faire en sorte que leurs disques apparaissent comme deux blocs : un bloc coloré (les données de fichiers) et un bloc généralement blanc (l'espace libre). Il s'agit malheureusement de l'une des pires choses à souhaiter pour votre disque si votre objectif est de réduire la fréquence et le coût de la défragmentation. Si vous avez compressé de manière agressive toutes les données de fichiers dans la première partie du disque et supprimé une bonne partie de l'espace libre lorsque vous avez apporté des modifications supplémentaires à un fichier, toutes ces modifications devront être écrites à la fin des données de fichier et, en effectuant la défragmentation de la sorte, vous avez en fait provoqué une fragmentation, qui commencera avec le prochain fichier modifié. Au lieu de deux blocs de données de fichiers soigneusement organisés, une bonne défragmentation se traduit par une image qui n'est pas nécessairement parfaite. Observez par exemple la figure 1 pour mon système de test avant défragmentation. Observez ensuite la figure 2 pour voir le même système une fois la fragmentation exécutée par Windows.

Figure 1 Mon lecteur avant défragmentation

Figure 1** Mon lecteur avant défragmentation **(Cliquer sur l'image pour l'agrandir)

Figure 2 Mon lecteur après défragmentation

Figure 2** Mon lecteur après défragmentation **(Cliquer sur l'image pour l'agrandir)

Notez que Windows ne se concentre pas sur la fragmentation des fichiers sur l'ensemble du disque, mais plutôt sur la fragmentation de chaque fichier individuel (voir la figure 3 pour la section du rapport de défragmentation sur les fichiers les plus fragmentés avant la défragmentation du système).

Figure 3 Rapport de défragmentation

Figure 3** Rapport de défragmentation **

Par conséquent, même après la défragmentation, Windows n'affichera pas un bloc de données de fichiers compacté dans la première partie du disque. Notez également la grande section de données vertes des deux figures 1 et 2. Il s'agit du fichier d'échange Windows, que j'aborderai sous peu. Si la mise en veille prolongée est activée dans votre système Windows, elle affichera une défragmentation similaire.

Une défragmentation régulière est essentielle

Tout comme avec le fil dentaire, l'important est de se souvenir de défragmenter régulièrement. Il est encore plus important de défragmenter fréquemment sur les systèmes à haut degré d'utilisation tels que les serveurs, car si vous attendez trop longtemps, ce processus peut prendre trop longtemps et rendre votre serveur indisponible ou peu réceptif (car la défragmentation peut prendre un temps considérable et certaines phases de défragmentation peuvent en outre être exigeantes en termes de processeur).

Même les meilleurs outils de défragmentation en ligne ne peuvent pas tout défragmenter. Par exemple, ils ne peuvent pas toujours défragmenter les fichiers ouverts ou verrouillés (tels que le fichier d'échange ou du Registre) et doivent également trouver une solution pour le fichier de mise en veille prolongée, le cas échéant (qui possède une taille aussi importante que la mémoire vive utilisée sur votre système). Pour optimiser les fichiers verrouillés, consultez la section suivante sur les astuces de défragmentation.

Je pense qu'il est important de comprendre les mythes et les réalités associés à la défragmentation. La figure 4 et la figure 5 répertorient certains sujets courants évoqués au cours de discussions concernant la défragmentation et les possibilités réelles d'apparition de ces problèmes.

Figure 5 Mythes entourant la défragmentation

Mythe Probabilité
Les systèmes tomberont en panne. Peu probable : les pannes sont habituellement dues à des problèmes de pilote ou de matériel (corruption de la mémoire, problèmes thermiques provoquant des redémarrages ou défaillance de disques en raison d'abus thermiques de disque).
Les applications tomberont en panne. Peu probable : comme avec l'ensemble du système, une application convenablement conçue ne devrait pas tomber en panne en raison de la fragmentation. Par conséquent, à moins qu'il ne soit prouvé qu'elle en soit la cause, il n'existe aucune raison de croire que la fragmentation est à l'origine du problème.
Le Registre sera endommagé. Peu probable (voir ci-dessus) : la fragmentation ne provoque pas et ne mène pas à des dégâts sur le Registre.
La défragmentation doit se traduire par une barre pleine dans la représentation visuelle du disque. Peu probable : tous les fichiers du système ne doivent pas être compressés ensemble, sauf dans le cas très spécifique où vous prévoyez de créer une image du système avec un outil de création d'image basé sur les secteurs qui n'exclut pas l'espace libre et ne permet pas la réduction ou le fractionnement des partitions. Vous devez faire en sorte que les fichiers soient au premier plan du disque. Dans le cas contraire, une consolidation de fichiers agressive n'entraînera qu'une fragmentation accrue.
   

Figure 4 Inquiétudes courantes concernant la défragmentation

Inquiétude Probabilité
Les performances du système seront affectées. Élevée : en particulier en fonction de l'utilisation du système.
La récupération de fichiers accidentellement supprimés peut devenir difficile ou impossible. Élevée : la plupart des outils de récupération de fichiers dépendent de l'heuristique (pour déterminer le type de données) et de la proximité des groupes de fichiers. La dispersion des fichiers se traduit par une opération de récupération plus complexe ou impossible.
Il sera coûteux de défragmenter le système. Moyenne : il existe une corrélation directe entre la fréquence d'utilisation du système et la quantité de modification des fichiers sur le système au fil du temps. Si les utilisateurs modifient des fichiers de façon intensive mais les enregistrent uniquement sur des partages de serveur, par exemple, vous ne constaterez pas beaucoup de dégradation au fil du temps.
Les disques subiront des dommages. Faible : peu probable. Ici encore, plus vous exploiterez un système (en le conservant allumé avec les disques constamment sous tension, en éditant, modifiant et supprimant des fichiers), plus cette probabilité sera grande. Mais avec le matériel actuel, ceci ne se produira pas en raison de la modification de fichiers seule.
   

Défragmentation dans le cadre de votre infrastructure

Il est fortement conseillé de procéder régulièrement à la défragmentation de tous vos systèmes. Vous pouvez soit utiliser la défragmentation intégrée à Windows, soit examiner les options proposées par des fournisseurs tiers. En gros, cela se résume à la quantité d'ingénierie que vous êtes prêt à mettre en œuvre. Windows XP et ses versions ultérieures vous permettent d'ajouter defrag.exe en tant que tâche planifiée (l'article de la base de connaissances support.microsoft.com/kb/555098 vous indique comment faire). Notez que la défragmentation d'ordinateur portable s'accompagne de considérations particulières. Il est souhaitable de défragmenter le système d'un utilisateur lorsqu'il est alimenté (de préférence par le secteur), mais il est également préférable de ne pas monopoliser les cycles de processeur ou de disque lorsqu'un utilisateur mobile essaie de travailler. Malheureusement, lorsqu'un utilisateur mobile ne travaille pas sur son système, il est probable qu'il soit déconnecté du secteur et soit en veille, soit en veille prolongée (ce qui, du point de vue de la gestion de l'alimentation et des tâches planifiées, revient à être hors tension). Chez Winternals (comme probablement partout ailleurs), nous avons passé beaucoup de temps à essayer de concevoir un scénario idéal pour les utilisateurs mobiles. Si vous utilisez Windows Vista, une solution utilisant la défragmentation intégrée et les tâches planifiées, beaucoup plus consciente de l'alimentation que les versions précédentes, peut fournir une solution suffisante. Si ce n'est pas le cas, une solution de fournisseur tiers pour systèmes mobiles peut être nécessaire. Certaines peuvent en fait déclencher une tâche de défragmentation et vous indiquer qu'elle s'est exécutée, à quel moment elle s'est exécutée (et avec quelle fréquence), ainsi que le temps qu'elle a pris.

Outre les scénarios mobiles, il est souhaitable de réfléchir à la fragmentation au-delà du système de fichiers. Il ne s'agit pas d'une chose dont vous devrez généralement vous préoccuper avec les systèmes de bureau ou mobiles, mais les serveurs, Microsoft Exchange, SQL ServerTM ou les autres magasins de données peuvent nécessiter leur propre défragmentation. Dans de tels cas, vous devrez décider si cette tâche doit être effectuée avant ou après l'exécution d'une défragmentation du système de fichiers.

Si vous utilisez un produit de défragmentation de fournisseur tiers, il est souhaitable de s'assurer qu'il utilise l'API de défragmentation de Windows. Depuis Windows NT 4.0, Windows possède sa propre API de défragmentation pour empêcher les pertes de données imprévues. Par exemple, si vous êtes en train de déplacer un fichier et que l'alimentation de votre système est interrompue, la dernière chose que vous voulez est un déplacement de fragment incomplet, qui pourrait se traduire par une perte de données, voire un système ne pouvant pas être démarré.

Enfin, si vous utilisez la technologie d'informatique virtuelle, il est également conseillé de réfléchir à la façon dont la défragmentation doit être gérée sur les disques virtuels. Ils sont tout aussi susceptibles de faire l'objet d'une fragmentation que les disques physiques et celle-ci peut en toute probabilité s'avérer pire en raison des contraintes de taille. De plus, si votre solution de virtualisation vous permet de réduire des disques ou des partitions, il est préférable de les défragmenter au préalable afin de libérer de l'espace (ou tout du moins de réduire le temps nécessaire à l'opération de réduction).

Outils supplémentaires

Vous êtes maintenant certainement convaincu de l'importance et de la valeur de la défragmentation. Même si vous n'utilisez pas un outil tiers pour la défragmentation, vous devriez peut-être envisager l'outil PageDefrag de Mark Russinovich, que vous trouverez sur le site des outils de Microsoft Sysinternals (voir microsoft.com/technet/sysinternals/FileAndDisk/PageDefrag.mspx). Comme je l'ai mentionné précédemment, le fichier d'échange de Windows ne peut pas être défragmenté pendant que Windows est actif. En fait, ceci s'applique également aux fichiers du Registre de Windows et des journaux d'événements. Grâce à un petit pilote, PageDefrag vous permet de défragmenter ces fichiers verrouillés avant que Windows ait terminé de démarrer et ait verrouillé ces fichiers. Pour l'utiliser, exécutez simplement PageDefrag et configurez-le pour s'exécuter au redémarrage suivant ou à chaque redémarrage. Lorsque le système redémarre (au stade du processus de démarrage où vous pouvez avoir vu précédemment qu'une vérification de disque est exécutée), il défragmente les fichiers spécifiés dans la liste (voir la figure 6).

Figure 6 Fichiers à défragmenter dans PageDefrag

Figure 6** Fichiers à défragmenter dans PageDefrag **

Lorsque PageDefrag a accompli sa tâche, le système termine de démarrer normalement. Si vous recherchez plus d'informations sur PageDefrag, Lance Whitney l'a évoqué dans la chronique Coup de projecteur sur les utilitaires du numéro de septembre (voir technetmagazine.com/issues/2007/09/UtilitySpotlight). Notez que PageDefrag est uniquement pris en charge par Windows NT 4.0, Windows 2000, Windows XP et Windows Server 2003. Il n'est actuellement pas pris en charge par Windows Vista.

Outre PageDefrag, il existe un autre outil disponible auprès de Sysinternals portant le nom de Contig, qui vous permet de défragmenter un fichier spécifique manuellement (voir microsoft.com/technet/sysinternals/FileAndDisk/Contig.mspx). Celui-ci peut être utile si un fichier spécifique n'a pas pu être défragmenté à l'aide d'une tâche de défragmentation normale ou s'il a été fragmenté depuis (mais que le reste du volume n'a pas été aussi fragmenté).

Contig permet également de défragmenter un répertoire ou des sous-répertoires entiers en utilisant les caractères génériques. La commande suivante défragmentera tous les fichiers de l'arborescence du répertoire Windows, indépendamment de leur emplacement.

Contig –s c:\Windows\*.*

Appliquez le commutateur -v pour afficher le détail de l'opération et –q pour qu'elle s'exécute sans affichage d'informations.

Wes Miller est responsable du développement chez Pluck (www.pluck.com) à Austin, au Texas. Auparavant, il a travaillé chez Winternals Software à Austin et chez Microsoft en tant que responsable de programme et responsable de produit pour Windows. Vous pouvez contacter Wes à l’adresse suivante : technet@getwired.com.

© 2008 Microsoft Corporation et CMP Media, LLC. Tous droits réservés. Toute reproduction, totale ou partielle, est interdite sans autorisation préalable.