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 autodefrag
option 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' autodefrag
option.
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 ~/.mozilla
et d'autres bases de données de navigateurs.
Pour défragmenter, utilisez:
$ sudo btrfs fi defrag -r /path