Réduire la taille d’un disque virtuel au format VDI

closeCet article a été publié il y a 4 ans 5 mois 10 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.

Après mon changement d’OS sur le PC du boulot, j’avais notamment transféré la machine virtuelle Linux que j’utilisais pour récupérer notamment l’environnement SSH, Git, et Bash de manière générale. Et en regardant l’espace utilisé sur le système hôte, j’y ai vu un gros souci : la taille du disque virtuel. J’ai donc cherché à corriger ça.

L’image approchait les 40Go :

Pourtant, une fois dans la VM, la consommation n’est pas si importante :

L’explication est simple, le disque virtuel a beau être alloué de manière dynamique, par le passé j’ai pratiquement rempli cet espace, et le fichier ne se réduit pas de lui-même une fois le ménage effectué. C’est un fait bien connu des administrateurs de bases de données qui doivent exécuter des tâches de maintenance pour éviter que les tables explosent.

Pour réduire la taille, mes premières recherches m’ont conduit à une procédure qui demande de passer par deux étapes de conversion, VDI->VMDK, puis VMDK->VDI. On commence par faire la première passe, de VDI à VMDK. Alors avant de vous montrer la commande, il faut passer par une commande supplémentaire, zerofree, qui permet de réécrire des zéros sur l’espace libre, parce que sinon :

Voyons le résultat :

Comme on le voit, le résultat n’est pas très efficace. zerofree est un utilitaire qui s’exécute en mode rescue ou via un live cd/usb, et demande paradoxalement de remonter en read-only le volume concerné.

En cherchant un peu plus à propos de zerofree et des réductions d’image disque, je suis tombé sur le Saint Graal, spécifique au format VDI, la commande vboxmanage dispose d’une option « compact » qui fait exactement le boulot sans se taper la double conversion. Un gain de temps appréciable, et un résultat intéressant :

Ah ben c’est mieux. Alors évidemment, pour m’assurer que c’est peinard j’ai fait un backup du fichier avant, et je ne peux que recommander de faire cette sauvegarde au préalable.

Les formats de disques virtuels, tout un monde

Je pourrais presque faire un article complet sur les principaux formats de disque virtuel, de leurs avantages et inconvénients, les implications sur la consommation, les performances, et l’aspect ouvert ou non des formats. Mais bon, déjà là vous avez une petite bidouille si vous êtes dans une chasse à l’espace disque et que vous travaillez avec des machines virtuelles. Ici, le format était celui de Virtualbox, et donc j’ai utilisé les outils fournis avec, mais vous pouvez sinon vous tourner vers l’utilitaire qemu-img que j’avais évoqué il y a cinq ans (déjà !).

1 Commentaire
Le plus ancien
Le plus récent
Commentaires en ligne
Afficher tous les commentaires
Tetsumaki
19/11/2019 18:36

Sinon tu actives SSD sur tes disques, puis le TRIM dans ton fichier de configuration, je ne crois pas que cela soit possible via le GUI. Et tu n’as plus qu’à faire un fstrim via ta VM. Même principe pour le qcow2 sous quemu.