GNU/Linux >> Linux Esercitazione >  >> Linux

Come estendere la dimensione del disco della macchina virtuale KVM in Linux

Questa breve guida spiega cos'è Virt-size strumento da riga di comando e come possiamo espandere o estendere le dimensioni del disco della macchina virtuale KVM utilizzando lo strumento Virt-resize in Linux.

L'altro giorno ho notato che una delle mie macchine virtuali KVM sta esaurendo lo spazio su disco. Non sono riuscito a installare nessuna nuova applicazione oa salvare i file a causa dello spazio su disco insufficiente. Per risolvere questo problema, ho semplicemente aumentato le dimensioni del disco di una macchina virtuale KVM utilizzando virt-size comando. Ho testato personalmente i passaggi indicati di seguito per aumentare le dimensioni del disco di una macchina virtuale KVM CentOS 8 e ha funzionato come previsto.

Strumento di ridimensionamento virtuale

Ridimensionamento virtuale è uno strumento da riga di comando per ridimensionare il disco di una macchina virtuale. Usando virt-resize, possiamo aumentare o diminuire la dimensione del disco di una macchina virtuale. Possiamo anche eliminare le partizioni all'interno del disco virtuale con il comando virt-resize. Tieni presente che ridimensiona le macchine live. I sistemi guest dovrebbero essere spenti prima di ridimensionare le loro immagini disco.

Per espandere la dimensione del disco di una macchina virtuale, creiamo prima un'immagine disco più grande dell'immagine di origine. E poi copiamo l'immagine di origine nell'immagine di destinazione e infine la ridimensioniamo.

Virt-resize è la parte di libguestfs-tools pacchetto. Per installare il pacchetto libguestfs-tools su Debian, Ubuntu e i suoi derivati, eseguire:

$ sudo apt install libguestfs-tools

Per installare il pacchetto libguestfs-tools su Fedora, RHEL e i suoi cloni, esegui:

$ sudo dnf install libguestfs-tools

In Fedora 34, guestfs-tools il pacchetto fornisce lo strumento di ridimensionamento virtuale. Quindi, se sei su Fedora 34, installa guestfs-tools pacchetto come di seguito:

$ sudo dnf install guestfs-tools

Ora vediamo come espandere la dimensione del disco della macchina virtuale usando virt-resize comando.

Espandi o estendi la dimensione del disco della macchina virtuale KVM in Linux

Ai fini di questa guida, utilizzerò l'immagine disco della macchina virtuale CentOS 8 denominata centos8.qcow2 . Ho memorizzato questo mago nella mia attuale directory di lavoro. Puoi usare virsh dumpxml comando per individuare l'immagine del disco che desideri ridimensionare.

Esempio:

$ virsh dumpxml centos8

Sostituisci centos8 con il nome della tua VM nel comando precedente.

Dopo aver individuato l'immagine del disco che desideri ridimensionare, controlla i dettagli della partizione all'interno di questa immagine del disco. Per stampare i dettagli della partizione e le relative dimensioni di un'immagine disco, eseguire:

$ virt-filesystems --long --parts --blkdevs -h -a centos8.qcow2 

Risultato di esempio:

 Name       Type       MBR  Size  Parent
 /dev/sda1  partition  83   1.0G  /dev/sda
 /dev/sda2  partition  8e   19G   /dev/sda
 /dev/sda   device     -    20G   -

Come puoi vedere nell'output sopra, la mia immagine del disco ha solo due partizioni, ovvero /dev/sda1 con dimensione 1 GB e /dev/sda2 con 19 GB. La dimensione totale dell'immagine disco è di 20 GB.

Ora lo faremo,

  • aumentare la dimensione totale dell'immagine del disco da 20 GB a 30 GB ,
  • aumentare la dimensione della prima partizione /dev/sda1 da 1,0 GB a 1,5 GB ,
  • Espandi la seconda partizione /dev/sda2 per riempire lo spazio rimanente.

Virt-resize non può ridimensionare le immagini del disco sul posto. Inoltre, Virt-resize non deve essere utilizzato su macchine virtuali live. Prima di ridimensionare l'immagine del disco, spegni la macchina virtuale ed esegui il backup dell'immagine del disco originale.

$ mv centos8.qcow2 centos8.qcow2.backup

Il comando precedente rinominerà l'immagine del disco corrente denominata centos8.qcow2 a centos8.qcow2.backup .

Crea una nuova immagine disco con lo stesso nome e con una dimensione di 30 GB usando il comando:

$ qemu-img create -f qcow2 -o preallocation=metadata centos8.qcow2 30G

Risultato di esempio:

Formatting 'centos8.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off preallocation=metadata compression_type=zlib size=32212254720 lazy_refcounts=off refcount_bits=16

Assicurati che la dimensione del disco appena creato sia 30 GB:

$ virt-filesystems --long --parts --blkdevs -h -a centos8.qcow2

Risultato di esempio:

Name      Type    MBR  Size  Parent
 /dev/sda  device  -    30G   -

Ora espandi/estendi la dimensione dell'immagine del disco della macchina virtuale KVM usando il comando:

$ virt-resize --resize /dev/sda1=+500M --expand /dev/sda2 centos8.qcow2.backup centos8.qcow2

Ecco,

  • --resize /dev/sda1=+500M - aumenta la dimensione del /dev/sda1 partizione a 500 MB.
  • --expand /dev/sda2 - ridimensiona il /dev/sda2 partizione per riempire tutto lo spazio rimanente. Nel mio caso, verrà ridimensionato da 19.0G a 28.5G.
  • centos8.qcow2.backup - è l'immagine del disco di input originale.
  • centos8.qcow2 - è l'immagine del disco di output appena creata.

L'output di esempio del comando precedente è:

[   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.

Controlla le partizioni e le loro dimensioni con virt-filesystems comando:

$ virt-filesystems --long -h --all -a centos8.qcow2

Risultato di esempio:

 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   -

Come puoi vedere nell'output sopra, le dimensioni dell'immagine del mio disco KVM CentOS8 sono state ridimensionate da 20 GB a 30 GB.

Ora avvia la macchina virtuale con la nuova immagine del disco. Puoi anche creare una nuova macchina virtuale usando l'immagine Qcow2 come descritto nel seguente link.

  • Crea una macchina virtuale KVM utilizzando l'immagine Qcow2 in Linux

Se funziona senza problemi, controlla attentamente se tutti i tuoi dati esistono. Se tutto è a posto, elimina il vecchio disco di backup.

In caso di problemi con il nuovo disco, arrestare la macchina virtuale e rinominare il disco di backup con il nome originale. Ripetere attentamente i passaggi precedenti. Non dimenticare di eseguire il backup dei dati e dell'immagine del disco.


Linux
  1. Come partizionare un disco in Linux

  2. Come rimuovere le macchine virtuali basate su KVM su Redhat Linux

  3. Come convertire VMDK (Virtual Machine Disk) in VDI usando VBoxManage?

  4. Come verificare se il sistema Linux è in esecuzione su un sistema fisico o una macchina virtuale?

  5. Come estendere una partizione PV Linux online dopo la crescita del disco virtuale

Come esportare e importare macchine virtuali KVM in Linux

Come clonare la macchina virtuale in VirtualBox

Come aumentare la dimensione del disco delle macchine virtuali esistenti in VirtualBox

Come utilizzare il sistema operativo Tails Linux nella macchina virtuale VirtualBox

Come creare un modello di macchina virtuale KVM

Come controllare la dimensione di file e directory su Linux