Cet article vous explique comment réduire l’espace disque physique occupé par vos disques de stockage virtuels. Sous Proxmox, les disques durs virtuels sont dynamiques, c’est à dire que lorsque vous définissez un disque dur de 100 Go par exemple, en réalité, sur la machine hôte, il n’occupe que quelques Go une fois le système installé. Ce qui évite d’occuper directement les 100 Go et de perdre du temps à la création de celui-ci.
Problématique
Ce système fonctionne bien sauf qu’une fois que l’espace disque à été alloué, il restera occupé même une fois vidé.
Par exemple, nous ajoutons 50 Go de données à notre machine qui en contenait déjà 10, la taille physique du disque virtuel est donc montée à 60 Go. Si nous supprimons ensuite ces 50 Go, la taille physique ne change pas et n’est donc pas réduite. Il faut le voir comme un cliquet ( que l’on ne peux que monter ). Cet espace non utilisé ne pose pas de problème directement, peut vite ralentir les sauvegardes Proxmox en utilisant des dizaines voir centaines de Go qui ne sont plus utilisés réellement.
Solution
- disque SCSI
Pour pouvoir réduire l’espace disque physique, il faut avoir au préalable configuré le disque dur en SCSI et avoir coché l’option Discard.
Ensuite, dans votre machine virtuelle, il suffit d’utiliser la commande fstrim (beaucoup plus connue maintenant avec l’utilisation des SSD).
# fstrim -av / : 99,8 GiB (107171328000 octets) taillés
Cette solution ne nécessite pas de redémarrage de la machine. Je vous conseil de lancer cette commande tous les jours, quelques temps avant vos sauvegardes.
- disque non-SCSI
Je vous conseil de faire une sauvegarde avant des faire les manipulations qui suivent.
Si votre disque dur virtuel n’est pas en SCSI, vous pouvez le modifier. Mais un redémarrage sera nécessaire.
Commencez par éteindre votre machine virtuelle, et allez dans la partie Hardware, sélectionnez le disque dur de la machine et cliquez sur Remove. Pas de panique ! Votre disque sera simplement écris comme « non utilisé / Unused ».
Une fois le disque désactivé, laissez le sélectionné et cliquez sur Edit. Sélectionnez SCSI et cochez l’option Discard puis Add pour valider.
Pour terminer, il ne faut pas oublier de changer le Boot Order dans les options pour remplacer virtio par SCSI.
Il suffit maintenant de redémarrer la machine et d’exécuter la même commande que présentée ci-dessus pour le SCSI.
Bugs
Il est possible de rencontrer un bug qui génère un « Kernel Panic » dans la machine virtuelle lorsque la sauvegarde de celle-ci est lancée. Voici un exemple obtenu à l’écran :
La solution est de changer le type de contrôleur SCSI en allant dans la partie Options de la machine virtuelle, et de modifier le paramètre SCSI Controller Type en choisissant VirtIO SCSI. Dans l’exemple ci-dessus, c’était le contrôleur LSI 53C895A qui était en place.
Redémarrez la machine et le tour est joué !
Référence :
https://pve.proxmox.com/wiki/Shrink_Qcow2_Disk_Files
Merci beaucoup pour l’astuce. Dis moi est-ce que je peux faire la meme chose sur Windows ou bien faut-il que je passe par la fonction SSD Trim dans les paramétres Proxmox ?
De rien !
Je viens de tester rapidement sous Windows et ça n’a pas l’air de fonctionner. Il faudrait regarder plus précisément sur cette partie.