Défragmentation Btrfs de fichiers / dossiers

9

Je viens d'installer Ubuntu 11.10 sur le système de fichiers Btrfs et je veux poser une question sur la défragmentation des fichiers.

Ai-je vraiment besoin de défragmenter des fichiers ou l'ensemble du système?

Défragmentation # btrfs filesystem defragment / pool1 Defragment

Défragmentation Btrfs

One Zero
la source
Non, btrs, ext4,3,2, ETC ... ne vous oblige pas à défragmenter les disques, ils en souffrent comme tout autre système de fichiers.
Uri Herrera
Mais loin d'être le même que NTFS.
Uri Herrera

Réponses:

13

Vous n'avez pas vraiment besoin de défragmenter manuellement les systèmes de fichiers Btrfs.

Oui, Btrfs est COW (copie sur écriture), ce qui impliquerait qu'il fragmente les fichiers beaucoup plus que Ext, mais cela est abordé dans plusieurs aspects de la conception, y compris la possibilité de défragmenter facilement le système de fichiers lorsqu'il est en ligne. Cet extrait fournit plus de détails (soulignement le mien):

Défragmentation automatique

Les systèmes de fichiers COW (copie sur écriture) présentent de nombreux avantages, mais ils présentent également certains inconvénients, par exemple la fragmentation. Btrfs présente les données de manière séquentielle lorsque les fichiers sont écrits sur le disque pour la première fois, mais une conception COW implique que toute modification ultérieure du fichier ne doit pas être écrite au-dessus des anciennes données, mais être placée dans un bloc libre, qui sera provoquer une fragmentation (les bases de données RPM sont un cas courant de ce problème). De plus, il souffre des problèmes de fragmentation communs à tous les systèmes de fichiers.

Btrfs propose déjà des alternatives pour lutter contre ce problème: tout d'abord, il prend en charge la défragmentation en ligne à l'aide de la commande btrfs filesystem defragment. Deuxièmement, il a une option de montage -o nodatacow, qui désactive COW pour les données. Maintenant, btrfs ajoute une troisième option, l' -o autodefragoption de montage. Ce mécanisme détecte les petites écritures aléatoires dans les fichiers et les met en file d'attente pour un processus de défragmentation automatique, de sorte que le système de fichiers se défragmentera lui-même pendant son utilisation. Il n'est pas encore adapté à la virtualisation ou aux grandes charges de travail de base de données, mais fonctionne bien pour les fichiers plus petits tels que les bases de données rpm, SQLite ou bdb.

Donc, tant que vous ne prévoyez pas d'exécuter un logiciel intensif en E / S comme une base de données sous une charge importante, vous devriez être tout bon, tant que vous montez vos systèmes de fichiers avec l' autodefragoption.

Pour vérifier la fragmentation des fichiers, vous pouvez utiliser l' utilitaire filefrag :

$ find /path -type f -exec filefrag {} + >frag.list
# Now you can use your favourite tools to sort the data

Sur les systèmes Systemd, /var/log/journal/sera probablement le plus fragmenté. Vous pouvez également consulter ~/.mozillaet d'autres bases de données de navigateurs.

Pour défragmenter, utilisez:

$ sudo btrfs fi defrag -r /path
Félix Saparelli
la source
comment savoir sa défragmentation ... ou pas ... commande pour vérifier l'état de défragmentation
One Zero
2
Cette réponse est erronée selon le wiki BTRFS: gotchas btrfs . Le problème de la fragmentation des fichiers peut être facilement reproduit en exécutant systemd-journald sur un volume btrfs. Bien que je n'aie pas encore testé dans la mesure où l'option autodefrag résout ce problème.
Jonas Schäfer
Je me sers de Btrfs à temps plein maintenant pendant au moins 18 mois, avec systemd, Firefox, etc. Une vérification rapide à l' aide filefragrévèle que les fichiers journaux sont en effet très fragmenté ( en moyenne chacun) 10k degrés, mais je n'ai pas observé CPU ni spiking impact sur les performances. Je ne l'ai pas autodefragactivé, je l'activerai et je ferai rapport au prochain redémarrage.
Félix Saparelli
Donc: la fragmentation des fichiers se produit, autodefragaide, l'impact sur les performances est au mieux mineur sur les systèmes de tous les jours. De toute évidence, les serveurs à forte charge peuvent avoir besoin de mesurer et de régler les choses, mais là encore, c'est un logiciel alpha, donc vous voudrez peut-être l'éviter de toute façon.
Félix Saparelli
find /path -type f -exec filefrag {} + >frag.listévite toutes les FIBMAP unsupportederreurs des répertoires et autres fichiers non réguliers, et ne casse pas sur les noms de fichiers étranges.
Peter Cordes
0

Pour le bien de ce sujet, je pense qu'il vaut mieux clarifier que:

Tout système de fichiers! = Utilitaires de récupération / gestion

Gardez à l'esprit que le système de fichiers concerne l'organisation des données sur un matériel physique, toutes les autres activités sont effectuées avec des logiciels et des utilitaires supplémentaires qui, en particulier dans GNU / linux, sont effectués par des personnes qui ne sont probablement pas strictement liées à qui avait fait le système de fichiers.

Ce n'est probablement pas le cas des Btrfs, mais parfois nous sommes proches de cela car les environnements de bureau et d'entreprise peuvent fournir différentes solutions avec différents degrés de fiabilité.

La réponse à votre question est "non" mais est un "non" lié au comportement normal d'un système de fichiers générique, et chaque utilitaire que vous pouvez trouver à ce sujet est simplement un projet différent.

Lorsque vous devez défragmenter votre système de fichiers, gardez à l'esprit que vous allez utiliser un logiciel externe qui n'est pas vraiment lié à la vie du système de fichiers lui-même, avec tous les avantages et inconvénients.

Micro
la source
0

La commande pour défragmenter un système de fichiers btrfs est

btrfs filesystem defragment sync -r -v -f [-czlib] / /home
user615852
la source
0

Sur la base de cette réponse, j'ai trouvé:

sudo find / -xdev -type f -exec filefrag {} + | sed -En 's/(.+): (\w+) extent.*/\2 \1/p' | sort -nr

Cela répertorie les fichiers les plus fragmentés en premier, au format:

<num-fragments> <pathname>
Tom Hale
la source