¿Está decidido a cambiar de Oracle VirtualBox a una máquina virtual basada en kernel? ¡Estupendo! Esta guía paso a paso explica cómo migrar máquinas virtuales Virtualbox a máquinas virtuales KVM en Linux.
Es posible que esté ejecutando algunas máquinas invitadas importantes en VirtualBox. En lugar de crear nuevos invitados KVM con la misma configuración, puede convertir fácilmente las máquinas Virtualbox existentes a KVM como se describe aquí.
Migrar máquinas virtuales de Virtualbox a máquinas virtuales KVM en Linux
Primero, apague todas las máquinas virtuales en ejecución en VirtualBox.
Para el propósito de esta guía, usaré CentOS y FreeBSD máquinas virtuales alojadas en VirtualBox.
Como ya sabrá, el formato de imagen de disco predeterminado de una máquina virtual KVM es .qcow2
y Virtualbox VM es .vdi
.
Podemos convertir un archivo de imagen de disco vdi a qcow2 de dos maneras. Podemos convertir directamente el vdi
imagen a qcow2
formato.
Si no funciona por alguna razón, primero podemos convertir el vdi
formato a formato sin formato y luego convertir el formato sin formato a qcow2
.
1. Convierta el formato de imagen vdi al formato de imagen qcow2
Déjame mostrarte el tipo de imagen de disco de mi máquina virtual CentOS creada con VirtualBox.
$ ls CentOS\ 8\ Server/
Salida de muestra:
CentOS 8 Server.vbox CentOS 8 Server.vbox-prev CentOS 8 Server.vdi Logs
Como habrá notado, el tipo de archivo de la imagen de disco de la VM de CentOS es .vdi . Para aquellos que se preguntan, VDI es el formato nativo de VirtualBox. VirtualBox usa este formato por defecto cuando creamos una nueva máquina virtual.
Y aquí está el tipo de archivo de la imagen de disco de FreeBSD:
$ ls FreeBSD\ 12/ FreeBSD-12.0-RELEASE-amd64.vhd freebsd12.qcow2 FreeBSD 12.vbox FreeBSD 12.vbox-prev Logs
Aquí, el tipo de archivo de imagen de disco de freebsd es .vhd . VHD es el formato nativo de Microsoft Virtual PC.
Creé ambas máquinas virtuales en VirtualBox. Pero Virtualbox usó .vdi
formato para CentOS y .vhd
formato para FreeBSD.
VirtualBox admite muy bien los formatos VDI y VHD. Y ambos tipos de imágenes se pueden convertir fácilmente al formato qcow2.
Ahora volvamos al tema:cómo convertir las imágenes de disco de la máquina Virtualbox al tipo de imagen de disco compatible con KVM usando "qemu-img"
¿dominio?
Bueno, ¡es fácil! El qemu-img
El comando se usa para convertir imágenes de disco de máquina virtual a varios formatos diferentes, incluido qcow2
, raw
, vdi
, vhd
y vmdk
.
Para convertir un vdi
imagen a qcow2
imagen usando qemu-img
comando, ejecutar:
$ qemu-img convert CentOS\ 8\ Server/CentOS\ 8\ Server.vdi -O qcow2 centos8.qcow2
El comando anterior convertirá el vdi
dado archivo a qcow2
formato.
Aquí, usamos -O qcow2
para especificar explícitamente el formato de salida. Por supuesto, no tiene que especificar explícitamente el formato de salida y simplemente especifique el formato de entrada y salida como se muestra a continuación:
$ qemu-img convert CentOS\ 8\ Server/CentOS\ 8\ Server.vdi centos8.qcow2
Pero creará una imagen de mayor tamaño.
Del mismo modo, puede convertir el vhd
archivo de imagen a qcow2
imagen usando el siguiente comando:
$ qemu-img convert FreeBSD\ 12/FreeBSD-12.0-RELEASE-amd64.vhd -O qcow2 freebsd12.qcow2
Así es como migramos máquinas Virtualbox Virtual a máquinas virtuales KVM.
Ahora diríjase a "Crear una máquina virtual KVM a partir de la imagen Qcow2 " que se proporciona a continuación para saber cómo crear una nueva máquina virtual KVM usando las imágenes de Qcow2.
En caso de que el método anterior no funcione (lo cual es muy poco probable), puede usar el siguiente método para convertir vdi
imágenes a qcow2
imágenes.
2. Convierta vdi a formato de imagen sin procesar y luego a formato de imagen qcow2
Primero, busque la lista de imágenes de disco de virtualbox disponibles y su ubicación usando el comando:
$ vboxmanage list hdds
O,
$ VBoxManage list hdds
Salida de muestra:
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
Como puede ver, tengo dos máquinas virtuales virtualbox.
Ahora voy a convertir la imagen de disco de las máquinas CentOS 8 a un formato de disco sin formato usando vboxmanage
comando:
$ vboxmanage clonehd --format RAW /home/sk/VirtualBox\ VMs/CentOS\ 8\ Server/CentOS\ 8\ Server.vdi CentOS_8_Server.img
O,
$ VBoxManage clonehd --format RAW /home/sk/VirtualBox\ VMs/CentOS\ 8\ Server/CentOS\ 8\ Server.vdi CentOS_8_Server.img
Salida de muestra:
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% Clone medium created in format 'RAW'. UUID: afff3db8-b460-4f68-9c02-0f5d0d766c8e
La imagen RAW es demasiado grande usar. En mi caso, la imagen RAW es diez veces más grande que la imagen Qcow2.
$ du -h CentOS_8_Server.img 21G CentOS_8_Server.img
Así que vamos a convertir el formato de imagen RAW en formato de disco KVM, es decir, qcow2 comprimido usando el comando qemu-img:
$ qemu-img convert -f raw CentOS_8_Server.img -O qcow2 CentOS_8_Server.qcow2
¡Hecho! Hemos convertido el formato de imagen de disco de Virtualbox VDI en formato de imagen KVM qcow2.
Compruebe el tamaño de la imagen Qcow2:
$ du -h CentOS_8_Server.qcow2 2.1G CentOS_8_Server.qcow2
¿Ver? Qcow2 es mucho más pequeño que la imagen RAW.
3. Cree una máquina virtual KVM a partir de la imagen Qcow2
Ahora puede crear una nueva instancia de KVM importando el archivo de imagen del disco virtual desde la línea de comandos o usando cualquier aplicación gráfica de administración de KVM como Virt-manager o cabina consola web.
Consulte la siguiente guía para obtener más detalles:
- Cómo crear una máquina virtual KVM usando la imagen Qcow2
Resolución de problemas
A veces, es posible que haya eliminado el disco virtual sin liberarlo correctamente del administrador de medios de Virtualbox.
Cuando intente crear una nueva imagen RAM desde el mismo archivo VDI, obtendrá un error similar a:"hard disk with UUID already exists"
.
Para solucionar este problema, debe liberar el disco virtual de Virtualbox e intentar convertir la imagen nuevamente. Consulte la siguiente guía para saber cómo hacerlo:
- Reparar el problema "el disco duro con UUID ya existe" en VirtualBox
Conclusión
En esta guía, hemos visto cómo migrar máquinas virtuales Virtualbox a máquinas virtuales KVM en Linux. También analizamos cómo crear una nueva instancia de KVM importando el archivo de imagen Qcow2.