Migrar VMs de VMWare ESXi a Proxmox VE
La migración de VM de VMware a Proxmox puede ser necesaria si una organización está diversificando su infraestructura o moviendo completamente sus cargas de trabajo de producción a una nueva plataforma. Existen dos métodos principales para migrar máquinas virtuales de hosts VMware ESXi a hosts Proxmox VE: manualmente y con herramientas especiales. Esta entrada de blog proporciona un tutorial detallado paso a paso para la migración exitosa de máquinas virtuales a Proxmox VE utilizando los 2 métodos.
Preparación para la migración de máquinas virtuales
Al planificar una migración a Proxmox VE, primero debe instalar Proxmox. A continuación se recomiendan algunos pasos a seguir antes de proceder a la migración:
- Anote la configuración de red actual de la máquina virtual de origen y considere la posibilidad de configurar los adaptadores de red para obtener la configuración IP mediante DHCP. Este enfoque puede ayudar a evitar mensajes sobre conflictos de direcciones IP en el sistema operativo invitado de la máquina virtual de destino, ya que se pueden utilizar nuevos adaptadores de red tras la migración. Una vez finalizada la migración de la máquina virtual, puede restaurar la configuración de red de los adaptadores de red conectados.
- Asegúrese de que existe una conexión de red entre el host ESXi de origen y el host Proxmox de destino. La conexión de red es necesaria para la mayoría de los métodos para copiar los datos de la VM al migrar de ESXi a Proxmox.
- Desactive el cifrado de disco para la máquina virtual original en el host VMware ESXi. Un dispositivo vTPM habilitado para una VM puede causar problemas de migración.
- Debe importar la máquina virtual en estado apagado.
El entorno utilizado en este tutorial es:
- Entorno virtual VMware:
- ESXi 8: 192.168.101.31
- Almacenes de datos ESXi: datastore40t, datastore50
- Entorno virtual Proxmox:
- Proxmox host: 192.168.101.226
- Almacenes de datos: local-zfs, datastore55
Método 1: Migración manual
Vamos a migrar una máquina virtual Windows Server 2022 que se ejecuta en un host ESXi. La idea detrás del primer método de migración de VM es crear una nueva VM Proxmox/KVM vacía con idéntica configuración y transferir los datos del disco virtual de la VM ESXi original a esta VM Proxmox.
Comprobación de la máquina virtual original
- Habilite SSH en el host ESXi de origen donde está almacenada la VM original. Para habilitar el acceso SSH en VMware Host Client, vaya a Host > Manage en el panel Navigator, pulse la pestaña Services, seleccione TSM-SSH y haga clic con el botón derecho en este elemento. En el menú contextual, haga clic en Iniciar para iniciar inmediatamente el servicio del servidor SSH. Haga clic en Policy > Start and stop with host para iniciar el servicio del servidor SSH automáticamente al arrancar ESXi.
- Compruebe la configuración de hardware de la VMware original para recrear la configuración de hardware de la VM de destino en el servidor Proxmox. Seleccione la VM original en el panel izquierdo de la interfaz web de VMware Host Client o VMware vSphere Client y compruebe los datos en la sección Hardware Configuration. Puede hacer clic en Editar configuración de VM para ver más parámetros de configuración de VM.
- Compruebe si UEFI o BIOS está configurado en los ajustes de la VM porque este ajuste afecta al arranque del SO invitado. BIOS se selecciona en la configuración de la VMware VM original que reside en el host ESXi. Esto significa que tendremos que seleccionar BIOS en la configuración de la máquina virtual de destino en el servidor Proxmox.
Seleccione una VM, haga clic en Editar configuración de VM, seleccione la pestaña Opciones de VM en la ventana Editar configuración y expanda la sección Opciones de arranque para comprobar la configuración UEFI/BIOS de la VM. En nuestro ejemplo, utilizamos BIOS para la VM original.
- Desconecte cualquier imagen o disco CD/DVD de la máquina virtual original.
- Puede desinstalar VMware Tools antes o después de la migración. Si desea conservar la máquina virtual original en un estado totalmente operativo, es mejor desinstalar VMware Tools en la máquina virtual de destino después de la migración a un servidor Proxmox hasta que esté seguro de que la máquina virtual migrada funciona correctamente.
Creación de una nueva máquina virtual Proxmox
- Cree una nueva VM en el servidor Proxmox con los mismos parámetros que la VMware VM original en el host ESXi. Esto se aplica a la CPU, la memoria, las tarjetas de red, los discos virtuales, etc. Haga clic con el botón derecho en el host Proxmox en el panel izquierdo de la interfaz web de Proxmox VE y haga clic en Crear VM.
- En la pestaña General (paso) del asistente Crear: Máquina Virtual, introduzca los siguientes parámetros:
- Nodo: pve
Este es el nombre de nuestro host Proxmox.
- ID VM: 101
Puede utilizar cualquier ID de VM libre. Por defecto, la numeración comienza a partir de 100.
- Nombre: Servidor2022
Puede introducir cualquier número, pero para mayor comodidad, introduzca el nombre que sea igual o idéntico al nombre de la máquina virtual original en el host ESXi.
Haga clic en Siguiente en cada paso para continuar.
- Nodo: pve
- En el paso SO, seleccione el mismo SO invitado que se configuró para la VMware VM original. En este caso, se trata de Windows Server 2022.
- Sistema. Seleccione BIOS si la VM original utiliza BIOS o seleccione UEFI si la VM original utiliza UEFI. Desmarque la casilla Añadir TPM si no va a utilizar TPM en el módulo TPM virtual. Puede ignorar la configuración del controlador SCSI porque conectaremos el disco virtual importado manualmente.
- Discos. Por defecto, se crea un nuevo disco virtual al crear una nueva VM en Proxmox VE. En nuestro ejemplo, la ruta a los discos virtuales en el datastore Proxmox es:
/mnt/datastore/datastore55/images/101
Borraremos este disco virtual después de crear una nueva VM porque vamos a copiar e importar el(los) disco(s) virtual(es) de la VM original (esto se puede hacer en la GUI).
- CPU. Configure la CPU de forma similar a la de la máquina virtual original. En este ejemplo, utilizamos un procesador con dos núcleos.
- Memoria. Establezca la cantidad de memoria para la nueva máquina virtual. Fije la misma cantidad que se fijó para el VM original.
- Red. Seleccione un puente para el modo de red necesario (Puente, NAT, etc.). Seleccione un modelo de adaptador de red virtual. Debe configurar un adaptador de red que pueda ser reconocido en el sistema operativo invitado tras la migración de la máquina virtual de ESXi a Proxmox. Algunos adaptadores de red virtuales requieren controladores, y si estos controladores no están instalados en el SO huésped, el adaptador de red no funcionará. Puede seleccionar el adaptador de red más compatible y cambiar el modelo de adaptador por el necesario una vez finalizada la migración de la máquina virtual e instalados los controladores y las herramientas de invitado adecuados.
- Seleccione la nueva VM recientemente creada en el panel izquierdo de la interfaz web de Proxmox (Server2022 en este ejemplo). Haga clic en Hardware, seleccione un disco duro virtual creado por defecto con la nueva VM y haga clic en Separar.
- ¿Está seguro de que desea desconectar la entrada «Disco duro (sata0)»?
Haga clic en Sí para confirmar.
- Haga clic en Eliminar después de separar el disco duro virtual.
La nueva VM vacía ha sido creada y ahora está lista para transferir los datos del disco virtual de la VM original.
Copia de los datos del disco virtual
En primer lugar, debe identificar el directorio de la máquina virtual de destino y el directorio de la máquina virtual original para saber dónde se encuentra el disco virtual original y dónde debe colocarse el disco virtual de destino. A continuación, puede copiar discos virtuales.
- Abra la consola del servidor Proxmox. En el panel izquierdo de la interfaz web Proxmox VE, seleccione su host(pve en este ejemplo) y haga clic en el botón Shell en la esquina superior derecha.
- Vaya al directorio donde se almacenan los discos VM en la consola. En nuestro caso, los discos virtuales de nuestra nueva máquina virtual Proxmox se almacenan en datastore55 en el directorio /mnt/datastore/datastore55/images/101, donde 101 es el ID de la máquina virtual.
cd /mnt/datastore/datastore55/images/101
En la siguiente captura de pantalla, puede ver que el disco virtual de la nueva máquina virtual se ha eliminado en la interfaz gráfica de usuario y no se muestra en la lista de archivos (vm-101-disk-1.qcow2 – 32 GB). Si ha seleccionado UEFI y TPM, se crearán dos discos virtuales adicionales (en nuestro ejemplo, no utilizamos estos dos discos virtuales porque usamos BIOS sin TPM).
- Conéctese al ESXi con un datastore VM donde la VMware VM original se almacena a través de SSH:
ssh root@192.168.101.31
Donde 192.168.101.31 es la dirección IP del host ESXi, y root es el nombre de usuario
- Compruebe los archivos de la máquina virtual de origen en el directorio de la máquina virtual de origen en el almacén de datos ESXi correspondiente:
ls -al /vmfs/volumes/datastore50/WinServer2022/
Anote los nombres de los archivos.vmdk y -flat.vmdk de la VMware VM original en el host ESXi. Estos archivos son el descriptor del disco virtual y el archivo de datos sin procesar que se necesita copiar para la migración de la máquina virtual a Proxmox.
- Salir de la sesión SSH:
exit
- Detenga la máquina virtual original en el host ESXi.
- Ahora, copie los archivos vmdk y -flat.vmdk de los discos virtuales originales de la VM original utilizando el cliente SCP y la conexión SSH que habilitamos en el host ESXi de origen. Ejecute los siguientes comandos en la consola Proxmox VE:
scp root@192.168.101.31://vmfs/volumes/datastore50/WinServer2022/WinServer2022.vmdk .
scp root@192.168.101.31://vmfs/volumes/datastore50/WinServer2022/WinServer2022-flat.vmdk .
donde:
root es el nombre de usuario en el host ESXi
192.168.101.31 es la dirección IP del host ESXi
. significa el directorio actual donde nos quedamos ahora en el servidor Proxmox (copiar el archivo al directorio actual); podemos establecer /mnt/datastore/datastore55/images/101 explícitamente en su lugar.
Introduzca la contraseña raíz de ESXi cuando se le solicite.
NOTA: Si selecciona UEFI con TPM en lugar de BIOS en la configuración de la máquina virtual, se pueden crear dos pequeños discos virtuales para el arranque de la máquina virtual en el modo UEFI y para el módulo TPM virtual. No se recomienda utilizar TPM al migrar una máquina virtual.
- Volver a escanear todos los almacenes de datos y mostrar los discos virtuales que están presentes en el host Proxmox:
qm rescan
- Compruebe el contenido del directorio VM utilizado para la migración de VM:
ls -l
Como puede ver, el disco virtual original con aprovisionamiento fino ocupa ahora 30 GB, ya que después de la copia tiene un aprovisionamiento grueso. Esto se debe a que el thin provisioning es una característica del sistema de archivos VMFS utilizado por ESXi.
Para exportar discos virtuales vmdk thin provisioned a un servidor Proxmox sin consumir el tamaño máximo de disco virtual, puede exportar la VMware VM original a una plantilla OVF. En este caso, el tamaño del disco virtual vmdk exportado es igual al tamaño ocupado por los archivos dentro del disco o discos virtuales.
- Exportación/importación de una plantilla VM (alternativa)
Para exportar una VM a una plantilla OVF, puede utilizar la GUI del cliente VMware vSphere (haga clic con el botón derecho en la VM y seleccione Exportar) o VMware Host Client. Alternativamente, puede descargar la herramienta OVF desde el sitio web de VMware para exportar la VM en la línea de comandos.
Puede ejecutar el siguiente comando en la consola del servidor Proxmox para exportar una VM desde el host ESXi a una plantilla OVF y almacenar los archivos de la plantilla en el servidor Proxmox:
ovftool vi://root@{IP or FQDN of ESXi host}/{VM name} /path/to/export/location
En nuestro ejemplo, el comando para crear una plantilla OVF y almacenar los archivos de la plantilla en el directorio VM en el host Proxmox es:
ovftool vi://root@192.168.101.31/WinServer2022 /mnt/datastore/datastore55/images/101
La ovftool crea un subdirectorio para almacenar los archivos de plantilla.
Proxmox VE soporta el formato vmdk de VMware de discos virtuales, que no es el formato nativo para Proxmox VE (KVM/QEMU). El formato nativo es qcow2. Puede convertir manualmente un disco virtual VMware al formato qcow2 o al formato raw. También puede importar un disco virtual convirtiéndolo con un solo comando. A continuación se explican todos estos comandos.
- Exportación/importación de una plantilla VM (alternativa)
- Convertir/importar un disco virtual al formato necesario para la máquina virtual de destino. A continuación cubrimos 4 métodos para convertir e importar un disco virtual y utilizar el más adecuado para usted antes de pasar a la siguiente etapa.
- Conversión de vmdk a qcow2
Para convertir un disco virtual del formato VMware(vmdk y -flat.vmdk) al formato nativo Proxmox/KVM qcow2 utilice el comando:
qemu-img convert -cpf vmdk -O qcow2 <source-file> <output-file>
En este ejemplo, el comando que ejecutamos desde el directorio VM es:
qemu-img convert -cpf vmdk -O qcow2 ./WinServer2022.vmdk ./WinServer2022.qcow2
Compruebe el contenido del directorio después de convertir un disco virtual:
ls -al
El disco virtual qcow2 convertido ocupa 15 GB de espacio en disco (hay 15 GB de archivos dentro del disco virtual), dado que fue thin provisioned. Más información sobre los formatos compatibles en la comparativa KVM vs VMware.
Puede seleccionar este disco virtual qcow2 convertido en la interfaz web de Proxmox para la máquina virtual migrada. Antes de hacer esto, vamos a repasar los comandos alternativos para importar un disco virtual y cambiar el formato del disco virtual.
- Importación en formato raw
Para importar un disco virtual en formato raw, podemos ejecutar este comando desde el directorio de la VM migrada:
qm importdisk 101 ./WinServer2022.qcow2 datastore55
Donde datastore55 es un datastore en el host Proxmox en el que se encuentra la máquina virtual de destino (101).
- Importar vmdk directamente
Puede utilizar el comando para importar un disco virtual del formato vmdk directamente a raw. El comando para importar VMDK a Proxmox como raw es:
qm importdisk 101 ./WinServer2022.vmdk datastore55
- Importar como qcow2
Si desea utilizar el formato qcow2 en la salida (no raw) para la importación Proxmox vmdk, utilice el comando:
qm importdisk 101 /mnt/datastore/datastore55/images/101/WinServer2022.vmdk datastore55 -format qcow2
- Conversión de vmdk a qcow2
Adjuntar un disco virtual
Adjunte el disco virtual migrado a la máquina virtual Proxmox (101), que ahora se clasifica como disco no utilizado. Puede realizar esta acción en la GUI de Proxmox VE.
- Seleccione la máquina virtual que ha creado para la migración de VM desde VMware ESXi a Proxmox VE(Server2022 en este ejemplo). Vaya a la sección Hardware y haga clic en Añadir > Disco duro.
- Asegúrese de que la controladora de disco soportada está seleccionada (usar SATA o IDE funciona en la mayoría de los casos) en las opciones de Añadir Disco No Utilizado. Pulsa Añadir.
- Establezca el disco virtual añadido a la configuración de la máquina virtual como primer dispositivo de arranque. Una vez seleccionada la máquina virtual, vaya a Opciones y haga doble clic en Orden de arranque. Seleccione la casilla de verificación en la línea del disco virtual importado y arrastre este disco virtual a la primera posición en la lista de orden de arranque. Pulsa OK para guardar los ajustes.
- No olvides que las configuraciones UEFI o BIOS deben coincidir con las de la máquina virtual de origen para que el sistema operativo invitado arranque correctamente.
- Inicie la máquina virtual migrada. La máquina virtual debería arrancar correctamente. De lo contrario, compruebe el disco de arranque en la configuración de arranque y compruebe el controlador del disco virtual en la configuración de la máquina virtual. Para cambiar un controlador de disco virtual, debe desconectar el disco virtual y volver a conectarlo. Al conectar un disco virtual, puede seleccionar las opciones del controlador de disco.
Configuración posterior a la migración
Instale los controladores VirtIO y un agente invitado QEMU en el sistema operativo de búsqueda para obtener un rendimiento óptimo de la máquina virtual. Las máquinas Linux han soportado controladores VirtIO paravirtualizados desde el kernel 2.6. El uso de dispositivos virtuales paravirtualizados proporciona un mayor rendimiento que los emulados.
Puede descargar los controladores VirtIO desde el sitio web de Proxmox:
https://pve.proxmox.com/wiki/Paravirtualized_Block_Drivers_for_Windows#Download
https://pve.proxmox.com/wiki/Windows_VirtIO_Drivers
Los controladores VirtIO están disponibles en el archivo de imagen ISO, como virtio-win-0.1.240.iso
Para huéspedes Windows:
- Cargue la imagen ISO descargada en el almacén de datos de Proxmox y monte esta imagen ISO en la máquina virtual migrada.
- Examine el contenido de la imagen ISO montada desde el SO huésped y ejecute el instalador adecuado para instalar las herramientas necesarias.
- Después de instalar los controladores VirtIO Guest, puede cambiar el controlador del disco virtual a VirtIO SCSI.
Además, puede instalar un cliente SPICE en su máquina y habilitar SPICE para una VM en un servidor Proxmox para mayor comodidad y una mejor experiencia de usuario al conectarse a una VM para su gestión.
Puede eliminar los archivos de disco virtual innecesarios, como los archivos vmdk, del almacén de datos de Proxmox una vez que la migración de la máquina virtual haya finalizado correctamente. Utiliza los comandos como estos:
rm /mnt/datastore/datastore55/images/101/WinServer2022.vmdk
rm /mnt/datastore/datastore55/images/101/WinServer2022-flat.vmdk
Puedes ver el video a continuación para el tutorial completo sobre cómo migrar máquinas virtuales de VMware ESXi a Proxmox VE.
Método 2: Utilización de esxi-import-tools
El segundo método para migrar máquinas virtuales de ESXi a un entorno virtual Proxmox se presentó a finales de marzo de 2024 con una nueva actualización de Proxmox VE. Un nuevo paquete pve-esxi-import-tools está previsto para la versión de producción en Proxmox VE 8.2. Sin embargo, este paquete ya se ha incluido en Proxmox VE a partir de la versión 8.1.10, pero sólo en los repositorios de software Proxmox de prueba y sin suscripción. La nueva herramienta de importación ofrece un asistente fácil de usar para importar máquinas virtuales de ESXi a Proxmox VE en la interfaz web.
Actualización e instalación de paquetes Proxmox
- Añada un repositorio de software Proxmox sin suscripción y un repositorio de software de prueba si no se han añadido antes. Seleccione un host Proxmox en el panel izquierdo(pve en este ejemplo). Vaya a Actualizaciones > Repositorios y haga clic en Añadir. (Por defecto, sólo están presentes los repositorios Enterprise).
- Seleccione un repositorio Sin suscripción en el menú desplegable y pulse Añadir. A continuación, seleccione el repositorio de pruebas.
- Pulse el botón Recargar hasta que se muestren los repositorios añadidos. Como resultado, se han añadido repositorios de copia de seguridad y se muestran en la página Repositorios.
- Vaya a Actualizaciones y pulse el botón Actualizar para actualizar la lista de paquetes disponibles para actualizar. Debería ver los nuevos paquetes Proxmox en la lista.
- En una ventana emergente se muestra una lista de los paquetes que hay que actualizar. Una vez finalizada la tarea de Actualizar, puede cerrar esta ventana emergente. Ya está listo para actualizar.
- Seleccione su host Proxmox en el panel izquierdo de la interfaz web y pulse Actualizar.
- En la ventana de la consola que se abre, escriba y y pulse Intro para iniciar el proceso de actualización de Proxmox. Espere a que finalice la actualización.
- Compruebe si se ha instalado la herramienta de importación de ESXi después de completar la actualización.
dpkg -l | grep pve-esxi-import-tools
Debería ver la versión del paquete en la salida de la consola.
- Reinicie el host Proxmox para aplicar la actualización del kernel:
init 6
Configuración de Proxmox para la migración de máquinas virtuales
Después de que el host Proxmox se haya reiniciado, inicie sesión en la interfaz web Proxmox VE. Debería ver el número de la nueva versión en la esquina superior izquierda.
- Vaya a Datacenter > Storage y pulse Add > ESXi para añadir datastores de un host ESXi con las VMs de origen al inventario de Proxmox. Esta acción es necesaria para utilizar la herramienta de migración de VMware a Proxmox, y la entrada ESXi quedó disponible tras la actualización.
- Introduzca los parámetros necesarios en la pestaña General para añadir almacenamiento ESXi:
ID – Este es el nombre del almacenamiento ESXi mostrado en el inventario de Proxmox. Utiliza letras, no sólo cifras.
Servidor – Introduzca la dirección IP de un host ESXi en el que reside la máquina virtual de origen.
Nombre de usuario: introduzca el nombre de un usuario con privilegios de root en el host ESXi.
Contraseña – Introduzca la contraseña para este usuario
Nodos – Seleccione un host Proxmox al que se realizará la migración de la máquina virtual.
Puede omitir la verificación del certificado si no lo ha creado.
Haz clic en Añadir.
- El almacenamiento ESXi se ha añadido y se muestra en la sección Almacenamiento. Ahora, podemos ver el elemento ESXi31 en la lista de almacenamiento. Este elemento incluye todos los almacenes de datos conectados al host ESXi seleccionado. Puede hacer doble clic en este elemento para verlas.
Inicio de la importación de máquinas virtuales
- Apague la máquina virtual de origen en el host ESXi antes de iniciar la migración de VMware a Proxmox. Esta acción le permite transferir datos consistentes y evitar conflictos de red si ambos hosts ESXi y Proxmox están conectados a la misma red con el modo bridged para VMs. Elimine las instantáneas de la máquina virtual original antes de iniciar el proceso de migración de la máquina virtual. Anote la configuración de red de la máquina virtual de origen: puede necesitarla después de la migración.
- Seleccione el almacenamiento ESXi en el panel izquierdo de la interfaz web de Proxmox(ESXi31 en este ejemplo). Seleccione el archivo vmx de la VMware VM original que desea importar desde el host ESXi a Proxmox VE. Importaremos Debian12.
Pulsa Importar.
- La herramienta de importación de máquinas virtuales de Proxmox lee la configuración de la máquina virtual ESXi de origen y crea una configuración de hardware idéntica para la nueva máquina virtual. La nueva VM incluirá los discos virtuales importados en el host Proxmox.
Compruebe la configuración VM sugerida y edite algunos ajustes si es necesario en la pestaña General.
- No seleccione la opción Importación en directo. La importación en vivo no es igual a la migración en vivo de VM. Cuando se selecciona esta opción, un host Proxmox inicia la VM de destino cuando estima que se han transferido suficientes datos para iniciar el SO invitado de la VM y continuar con el proceso de migración de la VM.
- Puedes seleccionar la pestaña Avanzado y seleccionar un controlador de disco virtual, opciones de unidad de CD/DVD y opciones para las interfaces de red.
Haga clic en el botón Importar para iniciar la migración de VMware a Proxmox VM.
- Espere a que finalice la migración de la máquina virtual al host Proxmox. Puede seguir el progreso en la ventana emergente. Puede cerrar esta ventana cuando haya terminado.
Como puedes ver, el disco virtual original vmdk fue convertido al formato de disco virtual nativo de Proxmox QEMU llamado qcow2 durante la migración.
- Inicie la máquina virtual migrada en el host Proxmox.
- Desinstale VMware Tools de la máquina virtual migrada a Proxmox. Instale los controladores VirtIO Guest y otro software necesario en una VM.
Conclusión
La migración de VMware a Proxmox VM puede realizarse creando una nueva VM vacía, copiando los discos virtuales de la VM original e importando los discos virtuales a la VM Proxmox. Los discos virtuales pueden copiarse directamente o exportando la máquina virtual original a una plantilla OVF. Proxmox también ha presentado una nueva herramienta para importar máquinas virtuales desde hosts ESXi en la interfaz web, que hace más cómodo el proceso de migración. No olvide realizar copias de seguridad de las máquinas virtuales una vez que las haya migrado a Proxmox VE.
Cuando ejecute migraciones, asegúrese de tener una copia de seguridad reciente de sus máquinas virtuales VMware de origen y empiece a realizar copias de seguridad de las máquinas virtuales Proxmox en cuanto empiece a utilizarlas para producción. NAKIVO Backup & Replication es una solución de copia de seguridad universal que puede utilizar para realizar copias de seguridad de máquinas virtuales VMware ESXi y Proxmox VE.