Qu'est-ce qui ne nécessite pas de défragmentation? Linux ou le FS ext2 ext3?

32

Pourquoi ne devez-vous pas défragmenter un système Linux? Parce qu'il utilise le système de fichiers ext2 / ext3, ou parce que c'est Linux?

Cela est pertinent, car j’ai un système à double démarrage (W7 / Ubuntu) et une partition commune (NTFS) accessible aux deux systèmes. Si j'utilise cette partition avec Linux, sera-t-elle fragmentée?

Un autre problème concerne les conteneurs Truecrypt. Je leur accède également avec Linux et Windows, et ils sont FAT32. Sont-ils fragmentés par Linux qui les opère?

xyz
la source
2
Les autres réponses sont bonnes mais laissent de côté un élément important: Tous les systèmes de fichiers: ext2 / 3/4 et NTFS vont beaucoup fragmenter les fichiers s’ils manquent d’espace disque. Si vous souhaitez empêcher la fragmentation, n'autorisez pas l'utilisation de votre système de fichiers à plus de 90%.
Zan Lynx
1
Si vous utilisez ext4, vous serez surpris de voir le degré de fragmentation que vous pouvez avoir lorsque vous exécutez e4defrag -v .une arborescence de répertoires, en particulier si elle contient, par exemple, des fichiers téléchargés avec un client torrent (bien que certains utilisent fallocate/ posix_fallocate).
vendredi
Même si la question est sujette à une opinion personnelle, je pense qu’elle s’appuie davantage sur des faits réels.
Julie Pelletier

Réponses:

27

Voici un article sur How To Geek sur la façon dont ext2 / ext3 alloue des fichiers sur le disque. Et ils ont également un article demandant " Avez-vous vraiment besoin de défragmenter ?"


Pourquoi FAT est fragmenté?

"Lorsque vous enregistrez un fichier sur un système de fichiers FAT, [le fichier est enregistré] aussi près que possible du début du disque. Lorsque vous enregistrez un deuxième fichier, [le fichier est enregistré] juste après le premier fichier - et ainsi de suite. Lorsque les fichiers d'origine grossiront, ils deviendront toujours fragmentés. Il n'y a pas de place à proximité pour eux. "
-Comment Geek

Et wikipedia a plus d'informations sur la fragmentation FAT .

Sur la façon dont EXT2,3,4 allouer des fichiers:

"Les systèmes de fichiers ext2, ext3 et ext4 [...] allouent les fichiers de manière plus intelligente. Au lieu de placer plusieurs fichiers les uns à côté des autres sur le disque dur, les systèmes de fichiers Linux dispersent différents fichiers sur le disque, laissant une grande partie d'espace libre entre eux ".
-Comment Geek

