Comment vérifier (simuler), combien d'espace sera libéré après avoir supprimé un sous-volume btrfs?


9

La question n'est pas anodine. BTRFS est un système de fichiers COW et un objet stocké sur le disque dur peut être référencé par de nombreux fichiers.

J'utilise des instantanés BTRFS dans le cadre d'une solution de sauvegarde sur mon serveur de production. De cette façon, j'ai un historique navigable économe en espace d'un sous-volume donné (j'utilise une modification du SnapBtr ).

J'ai plusieurs sous-volumes btrfs indépendants à des fins différentes et un schéma de sauvegarde pour chacun. Lorsque l'espace libre est épuisé, je peux obtenir l'instantané de sauvegarde le plus inutile de chaque pool de sauvegarde en fonction de l'algorithme intelligent logarithmique-temps-coût de SnapBtr.

J'ai besoin d'un moyen de pondérer la quantité de données qui seront libérées après avoir supprimé chaque sauvegarde avec l'âge de l'ancien instantané et l'importance de son pool de sauvegarde. Je manque les anciennes informations.

Je comprends que le processus de calcul de l'espace libre sur le BTRFS n'est ni trivial ni rapide. J'ai besoin de quelque chose qui simulerait la suppression du sous-volume pour obtenir la taille de l'espace qui serait libéré.

Quelqu'un peut-il m'aider? Dois-je envoyer ce message au linux-btrfs@vger.kernel.org?

Réponses:


6

Comme démontré ici , c'est en fait assez simple à faire.

Tout d'abord, activez les quotas btrfs:

# btrfs quota enable /btrfs_subvolume

Et puis exécutez:

# btrfs qgroup show /btrfs_subvolume
OR
# btrfs qgroup show -f /btrfs_subvolume

Ce qui dans Btrfs v3.18.2 vous montre ceci:

qgroupid        rfer       excl
--------        ----       ----
0/260        1.09GiB    1.09GiB

Le 0/260 est l'ID de sous-volume et l'excl est les données exclusives du sous-volume. Si vous supprimez le sous-volume, c'est l'espace que vous allez libérer.

Modifier: Selon ce lien , cela semble être la façon officielle recommandée de le faire.


Pro Backup a souligné (dans une modification suggérée) qu'il valait la peine de vérifier les problèmes connus avec la prise en charge des quotas .
Stephen Kitt

0

btrfsQuota.pyrend la sortie de btrfs qgroup showplus lisible, en remplaçant les ID de sous-volumes par les noms des sous-rôles, par exemple:

subvol                                      group         total    unshared
-------------------------------------------------------------------------------
test/a                                      0/970        20.05M       0.05M
test/b                                      0/971        20.05M      10.05M
test/c                                      0/972        30.05M      10.05M
test/d                                      0/973        30.05M       0.05M
test/e                                      0/974        30.05M      10.05M

1
Cela ne fonctionne pas avec la version par défaut des outils btrfs d'Ubuntu 14.04. Vous devez en installer un plus récent, puis tout va bien
Adam Ryczkowski

@AdamRyczkowski J'utilise la version Python 3 de ce script maintenant, et cela fonctionne très bien.
Geremia
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.