Problema
Muchas organizaciones gestionan cientos de servidores con VMware ESXi instalados en medios de arranque reducidos (SD, USB) y almacenan sus máquinas virtuales en arrays locales RAID. Cuando el coste del licenciamiento o la necesidad de una plataforma más abierta se vuelve crítico, surge la necesidad de migrar esas VMs a Proxmox VE. El reto típico es hacerlo sin añadir hardware temporal, sin acceso físico y manteniendo una vía de reversión que permita volver a ESXi en minutos si algo falla. Además, la migración debe ejecutarse en ventanas de mantenimiento nocturnas, usando únicamente la infraestructura existente (NAS de backups, red corporativa y los propios hosts).
Causa
- Dependencia del arranque local – ESXi en tarjetas SD impide arrancar un hipervisor alternativo en el mismo nodo sin re‑flashear.
- Almacenamiento local RAID5 – Los discos están configurados como un único datastore; moverlos a otro hipervisor requiere copiar o convertir los discos virtuales.
- Ausencia de host de salto – No hay un servidor intermedio disponible para alojar herramientas de conversión o para actuar como proxy Veeam.
- Necesidad de rollback rápido – En entornos con pocos VMs por host, cualquier error que impida el arranque de una VM afecta a los servicios críticos, por lo que la reversión debe ser casi instantánea.
- Backups centralizados en NAS – La única copia fiable de los datos está en un NAS accesible por red; cualquier proceso de migración debe aprovechar ese punto de restauración.
Solución
1. Preparar Proxmox en el mismo nodo
- Re‑flashear la SD con la ISO de Proxmox VE (compatible con el hardware Dell R440).
- Configurar la red idéntica a la de ESXi (mismo VLAN, IP estática o DHCP según política).
- Crear un storage local (por ejemplo,
local-lvm) y un storage NFS apuntando al NAS de backups. El NFS será el punto de entrada para los archivos VMDK/OVF.
No es necesario provisionar un segundo servidor; el propio nodo será el destino y el origen de la migración.
2. Exportar VMs desde Veeam
Veeam Backup & Replication permite “Restore to Hypervisor” directamente a Proxmox, pero requiere un proxy que pueda montar el datastore de destino. La forma más ligera es crear una VM temporal en Proxmox (Ubuntu Server 22.04, 2 vCPU, 2 GB RAM) y usarla como proxy.
Pasos:
- En Veeam, crear un Backup Copy Job que mantenga la última copia en el NAS.
- Seleccionar la VM, elegir Restore to → Hypervisor → Proxmox (seleccionar la IP del proxy).
- Veeam enviará los discos VMDK al proxy y los depositará en el share NFS configurado.
3. Convertir discos VMDK a formato QCOW2 o RAW
Si se prefiere evitar el proxy, se pueden descargar los VMDK al NAS y convertirlos directamente en Proxmox:
# Montar el share NFS (asumiendo /mnt/backup)
mount -t nfs nas_ip:/export/veeam /mnt/backup
# Convertir VMDK a RAW (más rápido para importdisk)
qemu-img convert -f vmdk -O raw /mnt/backup/vm_101.vmdk /var/lib/vz/images/101/vm-101-disk-0.raw
4. Importar discos a Proxmox
Con el disco ya en RAW (o QCOW2) usar qm importdisk para crear el disco virtual en el storage deseado:
qm create 101 --name vm101 --memory 4096 --net0 virtio,bridge=vmbr0
qm importdisk 101 /var/lib/vz/images/101/vm-101-disk-0.raw local-lvm
qm set 101 --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-101-disk-0
qm set 101 --boot c --bootdisk scsi0
5. Ajustes post‑importación
- Verificar que la controladora de disco coincida con la que usaba la VM en ESXi (por lo general
lsilogic→virtio-scsi). - Adaptar la configuración de red (MAC, VLAN) para que la VM recupere su dirección IP sin conflicto.
- Instalar los drivers de virtio dentro del SO invitado si aún no están presentes (Linux suele detectarlos automáticamente; Windows necesita los drivers de la ISO de Proxmox).
6. Prueba y validación
Arrancar la VM en Proxmox, comprobar logs, conectividad y rendimiento. Si todo funciona, marcar la VM como productiva y proceder con la siguiente.
7. Estrategia de rollback
- Mantener la SD de ESXi intacta: antes de flashear, crear una copia de la tarjeta SD (por ejemplo, usando
dda una imagen en el NAS). En caso de fallo, restaurar la imagen y volver a arrancar ESXi en segundos. - Snapshots de Proxmox: antes de iniciar la VM, crear un snapshot (
qm snapshot 101 pre‑test). Si la VM no arranca, revertir al snapshot y, si el problema persiste, volver a ESXi. - Backup de Veeam: la copia en el NAS sigue siendo la fuente de verdad; se puede restaurar la VM directamente a ESXi usando la misma funcionalidad “Restore to Hypervisor”.
8. Automatización opcional
Para cientos de nodos, envolver los pasos anteriores en un script Ansible o Terraform que:
- Despliegue Proxmox en la SD.
- Monte el NFS y ejecute
qemu-imgyqm importdisk. - Registre resultados en un inventario central.
Esto reduce el tiempo de ventana de mantenimiento a minutos por nodo.
Cuándo aplicar esta solución
- Entornos con pocos VMs por host (1‑4) donde el tiempo de inactividad es crítico.
- Infraestructura sin host de salto: la solución usa una VM ligera como proxy o la propia conversión en el nodo.
- Backups centralizados en NAS y disponibilidad de Veeam o de los archivos VMDK.
- Necesidad de rollback inmediato: la copia de la SD y los snapshots garantizan una reversión en menos de 5 minutos.
No es adecuada cuando:
- Los discos están en SAN con LUNs exclusivas de ESXi (requiere acceso a la SAN desde Proxmox).
- Se necesita migrar cientos de VMs simultáneamente; la conversión manual se vuelve impráctica y conviene usar herramientas de replicación en tiempo real.
- El hardware no soporta arranque desde USB/SD con Proxmox (aunque la mayoría de servidores Dell R440 sí lo hacen).
Código
# Montar NFS del NAS
mount -t nfs 10.0.0.20:/veeam_backups /mnt/backup
# Convertir VMDK a RAW
qemu-img convert -f vmdk -O raw /mnt/backup/vm_202.vmdk /var/lib/vz/images/202/vm-202-disk-0.raw
# Crear VM en Proxmox
qm create 202 --name web01 --memory 8192 --net0 virtio,bridge=vmbr0
# Importar disco RAW al storage local-lvm
qm importdisk 202 /var/lib/vz/images/202/vm-202-disk-0.raw local-lvm
# Asignar disco y configurar arranque
qm set 202 --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-202-disk-0
qm set 202 --boot c --bootdisk scsi0
# Crear snapshot antes de pruebas
qm snapshot 202 pre-test
Verificación
- Estado del VM:
qm status 202debe devolverrunning. - Conectividad: ping a la IP esperada, comprobar rutas y firewall.
- Integridad de discos: comparar hashes del archivo RAW con el VMDK original (
sha256sum). - Logs del SO invitado: revisar
dmesgyjournalctlpara errores de controlador virtio. - Prueba de carga: ejecutar una carga representativa (por ejemplo, una petición HTTP) y medir latencia.
Si cualquiera de los puntos falla, revertir al snapshot (qm rollback 202 pre-test) o restaurar la SD de ESXi y volver a arrancar el nodo.
Notas adicionales
- RAID5 en producción es vulnerable a una segunda falla de disco; asegúrese de que los backups estén al día antes de iniciar la migración.
- Ancho de banda entre el NAS y los nodos puede ser el cuello de botella; programe la copia de discos fuera de horas pico.
- Drivers virtio: para Windows, montar la ISO de Proxmox (
/usr/share/pve-manager/iso/virtio-win.iso) y ejecutar el instalador de drivers antes del primer arranque. - Licenciamiento Veeam: la funcionalidad “Restore to Hypervisor” está disponible