Comment augmenter la taille du disque d'une machine virtuelle KVM
Agence web » Actualités du digital » Comment augmenter la taille du disque d’une machine virtuelle KVM

Comment augmenter la taille du disque d’une machine virtuelle KVM

KVM est une technologie de virtualisation intégrée au noyau Linux. Vous pouvez créer des machines virtuelles et interagir avec KVM à l’aide d’outils tels que virsh, virt-manager et GNOME Boxes.

Le manque d’espace disque est l’un des problèmes d’invité de VM les plus courants. Vous avez peut-être commencé avec un disque intentionnellement petit pendant que vous testiez une nouvelle machine virtuelle. Au fil du temps, vous accumulez des fichiers jusqu’à ce que le disque virtuel soit presque plein. Voici comment redimensionner votre disque sur place, sans avoir à copier des fichiers sur un disque plus grand séparé.

Arrêtez votre machine virtuelle

Commencez par arrêter votre machine virtuelle. Vous pouvez arrêter dans le système d’exploitation invité, en utilisant les commandes de votre interface utilisateur de gestion ou en émettant le virsh shutdown commande:

$ sudo virsh list
 Id   Name          State
------------------------------
 -    ubuntu22.04   running

$ sudo virsh shutdown ubuntu22.04
Domain ubuntu22.04 is being shutdown

Attendez que la VM soit éteinte. Il disparaîtra de la virsh list sortie après l’arrêt. Vous pouvez voir les détails des machines virtuelles inactives en ajoutant le --all drapeau:

$ sudo virsh list --all
 Id   Name          State
------------------------------
 -    ubuntu22.04   shut off

Trouver l’emplacement du disque

Ensuite, vous devez identifier le chemin où le disque de votre VM est enregistré. Chaque machine virtuelle obtient un fichier image disque qui stocke le contenu complet de son système de fichiers. Plusieurs formats peuvent être utilisés, notamment QCOW2, VDI, VMDK et VHDX.

La plupart des machines virtuelles créées dans un environnement KVM moderne auront une image disque QCOW2 stockée dans le /var/lib/libvirt/images annuaire. Le nom du fichier correspondra au nom de la machine virtuelle affiché dans le virsh list la sortie de la commande.

Vous pouvez vérifier le chemin d’accès au disque d’une machine virtuelle en exécutant virsh domblklist:

$ sudo virsh domblklist ubuntu22.04
 Target   Source
-----------------------------------------------------
 sdb      /var/lib/libvirt/images/ubuntu22.04.qcow2

Cela confirme que le fichier à redimensionner pour cette VM est /var/lib/libvirt/images/ubuntu22.04.qcow2.

Supprimer les instantanés de VM

Vous ne pouvez pas redimensionner les images de disque sur lesquelles des instantanés sont stockés. Vous devrez supprimer les instantanés avant d’effectuer le redimensionnement. Si vous devez conserver des instantanés, clonez d’abord la machine virtuelle et utilisez la copie pour accéder aux états des instantanés. Vous pouvez ensuite supprimer les instantanés de la machine virtuelle d’origine et poursuivre votre opération de redimensionnement.

La virsh snapshot-list La commande révélera si votre VM a des instantanés :

$ virsh snapshot-list ubuntu22.04
 Name         Creation Time               State
---------------------------------------------------
 13-09-2022   2022-09-13 22:36:41 +0100   shutoff

Supprimez-les avec le snapshot-delete commande. L’instantané à supprimer est identifié à l’aide de <vm-name> <snapshot-name> syntaxe.

$ virsh snapshot-delete ubuntu22.04 13-09-2022

Redimensionner le disque

La qemu-img La commande peut maintenant être utilisée pour redimensionner le disque. Ses arguments sont le chemin d’accès au fichier image disque et la quantité de capacité supplémentaire à ajouter au disque.

$ sudo qemu-img resize /var/lib/libvirt/images/ubuntu22.04.qcow2 +16G

La +16G signifie que le disque deviendra 16 Go plus grand que sa taille actuelle. Vous pouvez également utiliser d’autres suffixes standard tels que M pour mégaoctets et T pour téraoctets. Omettre le + La notation indique à QEMU de donner au disque une taille spécifique, telle que 1T pour fournir 1 To de capacité.

Le processus de redimensionnement ne devrait prendre que quelques secondes. Cela n’aura pas nécessairement un effet immédiat sur l’utilisation totale du disque de votre hôte en fonction du format d’image utilisé.

