btrfs: énormes métadonnées allouées

14

J'ai un disque SSD de 256 Go sur lequel j'ai converti mon FS racine ext4 en btrfs. J'ai effacé le sous-volume de sauvegarde ext4, activé la compression et défragmenté de manière récursive pour l'activer sur tous les fichiers.

btrfs fi df / a une sortie qui m'inquiète cependant:

Data: total=148.00GB, used=106.11GB
System: total=32.00MB, used=16.00KB
Metadata: total=65.00GB, used=2.04GB

Si je comprends bien la sortie, 65 Go (1/4 de mon disque!) Sont réservés aux métadonnées et non disponibles pour le stockage de fichiers. Si cela est correct, ce serait un énorme gaspillage de mon espace disque. Est-ce que je comprends bien? La partie de mon disque allouée aux métadonnées peut-elle être redimensionnée?

Gnurou
la source

Réponses:

16

Tout d’abord, assurez-vous que votre noyau et l’espace utilisateur BTRFS sont à jour.

Selon la FAQ BTRFS , vous ne pouvez pas redimensionner la taille du bloc de métadonnées. Vous pouvez toutefois essayer d’exécuter btrfs balance start -m <point de montage>, ce qui réallouera les métadonnées sur l’ensemble du disque et, éventuellement, libérera de l’espace non alloué.

Si cela ne fonctionne pas, vous devrez peut-être sauvegarder vos données et recréer le système de fichiers. (Jetez un coup d'oeil à ceci pour plus d'informations.)

hololeap
la source
Merci d'avoir répondu. Le noyau est 3.11.2, btrfs-tools est v0.20-rc1, donc je ne pense pas être obsolète ici. J'ai essayé d'exécuter une balance, mais j'ai ensuite rencontré le bogue suivant: spinics.net/lists/linux-btrfs/msg26977.html et je n'ai pas envie de compiler un noyau plus récent juste pour cela. : P Ce que je me demande, c'est si ces 65 Go sont le bloc de métadonnées qui ne peut pas être redimensionné, ou si ce terme fait référence à autre chose. Sinon, je ne comprends vraiment pas comment le bloc de métadonnées a été créé avec cette taille.
Gnurou
Malheureusement, je ne suis qu'un utilisateur de btrfs et non un expert, mon aide est donc limitée. Dans tous les cas, il est possible qu'il y ait une faille dans le processus de conversion depuis ext4.
hololeap
11
Ainsi, le correctif nécessaire a été intégré au noyau stable et j’ai essayé ce que vous aviez suggéré. L'équilibrage a en effet réduit la quantité de zone réservée pour les méta-données à 3 Go, et l'espace revendiqué apparaît maintenant sous la forme d'espace libre dans 'df'. Notez qu'il n'est pas nécessaire de rééquilibrer l'intégralité du disque, vous pouvez utiliser btrfs balance start -m <point de montage> pour rééquilibrer uniquement les métadonnées, ce qui est beaucoup plus rapide. Merci pour la réponse perspicace!
Gnurou
Heureux d'avoir pu aider!
hololeap
"vous ne pouvez pas redimensionner la taille du bloc de métadonnées". Cela n’est pas pertinent pour cette question - la FAQ parle de la taille de l’unité d’allocation, pas de la quantité d’espace alloué pour les métadonnées.
Vladimir Panteleev
1

Cela diminuera la taille des métadonnées.

sudo btrfs balance start -v -musage=0 /path
Benjamin
la source