Dans le système de fichiers Btrfs, il y a des morceaux qui sont alloués pour les données régulières, les métadonnées. Il existe également des blocs qui sont alloués pour stocker des informations sur le système de fichiers et également sur l'emplacement d'autres blocs sur le disque physique. Ces morceaux ne peuvent stocker que les données. Très occasionnellement, un type de bloc peut se remplir et commencer à manquer d'espace. Cependant, il peut (et il y a souvent) encore de l'espace disponible dans d'autres morceaux. Par conséquent, il faut libérer de l'espace dessus.
Une fonction d'équilibrage est disponible dans Btrfs FileSystem. L'opération d'équilibrage libère efficacement de l'espace dans les autres blocs pour le rendre disponible pour l'allocation.
1. La commande ci-dessous montre combien d'espace a été alloué sur votre système de fichiers :
# btrfs fi show
2. La commande ci-dessous montre l'utilisation du fichier :
# btrfs filesystem du /btr
3. Utilisation complète du système de fichiers par données et métadonnées (avant l'équilibre) :
# btrfs filesystem usage /btr
La commande ci-dessous est utilisée pour l'équilibre et cette commande effectue l'équilibre complet sans les filtres demandés. Cette opération est très intense et prend potentiellement très longtemps. Il est recommandé d'utiliser les filtres d'équilibre pour affiner les données équilibrées.
[Sans filtre]
# btrfs filesystem balance /btr
[Avec filtre (utiliser dusage et musage)]
# btrfs filesystem balance start -dusage=5 /btr
Notez qu'il ne doit pas y avoir d'espace entre le -d et utilisation . Cette commande tentera de déplacer les données dans des blocs de données vides ou presque vides (au plus 5 % utilisés, dans cet exemple), permettant à l'espace d'être récupéré et réaffecté aux métadonnées.
Si la commande d'équilibrage se termine par "Terminé, il a fallu déplacer 0 morceaux sur XX ", alors vous devez augmenter le "dusage ” paramètre de pourcentage jusqu'à ce qu'au moins un morceau soit déplacé. Si vous n'utilisez pas les filtres, cela équilibre à la fois les données et les métadonnées.
Une autre façon d'équilibrer le système de fichiers btrfs via un script
for i in 0 5 10 15 20 25 30 40 50 60 70 80 90 100 do echo "${0}: Running with ${i}%" sudo btrfs balance start -dusage=$i -musage=$i /btr/ done
Après vérification du solde via la commande ci-dessous :
# btrfs filesystem usage /btr
En fonction de ‘btrfs filesystem du’ et ‘btrfs filesystem usage’, décidez des valeurs pour -dusage et -musage.