Extension des partitions du disque

Démarrez ensuite votre machine virtuelle et utilisez l’utilitaire de gestion de disque du système d’exploitation invité pour étendre la table de partition du disque dans l’espace libre nouvellement alloué. Sans cette étape, votre nouvelle capacité ne sera pas accessible au système d’exploitation.

Linux resize2fs augmentera automatiquement une partition désignée dans la mesure maximale autorisée par tout espace libre disponible :

$ sudo resize2fs /dev/sda

Trouvez le bon appareil à cibler (/dev/sda dans la commande ci-dessus) en exécutant df -h et la recherche du système de fichiers qui est monté sur /:

$ df -h
Filesystem        Size  Used Avail Use% Mounted on
/dev/sda          32G   17G  15G   53%  /

Pour redimensionner graphiquement la partition, vous pouvez utiliser les disques GParted ou GNOME dans un invité Linux ou la gestion des disques pour une machine Windows.

Voici la machine virtuelle Ubuntu 22.04 dont le disque a été redimensionné de 16 Go dans l’exemple ci-dessus. Après avoir démarré l’invité et ouvert GParted, les 16 Go d’espace libre sont visibles en tant que zone non allouée à la fin du disque.

image des partitions dans gParted

L’espace est mis en service en cliquant avec le bouton droit sur la partition système existante, en sélectionnant « Redimensionner/Déplacer » dans le menu de GParted et en agrandissant la partition dans l’espace libre à la fin. Après application de l’opération, la partition a une capacité utile de 48 Go comme prévu.

image des partitions dans gParted

Réduire la taille d’un disque

Les images de disque peuvent être réduites si votre machine virtuelle a reçu plus de stockage qu’elle n’en a besoin. C’est une opération potentiellement risquée. Sauvegardez votre disque avant de commencer le redimensionnement afin de pouvoir récupérer la situation si des données sont supprimées :

$ sudo cp /var/lib/libvirt/images/ubuntu22.04.qcow2 ubuntu22.04.qcow2.bak

Ensuite, vous devoir ajustez la table de partition depuis la machine virtuelle afin qu’il y ait de l’espace libre non alloué disponible sur le disque. Lorsque vous redimensionnez un disque de 32 Go à 20 Go, vous devez vous assurer qu’il y a au moins 12 Go d’espace libre à la fin de la table de partition, par exemple. Si vous oubliez cette étape, le redimensionnement supprimera sans discernement les données de la fin du disque, corrompant la table de partition et laissant votre VM impossible à démarrer.

Cette machine Windows 10 dispose d’un disque de 40 Go dont seulement 32 Go sont mappés en partitions. L’espace non alloué de 8 Go à la fin du lecteur signifie que vous pouvez en toute sécurité réduire la taille du disque jusqu’à 8 Go.

image de l'utilitaire de gestion des disques de Windows 10

Une fois que vous avez préparé vos partitions, vous pouvez utiliser qemu-img resize pour effectuer la réduction. La prise en charge de cette opération doit être activée manuellement à chaque fois en incluant le --shrink drapeau avec votre commande. Cela vous permet de spécifier une taille cible inférieure à la capacité actuelle du disque. Vous pouvez également -8G syntaxe pour réduire la taille d’un montant prédéterminé.

$ qemu-img resize --shrink /var/lib/libvirt/images/win10.qcow2 -8G

Après avoir redémarré l’invité, Windows confirme que l’espace libre de 8 Go a été supprimé de la fin du disque.

image de l'utilitaire de gestion des disques de Windows 10

Sommaire

Les images de disque utilisées par les machines virtuelles KVM peuvent être redimensionnées avec le virsh et qemu-img commandes. Le redimensionnement d’un disque est fiable et devrait se terminer en quelques secondes, mais cela ne fonctionne pas lorsque les machines virtuelles ont stocké des instantanés. C’est toujours une bonne idée de sauvegarder votre image disque avant de commencer à travailler.

Certaines interfaces graphiques KVM telles que les boîtiers GNOME incluent la prise en charge des redimensionnements, vous permettant d’agrandir un disque sans utiliser le terminal. Quelle que soit la façon dont vous appliquez le redimensionnement, vous devez ensuite démarrer la machine virtuelle invitée et ajuster la table de partition pour utiliser l’espace. Cela permet au système d’exploitation d’utiliser la capacité accrue du disque.

★★★★★