Ce bref guide explique ce qu'est Virt-size outil de ligne de commande et comment pouvons-nous étendre ou étendre la taille du disque de la machine virtuelle KVM à l'aide de l'outil Virt-resize sous Linux.
L'autre jour, j'ai remarqué qu'une de mes machines virtuelles KVM manquait d'espace disque. Je n'ai pas pu installer de nouvelles applications ou n'ai pas pu enregistrer de fichiers en raison d'un espace disque insuffisant. Pour résoudre ce problème, j'ai simplement augmenté la taille du disque d'une machine virtuelle KVM en utilisant virt-size
commande. J'ai personnellement testé les étapes ci-dessous pour augmenter la taille du disque d'une machine virtuelle CentOS 8 KVM et cela a fonctionné comme prévu.
Outil Virt-redimensionner
Virt-redimensionner est un outil en ligne de commande pour redimensionner un disque de machine virtuelle. En utilisant virt-resize, nous pouvons soit augmenter soit diminuer la taille du disque d'une machine virtuelle. Nous pouvons également supprimer les partitions à l'intérieur du disque virtuel avec la commande virt-resize. Veuillez noter que virt-redimensionne les machines en direct. Les systèmes invités doivent être désactivés avant de redimensionner leurs images de disque.
Pour augmenter la taille du disque d'une machine virtuelle, nous créons d'abord une image disque plus grande que l'image source. Et puis nous copions l'image source sur l'image de destination et enfin la redimensionnons.
Virt-resize fait partie de libguestfs-tools
emballer. Pour installer le package libguestfs-tools sur Debian, Ubuntu et ses dérivés, exécutez :
$ sudo apt install libguestfs-tools
Pour installer le package libguestfs-tools sur Fedora, RHEL et ses clones, exécutez :
$ sudo dnf install libguestfs-tools
Dans Fedora 34, guestfs-tools
Le package fournit l'outil virt-resize. Donc si vous êtes sur Fedora 34, installez guestfs-tools
paquet comme ci-dessous :
$ sudo dnf install guestfs-tools
Voyons maintenant comment étendre la taille du disque de la machine virtuelle à l'aide de virt-resize
commande.
Développez ou étendez la taille du disque de la machine virtuelle KVM sous Linux
Pour les besoins de ce guide, j'utiliserai l'image disque de la machine virtuelle CentOS 8 nommée centos8.qcow2
. J'ai stocké ce mage dans mon répertoire de travail actuel. Vous pouvez utiliser virsh dumpxml
commande pour localiser l'image disque que vous souhaitez redimensionner.
Exemple :
$ virsh dumpxml centos8
Remplacez centos8 par le nom de votre machine virtuelle dans la commande ci-dessus.
Après avoir localisé l'image disque que vous souhaitez redimensionner, inspectez les détails de la partition à l'intérieur de cette image disque. Pour imprimer les détails de la partition et leur taille d'une image disque, exécutez :
$ virt-filesystems --long --parts --blkdevs -h -a centos8.qcow2
Exemple de résultat :
Name Type MBR Size Parent /dev/sda1 partition 83 1.0G /dev/sda /dev/sda2 partition 8e 19G /dev/sda /dev/sda device - 20G -

Comme vous pouvez le voir dans la sortie ci-dessus, mon image disque n'a que deux partitions, à savoir /dev/sda1
avec une taille de 1 Go et /dev/sda2
avec 19 Go. La taille totale de l'image disque est de 20 Go.
Maintenant, nous allons,
- augmenter la taille totale de l'image disque de 20 Go à 30 Go ,
- augmenter la taille de la première partition
/dev/sda1
de 1,0 Go à 1,5 Go , - Développez la deuxième partition
/dev/sda2
pour remplir l'espace restant.
Virt-resize ne peut pas redimensionner les images de disque sur place. En outre, Virt-resize ne doit pas être utilisé sur des machines virtuelles en direct. Avant de redimensionner l'image disque, éteignez la machine virtuelle et effectuez la sauvegarde de l'image disque d'origine.
$ mv centos8.qcow2 centos8.qcow2.backup
La commande ci-dessus renommera l'image disque actuelle appelée centos8.qcow2
vers centos8.qcow2.backup
.
Créez une nouvelle image disque avec le même nom et avec une taille de 30 Go à l'aide de la commande :
$ qemu-img create -f qcow2 -o preallocation=metadata centos8.qcow2 30G
Exemple de résultat :
Formatting 'centos8.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off preallocation=metadata compression_type=zlib size=32212254720 lazy_refcounts=off refcount_bits=16
Assurez-vous que la taille du disque nouvellement créé est de 30 Go :
$ virt-filesystems --long --parts --blkdevs -h -a centos8.qcow2
Exemple de résultat :
Name Type MBR Size Parent /dev/sda device - 30G -

