Êtes-vous décidé à passer d'Oracle VirtualBox à une machine virtuelle basée sur le noyau ? Génial! Ce guide étape par étape explique comment migrer des machines virtuelles Virtualbox vers des machines virtuelles KVM sous Linux.
Vous avez peut-être exécuté des machines invitées importantes sur VirtualBox. Au lieu de créer de nouveaux invités KVM avec la même configuration, vous pouvez facilement convertir les machines Virtualbox existantes en KVM comme décrit ici.
Migrer des VM Virtualbox vers des VM KVM sous Linux
Tout d'abord, éteignez toutes les machines virtuelles en cours d'exécution dans VirtualBox.
Pour les besoins de ce guide, j'utiliserai CentOS et FreeBSD machines virtuelles hébergées dans VirtualBox.
Comme vous le savez peut-être déjà, le format d'image disque par défaut d'une machine virtuelle KVM est .qcow2
et la machine virtuelle Virtualbox est .vdi
.
Nous pouvons convertir un fichier image disque vdi en qcow2 de deux manières. Nous pouvons directement convertir le vdi
image en qcow2
format.
Si cela ne fonctionne pas pour une raison quelconque, nous pouvons d'abord convertir le vdi
formater au format brut puis convertir le format brut en qcow2
.
1. Convertir le format d'image vdi au format d'image qcow2
Laissez-moi vous montrer le type d'image disque de ma machine virtuelle CentOS créée à l'aide de VirtualBox.
$ ls CentOS\ 8\ Server/
Exemple de résultat :
CentOS 8 Server.vbox CentOS 8 Server.vbox-prev CentOS 8 Server.vdi Logs
Comme vous l'avez peut-être remarqué, le type de fichier de l'image disque CentOS VM est .vdi . Pour ceux qui se demandent, VDI est le format natif de VirtualBox. VirtualBox utilise ce format par défaut lorsque nous créons une nouvelle machine virtuelle.
Et voici le type de fichier de l'image disque FreeBSD :
$ ls FreeBSD\ 12/ FreeBSD-12.0-RELEASE-amd64.vhd freebsd12.qcow2 FreeBSD 12.vbox FreeBSD 12.vbox-prev Logs
Ici, le type de fichier image disque freebsd est .vhd . VHD est le format natif de Microsoft Virtual PC.
J'ai créé les deux machines virtuelles dans VirtualBox. Mais Virtualbox a utilisé .vdi
format pour CentOS et .vhd
format pour FreeBSD.
Les formats VDI et VHD sont très bien pris en charge par VirtualBox. Et les deux types d'images peuvent être facilement convertis au format qcow2.
Revenons maintenant au sujet :comment convertir les images de disque de la machine Virtualbox en type d'image de disque pris en charge par KVM à l'aide de "qemu-img"
commande?
Eh bien, c'est facile ! Le qemu-img
La commande est utilisée pour convertir les images de disque de la machine virtuelle en différents formats, y compris qcow2
, raw
, vdi
, vhd
, et vmdk
.
Pour convertir un vdi
image en qcow2
image en utilisant qemu-img
commande, exécutez :
$ qemu-img convert CentOS\ 8\ Server/CentOS\ 8\ Server.vdi -O qcow2 centos8.qcow2
La commande ci-dessus convertira le vdi
donné fichier vers qcow2
formater.
Ici, nous avons utilisé -O qcow2
pour spécifier explicitement le format de sortie. Bien sûr, vous n'avez pas à spécifier explicitement le format de sortie et spécifiez simplement le format d'entrée et de sortie comme ci-dessous :
$ qemu-img convert CentOS\ 8\ Server/CentOS\ 8\ Server.vdi centos8.qcow2
Mais cela créera une image de plus grande taille.
De même, vous pouvez convertir le vhd
fichier image vers qcow2
image en utilisant la commande suivante :
$ qemu-img convert FreeBSD\ 12/FreeBSD-12.0-RELEASE-amd64.vhd -O qcow2 freebsd12.qcow2

C'est ainsi que nous migrons les machines virtuelles Virtualbox vers les machines virtuelles KVM.
Rendez-vous maintenant sur "Créer une machine virtuelle KVM à partir d'une image Qcow2 " ci-dessous pour savoir comment créer une nouvelle machine virtuelle KVM à l'aide des images Qcow2.
Juste au cas où la méthode ci-dessus ne fonctionnerait pas (ce qui est très peu probable), vous pouvez utiliser la méthode suivante pour convertir vdi
images en qcow2
images.
2. Convertissez vdi au format d'image brut, puis au format d'image qcow2
Tout d'abord, recherchez la liste des images de disque VirtualBox disponibles et leur emplacement à l'aide de la commande :
$ vboxmanage list hdds
Ou,
$ VBoxManage list hdds
Exemple de résultat :
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

Comme vous pouvez le voir, j'ai deux machines virtuelles virtualbox.
Maintenant, je vais convertir l'image disque des machines CentOS 8 en un format de disque brut en utilisant vboxmanage
commande :
$ vboxmanage clonehd --format RAW /home/sk/VirtualBox\ VMs/CentOS\ 8\ Server/CentOS\ 8\ Server.vdi CentOS_8_Server.img
Ou,
$ VBoxManage clonehd --format RAW /home/sk/VirtualBox\ VMs/CentOS\ 8\ Server/CentOS\ 8\ Server.vdi CentOS_8_Server.img
Exemple de résultat :
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% Clone medium created in format 'RAW'. UUID: afff3db8-b460-4f68-9c02-0f5d0d766c8e
L'image RAW est trop grande utiliser. Dans mon cas, l'image RAW est dix fois plus grande que l'image Qcow2.
$ du -h CentOS_8_Server.img 21G CentOS_8_Server.img
Convertissons donc le format d'image RAW au format de disque KVM, c'est-à-dire qcow2 compressé à l'aide de la commande qemu-img :
$ qemu-img convert -f raw CentOS_8_Server.img -O qcow2 CentOS_8_Server.qcow2

Fait! Nous avons converti le format d'image disque Virtualbox VDI en format d'image KVM qcow2.
Vérifiez la taille de l'image Qcow2 :
$ du -h CentOS_8_Server.qcow2 2.1G CentOS_8_Server.qcow2
Voir? Qcow2 est beaucoup plus petit que l'image RAW.
3. Créer une machine virtuelle KVM à partir de l'image Qcow2
Vous pouvez maintenant créer une nouvelle instance KVM en important le fichier image du disque virtuel à partir de la ligne de commande ou en utilisant n'importe quelle application graphique de gestion KVM comme Virt-manager ou Cockpit console Web.
Reportez-vous au guide suivant pour plus de détails :
- Comment créer une machine virtuelle KVM à l'aide de l'image Qcow2
Dépannage
Parfois, vous avez peut-être supprimé le disque virtuel sans le libérer correctement du gestionnaire de médias Virtualbox.
Lorsque vous essayez de créer une nouvelle image RAM à partir du même fichier VDI, vous obtenez une erreur du type - "hard disk with UUID already exists"
.
Pour résoudre ce problème, vous devez libérer le disque virtuel de la Virtualbox et réessayer de convertir l'image. Reportez-vous au guide suivant pour savoir comment procéder :
- Résoudre le problème "le disque dur avec UUID existe déjà" dans VirtualBox
Conclusion
Dans ce guide, nous avons vu comment migrer des VM Virtualbox vers des VM KVM sous Linux. Nous avons également examiné comment créer une nouvelle instance KVM en important le fichier image Qcow2.