GNU/Linux >> Linux Esercitazione >  >> Linux

Come migrare le VM Virtualbox in VM KVM in Linux

Hai deciso di passare da Oracle VirtualBox a una macchina virtuale basata su kernel? Grande! Questa guida passo passo spiega come migrare le VM Virtualbox in VM KVM in Linux.

Potresti aver eseguito alcune importanti macchine guest su VirtualBox. Invece di creare nuovi guest KVM con la stessa configurazione, puoi facilmente convertire le macchine Virtualbox esistenti in KVM come descritto qui.

Migrazione di VM Virtualbox in VM KVM in Linux

Innanzitutto, spegni tutte le macchine virtuali in esecuzione in VirtualBox.

Ai fini di questa guida, utilizzerò CentOS e FreeBSD macchine virtuali ospitate in VirtualBox.

Come forse già saprai, il formato dell'immagine disco predefinito di una macchina virtuale KVM è .qcow2 e Virtualbox VM è .vdi .

Possiamo convertire un file immagine disco vdi in qcow2 in due modi. Possiamo convertire direttamente il vdi immagine a qcow2 formato.

Se non funziona per qualsiasi motivo, possiamo prima convertire il vdi format in raw format e poi converti il ​​raw format in qcow2 .

1. Converti il ​​formato immagine vdi nel formato immagine qcow2

Lascia che ti mostri il tipo di immagine del disco della mia VM CentOS creata utilizzando VirtualBox.

$ ls CentOS\ 8\ Server/

Risultato di esempio:

CentOS 8 Server.vbox CentOS 8 Server.vbox-prev CentOS 8 Server.vdi Logs

Come avrai notato, il tipo di file dell'immagine disco di CentOS VM è .vdi . Per chi se lo chiede, VDI è il formato nativo di VirtualBox. VirtualBox utilizza questo formato per impostazione predefinita quando creiamo una nuova macchina virtuale.

Ed ecco il tipo di file dell'immagine del disco di FreeBSD:

$ ls FreeBSD\ 12/
FreeBSD-12.0-RELEASE-amd64.vhd freebsd12.qcow2 FreeBSD 12.vbox FreeBSD 12.vbox-prev Logs

Qui, il tipo di file immagine del disco freebsd è .vhd . VHD è il formato nativo di Microsoft Virtual PC.

Ho creato entrambe le macchine virtuali in VirtualBox. Ma Virtualbox usava .vdi formato per CentOS e .vhd formato per FreeBSD.

Entrambi i formati VDI e VHD sono supportati molto bene da VirtualBox. Ed entrambi i tipi di immagine possono essere facilmente convertiti in formato qcow2.

Ora torniamo all'argomento:come convertire le immagini del disco della macchina Virtualbox nel tipo di immagine del disco supportato da KVM usando "qemu-img" comando?

Bene, è facile! Il qemu-img Il comando viene utilizzato per convertire le immagini del disco della macchina virtuale in vari formati diversi, incluso qcow2 , raw , vdi , vhd e vmdk .

Per convertire un vdi immagine a qcow2 immagine usando qemu-img comando, esegui:

$ qemu-img convert CentOS\ 8\ Server/CentOS\ 8\ Server.vdi -O qcow2 centos8.qcow2

Il comando precedente convertirà il dato vdi file in qcow2 formato.

Qui abbiamo usato -O qcow2 per specificare in modo esplicito il formato di output. Naturalmente, non è necessario specificare esplicitamente il formato di output e specificare semplicemente il formato di input e output come di seguito:

$ qemu-img convert CentOS\ 8\ Server/CentOS\ 8\ Server.vdi centos8.qcow2

Ma creerà un'immagine di dimensioni maggiori.

Allo stesso modo, puoi convertire il vhd file immagine in qcow2 immagine utilizzando il seguente comando:

$ qemu-img convert FreeBSD\ 12/FreeBSD-12.0-RELEASE-amd64.vhd -O qcow2 freebsd12.qcow2

Questo è il modo in cui migriamo le macchine virtuali Virtualbox alle macchine virtuali KVM.

Ora vai a "Crea una macchina virtuale KVM dall'immagine Qcow2 " sezione riportata di seguito per sapere come creare una nuova macchina virtuale KVM utilizzando le immagini Qcow2.

Nel caso in cui il metodo sopra non funzioni (cosa molto improbabile), puoi usare il seguente metodo per convertire vdi immagini su qcow2 immagini.