Maintenant, développez/étendez la taille de l'image disque de la machine virtuelle KVM à l'aide de la commande :
$ virt-resize --resize /dev/sda1=+500M --expand /dev/sda2 centos8.qcow2.backup centos8.qcow2
Ici,
--resize /dev/sda1=+500M
- augmente la taille du/dev/sda1
partitionner à 500 Mo.- --expand /dev/sda2 - redimensionne le
/dev/sda2
partitionner pour remplir tout l'espace restant. Dans mon cas, il sera redimensionné de 19,0 G à 28,5 G. centos8.qcow2.backup
- c'est l'image originale du disque d'entrée.centos8.qcow2
- il s'agit de l'image disque de sortie nouvellement créée.
Exemple de sortie de la commande ci-dessus :
[ 0.0] Examining centos8.qcow2.backup Summary of changes: /dev/sda1: This partition will be resized from 1.0G to 1.5G. The filesystem ext4 on /dev/sda1 will be expanded using the ‘resize2fs’ method. /dev/sda2: This partition will be resized from 19.0G to 28.5G. The LVM PV on /dev/sda2 will be expanded using the ‘pvresize’ method. [ 4.2] Setting up initial partition table on centos8.qcow2 [ 5.6] Copying /dev/sda1 100% ⟦▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒⟧ 00:00 [ 9.7] Copying /dev/sda2 100% ⟦▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒⟧ 00:00 [ 45.1] Expanding /dev/sda1 using the ‘resize2fs’ method [ 45.3] Expanding /dev/sda2 using the ‘pvresize’ method Resize operation completed with no errors. Before deleting the old disk, carefully check that the resized disk boots and works correctly.

Vérifiez les partitions et leurs tailles avec virt-filesystems
commande :
$ virt-filesystems --long -h --all -a centos8.qcow2
Exemple de résultat :
Name Type VFS Label MBR Size Parent /dev/sda1 filesystem ext4 - - 1.4G - /dev/cl/root filesystem xfs - - 17G - /dev/cl/swap filesystem swap - - 2.0G - /dev/cl/root lv - - - 17G /dev/cl /dev/cl/swap lv - - - 2.0G /dev/cl /dev/cl vg - - - 29G /dev/sda2 /dev/sda2 pv - - - 29G - /dev/sda1 partition - - 83 1.5G /dev/sda /dev/sda2 partition - - 8e 29G /dev/sda /dev/sda device - - - 30G -

Comme vous le voyez dans la sortie ci-dessus, la taille de mon image disque KVM CentOS8 a été redimensionnée de 20 Go à 30 Go.
Démarrez maintenant la machine virtuelle avec une nouvelle image disque. Vous pouvez également créer une nouvelle machine virtuelle à l'aide de l'image Qcow2 comme décrit dans le lien suivant.
- Créer une machine virtuelle KVM à l'aide de l'image Qcow2 sous Linux
Si cela fonctionne sans aucun problème, vérifiez soigneusement si toutes vos données existent. Si tout est OK, supprimez l'ancien disque de sauvegarde.
S'il y a des problèmes avec le nouveau disque, arrêtez la machine virtuelle et renommez le disque de sauvegarde avec son nom d'origine. Répétez soigneusement les étapes ci-dessus. N'oubliez pas de sauvegarder les données et l'image disque.