Proxmox: réduire la taille d’un disque d’une machine virtuelle

Proxmox: réduire la taille d’un disque d’une machine virtuelle

Pour un projet, j’ai du augmenter la taille du disque de la machine virtuelle de mon Nextcloud à passé 600Go pour partager plusieurs gros fichiers. le problème est que maintenant le projet est terminé, et que je me retrouve avec un Nextcloud ayant une partition utilisée à peine 10%. Le problème est que j’utilise du Ceph, et que le format de stockage des disques est du RAW (donc pas de thin provisionning).

Il n’y a pas de commande magique qui permet de réduire la taille, c’est pourquoi nous allons réduire les tailles des partitions, et ensuite réduire la taille manuellement du disque.

Officiellement, il n’y a pas de possibilité sûr et garantissant une méthode avec un taux de 100% de réussite. Faîtes une sauvegarde de votre VM avant de commencer
Il ne sera pas possible de redimensionner sur le stockage Ceph le disque dur, il faudra la déplacer temporairement sur un autre stockage qui gère le QCOW2
Je le répète encore une fois: faîtes vraiment une sauvegarde de votre machine virtuelle, il y a un risque important de perte de données, et de corruption de tout le disque dur virtuel

Arrêter la machine virtuelle, et booter sur un live CD GParted

Choisir la partition ext4 (qui contient en principe les données), et choisir l’option « Resize/Move the partition »

Vous pouvez ensuite soit déplacer le curseur de droite pour réduire visuellement, soit saisir la taille exacte souhaitée en spécifiant la taille sous « New Size (MiB)

Ensuite, pour toutes les autres partitions qui sont à la fin du nouvelle espace créé, les choisir, et retourner dans « Resize/Move the partition ». Il faut prendre les groupes de partition, et non une partition se trouvant dans le groupe.

Tout d’abord, noter les tailles actuelles de la partition car il faudra la spécifier plus tard. Pour le moment, agrandir la partition au maximum.

Déplacer toutes les partitions dans le groupe au début de l’espace disque sans les redimensionner. Enfin, modifier à nouveau le groupe de partition pour cette fois réduire la taille (saisir la taille notées précédemment. Appliquer enfin la configuration.

Une fois fait, noter la taille du disque actuelle (pour éviter de trop réduire), et éteindre la VM.

Se connecter ensuite en SSH ou en terminal sur l’hôte gérant la VM, et installer le package libguestfs-tools

apt install libguestfs-tools

Lancer maintenant la commande qui permettra de cloner le disque dur virtuel le plus grand en direction du plus petit

qemu-img resize --shrink /PATHTODISK/DISKFILE.qcow2 xxxG
Bien entendu, remplacer les chemins d’accès par ceux sur votre infrastructure Proxmox, et remplacer xxx par la nouvelle taille du disque dur dans le dernier argument

Une fois le redimensionnement terminé, la nouvelle taille n’est pas mise à jour dans l’interface de Proxmox automatiquement. Il faut détacher le disque, et le rajouter à la machine virtuelle pour que la nouvelle taille soit prise en compte. Il ne reste plus qu’à démarrer la machine virtuelle.

Si elle démarre sans erreur, bravo, le redimensionnement a fonctionné !