GNU/Linux >> Tutoriels Linux >  >> Linux

Comment étendre la taille du disque de la machine virtuelle KVM sous Linux

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.


Linux
  1. Comment partitionner un disque sous Linux

  2. Comment supprimer des machines virtuelles basées sur KVM sur Redhat Linux

  3. Comment vérifier si un système Linux est une machine physique ou virtuelle

  4. Comment vérifier si le système Linux s'exécute sur un système physique ou une machine virtuelle ?

  5. Linux KVM sur une Virtualbox

Comment exporter et importer des machines virtuelles KVM sous Linux

Comment cloner une machine virtuelle dans VirtualBox

Comment augmenter la taille du disque de vos machines virtuelles existantes dans VirtualBox

Comment utiliser le système d'exploitation Tails Linux dans la machine virtuelle VirtualBox

Comment créer un modèle de machine virtuelle KVM

Comment vérifier la taille des fichiers et du répertoire sous Linux