(Et plus d'infos sur la défragmentation sur ext3, extrait de wikipedia )

"Les systèmes de fichiers Linux modernes minimisent la fragmentation en gardant tous les blocs d’un fichier rapprochés, même s’ils ne peuvent pas être stockés dans des secteurs consécutifs. Certains systèmes de fichiers, comme ext3, allouent effectivement le bloc libre le plus proche des autres. blocs dans un fichier. Par conséquent, il n’est pas nécessaire de s’inquiéter de la fragmentation dans un système Linux. "
- TLDP

DougBTV
la source
4
Très bonne réponse! Mais vous devriez mettre un peu plus de contenu. L'idée est que toute réponse sur StackExchange devrait suffire à elle seule. Si les liens de vos questions se cassent, votre réponse ne vous sera d'aucune aide. Vous devez donc donner une explication suffisante dans votre message, puis donner les liens pour une lecture ultérieure.
lgeorget
1
Merci @lgeorget - J'ai articulé la réponse avec des citations de direction afin qu'il y ait toujours du contenu à lire sur "pourquoi". J'apprécie votre contribution / critique constructive !!
DougBTV
"Lorsque vous enregistrez un fichier sur un système de fichiers FAT, il enregistre". Ça n'a pas de sens. Qu'Est-ce que c'est"? FAT est un format de système de fichiers. Il décrit où vous pouvez enregistrer, mais ne vous limite pas à un seul emplacement. En fait, le système d'exploitation décide. Mais il existe de nombreux systèmes d’exploitation pouvant écrire en FAT, chacun prenant sa propre décision.
MSalters
@MSalters - d'accord. Je vais modifier la section citée pour omettre cette imprécision.
DougBTV
Le vague n'est caché que maintenant. L'instruction est encore assez absolue (où "FAT" enregistre) alors que toute la spécification FAT ne dit rien de tel. En fait, le lien Wikipedia que vous citez le contredit directement: il indique spécifiquement que Windows choisit l'emplacement du deuxième fichier et non directement après le premier. ("sélection préalable de grandes zones contiguës")
MSalters
23

La fragmentation est toujours une préoccupation, quel que soit le système de fichiers. Ext3 / Ext2, cependant, ont minimisé le problème au point que la plupart des administrateurs fonctionnent comme si ce n’était pas un problème. Ceci est minimisé par l'utilisation d'un planificateur d'E / S compétent et par le système de fichiers en laissant un espace de fin après chaque fichier pour s'adapter à la croissance. De plus, des fragments supplémentaires sont stockés plus proches les uns des autres, de sorte que même en cas de fragmentation, les effets sont fortement atténués. Le passage à Extents d'ext4 était également destiné à aider à réduire encore plus la fragmentation.

La fragmentation existe toujours, ext2 avait un outil de défragmentation hors connexion, ext4 en obtenait un en ligne et btrfs (juste parce que c'est lié à la question) avait déjà une défragmentation en ligne. Si vous êtes sur ext3, votre seul véritable choix est de convertir en ext4 (via tune2fs) ou d'essayer de voir combien de chance vous avez avec des outils d'espace utilisateur tels que shake.

En fonction du type d'E / S que votre système de fichiers est en train de subir, cela pourrait toujours être une préoccupation même à son niveau réduit, c'est pourquoi les outils en ligne ont été jugés utiles pour commencer.

Pour la question sur FAT32, la fragmentation ne se produit pas lorsque vous ne faites que manipuler un fichier, cela se produit lorsque vous écrivez dans le fichier. Pour répondre directement à votre question, la fragmentation est un aspect de la conception du système de fichiers. Par conséquent, votre système de fichiers FAT32 peut être fragmenté chaque fois que vous écrivez quelque chose.

Bratchley
la source
"Ceci est minimisé par l'utilisation d'un ordonnanceur I / O compétent". Il y a quelque chose qui ne va pas avec cette phrase.
Faheem Mitha Le
Merci d'avoir attrapé ça. Je suis un peu mal à réviser mon langage sans corriger aucun problème que la révision provoque avec la grammaire globale de la phrase du paragraphe.
Bratchley
C'est une bonne réponse. Je voudrais ajouter quelque chose à propos de CoW (copie sur écriture). Il existe une relation étroite entre le fait que le fs soit fragmenté ou non.
Martin Sugioarto
4

Répondre à vos questions, une par une:

Pourquoi ne devez-vous pas défragmenter un système Linux? Parce qu'il utilise le système de fichiers ext2 / ext3 ou que c'est Linux?

Parce qu'ext2 / 3/4 ont une approche différente en ce qui concerne les fichiers et les dossiers, ils sont donc à peine fragmentés. D'autres ont déjà répondu, et vous pouvez lire plus de détails ici

Cela est pertinent, car un système à double démarrage (W7 / Ubuntu) et une partition commune (NTFS) est accessible aux deux systèmes. Si j'utilise cette partition avec Linux, sera-t-elle fragmentée?

Oui, cela peut être fragmenté. Ce n'est pas une question de savoir si Windows ou Linux ou quoi que ce soit d'autre y accède, c'est comment chaque système de fichiers traite la taille du fichier, comment il stocke tous ces blocs, s'il laisse des espaces vides entre chaque fichier ...

Un autre problème concerne les conteneurs Truecrypt. Je leur accède également avec Linux et Windows, et ils sont FAT32. Sont-ils fragmentés par Linux qui les opère?

Les conteneurs Trueecrypt sont un fichier, pour tous les problèmes pratiques. Lorsque vous créez un conteneur à l'aide de TrueCrypt, vous créez un fichier de la taille que vous choisissez. Pour votre système d'exploitation, c'est comme n'importe quel autre fichier. Si vous en faites des copies, etc., peut-être que les copies pourraient être sauvegardées sous forme fragmentée.

Mais rappelez-vous qu’il n’est jamais bon d’avoir plusieurs copies du même conteneur, cela pourrait contribuer à en réduire la sécurité. Toujours faire un nouveau conteneur.

Lorsque vous enregistrez, supprimez, copiez, déplacez, etc., des fichiers à l' intérieur du conteneur, les systèmes d'exploitation ne le savent pas, il en va de même pour l'ouverture, la modification et l'enregistrement de tout autre fichier, sans en modifier la taille.

Et si vous êtes inquiet au sujet de la sécurité de TrueCrypt sur la fragmentation, faites des recherches sur l'utilisation de TrueCrypt avec les SSD: puisque le SSD essaie de réduire l'usure de la mémoire qu'il contient, vous pourriez avoir le même effet de copier le conteneur.

woliveirajr
la source
3

En fin de compte, cela dépend des pilotes de système de fichiers du système d'exploitation.

Les systèmes de fichiers ext2 et FAT sont deux méthodes pour enregistrer quels blocs sur le disque appartiennent à quel fichier. Lorsque tous les blocs d'un fichier ne sont pas contigus, le fichier est appelé fragmenté. Mais comme cela devrait être évident, la fragmentation est provoquée par la stratégie d'allocation de blocs lors de l'écriture d'un fichier, et non par la manière dont vous enregistrez ensuite ces blocs.

Ce qui fait la différence, c'est à quelle distance les pilotes du système de fichiers peuvent être avancés. Si le pilote sait qu'il reste 10 blocs à écrire, il peut choisir une zone libre contiguë et éviter la fragmentation future. Cela dépend de l'architecture du pilote, qui est spécifique au système d'exploitation. Mais la même recherche d'espace libre peut être faite sur FAT et ext2.

En fait, ext2 et FAT ne sont pas vraiment aussi différents que vous ne le pensez. J'ai écrit la partie ext2 d'un chargeur de démarrage en plus du code FAT existant, ce qui nécessitait moins de 100 lignes de code supplémentaires.

MSalters
la source