2. Converti vdi in formato immagine raw e quindi in formato immagine qcow2

Innanzitutto, trova l'elenco delle immagini del disco virtualbox disponibili e la loro posizione utilizzando il comando:

$ vboxmanage list hdds

Oppure,

$ VBoxManage list hdds

Risultato di esempio:

UUID:           ecfb6d5c-aa10-4ffc-b40c-b871f0404da8
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       /home/sk/VirtualBox VMs/CentOS 8 Server/CentOS 8 Server.vdi
Storage format: VDI
Capacity:       20480 MBytes
Encryption:     disabled

UUID:           34a5709f-188c-4040-98f9-6093628c3d88
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       /home/sk/VirtualBox VMs/Ubuntu 20.04 Server/Ubuntu 20.04 Server.vdi
Storage format: VDI
Capacity:       20480 MBytes
Encryption:     disabled

Come puoi vedere, ho due macchine virtuali virtualbox.

Ora convertirò l'immagine del disco delle macchine CentOS 8 in un formato disco non elaborato usando vboxmanage comando:

$ vboxmanage clonehd --format RAW /home/sk/VirtualBox\ VMs/CentOS\ 8\ Server/CentOS\ 8\ Server.vdi CentOS_8_Server.img

Oppure,

$ VBoxManage clonehd --format RAW /home/sk/VirtualBox\ VMs/CentOS\ 8\ Server/CentOS\ 8\ Server.vdi CentOS_8_Server.img

Risultato di esempio:

0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone medium created in format 'RAW'. UUID: afff3db8-b460-4f68-9c02-0f5d0d766c8e

L'immagine RAW è troppo grande usare. Nel mio caso, l'immagine RAW è dieci volte più grande dell'immagine Qcow2.

$ du -h CentOS_8_Server.img 
21G CentOS_8_Server.img

Quindi convertiamo il formato dell'immagine RAW nel formato del disco KVM, ad esempio qcow2 compresso usando il comando qemu-img:

$ qemu-img convert -f raw CentOS_8_Server.img -O qcow2 CentOS_8_Server.qcow2

Fatto! Abbiamo convertito il formato immagine disco Virtualbox VDI nel formato immagine KVM qcow2.

Controlla le dimensioni dell'immagine Qcow2:

$ du -h CentOS_8_Server.qcow2 
2.1G CentOS_8_Server.qcow2

Vedere? Qcow2 è molto più piccolo dell'immagine RAW.

3. Crea una macchina virtuale KVM dall'immagine Qcow2

Ora puoi creare una nuova istanza KVM importando il file immagine del disco virtuale dalla riga di comando o utilizzando qualsiasi applicazione grafica di gestione KVM come Virt-manager o Pozzetto console web.

Fare riferimento alla seguente guida per maggiori dettagli:

  • Come creare una macchina virtuale KVM utilizzando l'immagine Qcow2

Risoluzione dei problemi

A volte potresti aver eliminato il disco virtuale senza rilasciarlo correttamente da Virtualbox media manager.

Quando provi a creare una nuova immagine RAM dallo stesso file VDI, visualizzerai un errore simile a - "hard disk with UUID already exists" .

Per risolvere questo problema, devi rilasciare il disco virtuale da Virtualbox e riprovare a convertire l'immagine. Fare riferimento alla seguente guida per sapere come farlo:

  • Risolto il problema "disco rigido con UUID già esistente" in VirtualBox

Conclusione

In questa guida, abbiamo visto come migrare le VM Virtualbox in VM KVM in Linux. Abbiamo anche esaminato come creare una nuova istanza KVM importando il file immagine Qcow2.


Linux
  1. Come partizionare e formattare un'unità su Linux

  2. Come formattare le partizioni del disco in Linux

  3. Come creare un'immagine Kali Linux in formato QCOW2 per OpenStack?

  4. Come migrare da CentOS 8 a Rocky Linux 8

  5. Linux KVM su una Virtualbox

Come installare VirtualBox in diverse distribuzioni Linux

Come convertire xlsx in formato CSV in Linux

Come migrare le VM Virtualbox in VM KVM in Linux

Come formattare le partizioni del disco su Linux

Come utilizzare le macchine virtuali Virtualbox su KVM nel sistema Linux

Come installare Linux Mint in VirtualBox