Hola Fronters, Gabriel aquí!! En este tutorial aprenderemos como migrar VM creadas en VMWare Workstation a ProxmoxVE 7. El principio de migración de este servidor es similar con Virtualbox, es decir: si tienes una VM en Virtualbox puedes aplicar la misma estrategia y trasladas tu servidor virtualizado de una plataforma a otra sin mayores dificultades, así que, sin más palabras, vamos a ello!!!
Supongamos que tenemos una VM en nuestro VMWare WS y deseamos cambiar nuestro hipervisor de virtualización, debido a que los servicios de virtualización tecnológica de nuestro lab / organización, etc están en ProxmoxVE, no es necesario convertir nuestras VM en formato KVM.
Antes de migrar ten en cuenta esto
Antes de migrar cualquier servidor es importante tomar en cuenta varios factores a considerar:
- Que tengas un hipervisor ProxmoxVE de destino. Para los efectos de este Howto, mi servidor Proxmox tiene la IP: 192.168.16.8.
- Que el hipervisor de destino cuenta con, al menos, la misma cantidad de recursos físicos o si son superiores, pues mucho mejor, dependiendo de la concurrencia y exposición que tendrá este servidor.
- Al momento de restaurar el servidor migrado en el hipervisor de destino, asegurarse de que esté apagado en el nodo de origen, para así evitar colisiones en la red innecesarias y desagradables con otros servidores.
- La adopción de los nombres de interfaces de red te cambiarán, a menos que los hayas restablecido al formato antiguo (lo cual para mí es mucho más práctico y cómodo), así que al migrar, asegúrate de que los nombres de las interfaces de red sean los mismos y los más adecuados.
- Del mismo modo, también relacionado con la red, asegúrate de que tu VM tenga las IP internas / externas bien configuradas. Ya sea que tenga las mismas, o que por el contrario estén en otra subred o VLAN, muy diferente a la actual.
- Que tengas WSL en Windows 10 o un mecanismo intermediario que te permita mover la VM desde el hipervisor VMWare hasta el el ProxmoxVE. En mi caso, para los efectos prácticos, utilizaré WSL y SSH.
Hazte tu checklist y si te falta algo más, agrégalo!
Preparando la VM a migrar desde VMware
Bien, ya comenzando en materia, luego de revisar todas estas consideraciones, entramos en VM WS16 y seleccionamos la VM que vamos a migrar, en este caso yo seleccionaré un servidor virtual que creé con Debian 10, el cual he llamado ServDebian10-2. Este servidor cuenta con 4 GB ram, 4 VCPUs, un HD de 30 GB y una sola interface de red, la cual tiene una IP asignada dinámicamente por mi servidor DHCP.

Click en la opción Edit virtual machine settings.
Revisar la ruta de nuestro Disco virtual en el parámetro Disk file. En mi caso tiene la ruta:
C:\Users\GabrielW\Documents\Virtual Machines\ServDebian10-2\ServDebian10-2.vmdk
Observa bien la extensión del archivo / fichero, termina en .vmdk.

Hasta ahí, todo va bien. que es lo que haremos ahora? Pues entrar desde nuestra terminal con Bash a esa ruta y suponiendo que ya tenemos nuestro hipervisor ProxmoxVE instalado previamente, sólo bastará con ejecutar estos comandos, y así trasladaremos físicamente nuestra VM al hipervisor destinatario, en la ruta:
cd /mnt/c/Users/GabrielW/Documents/Virtual Machines/ServDebian10-2/
NOTA: Sustituye el nombre del usuario y del servidor a migrar por los de tu preferencia:
Luego ejecutamos un SCP para mover el disco virtual hacia el hipervisor de destino:
scp ServDebian10-2.vmdk root@192.168.16.8:/root/

Espera, tu VM tiene snapshots??? Entonces ve aquí antes de avanzar con el tutorial para saber que hacer con ellos!!!
Ahora vamos al hipervisor ProxmoxVE y haremos lo siguiente:
ssh root@192.168.16.8
Entraremos al directorio en el cual están almacenadas las imágenes de nuestras VMs:
cd /var/lib/vz/images/
Crearemos manualmente el directorio con el número de índice correspondiente, de tres (3) números, para que nuestro hipervisor ProxmoxVE pueda indexarla y reconocerla y activarla como VM.
En mi caso le colocaré el nombre de índice 104 y le asignamos los permisos correspondientes para no alterar el correcto funcionamiento de la plataforma:
mkdir 104 chmod 700 104

(Atención!!! Si no sabes como establecer permisos en modo hexadecimal, pronto estaré sacando un Howto de como funciona el sistema de permisologías en sistemas Linux!!! 😉 )
Y moveremos el archivo / fichero que tenemos en /root, que está en formato .vmdk la ruta creada y de una vez le asignaremos un nuevo nombre a ese disco Virtual, de este modo:
mv /root/ServDebian10-2.vmdk 104/vm-104-disk-1.vmdk
Creando nuestra VM en ProxmoxVE
Ahora vamos a nuestro servidor ProxmoxVE y creamos nuestra VM con las especificaciones técnicas necesarias:
Click en el botón Create VM. colocamos el nombre (yo le he colocado el mismo nombre que tenía la VM en VMWare, pero se puede colocar el que tú prefieras), y el número de índice que utilizamos previamente para colocar nuestra VM y luego presionamos Next:

En la pestaña OS, seleccionamos la opción Do not use any media, puesto que no instalaremos nada de sistema operativo, nos estamos trayendo una VM ya hecha. Importante que tenga la versión de sistema operativo y kernel adecuados, para saber como el hipervisor manejará la VM. Presionamos Next:

En la pestaña System, activaremos la casilla Qemu Agent y seleccionamos el controlador SCSI de nuestra preferencia. En mi caso, he dejado el que viene seleccionado por defecto, el VirtIO SCSI. Click en Next:

En Hard Disk seleccionamos el Bus/Device, tamaño de Disco (Disk size) y el formato. En Bus / Device lo dejaremos así por los momentos, porque explicarlo para hacerlo automático quizás sería un poco engorroso y confuso. Establecemos el valor de tamaño de nuestro Disco Duro a 30GB y en el campo Format, seleccionamos VMware image format (vmdk). Click en Next:

En CPU, seleccionamos la cantidad de sockets y cores o núcleos que nos permitirá darle la capacidad de procesamiento necesarios a la VM. He seleccionado 2 sockets y 2 cores, para obtener un total de 4 vCPUs en nuestraVM. Click en Next:

En Memory seleccionamos la cantidad de memoria RAM que tendrá nuestra VM, se asigna en MB como unidad de medida de capacidad. He establecido que tenga 4 GB de RAM (4096). También se le puede asignar un valor mínimo en caso dado existan muchas otras VM recurriendo al uso de RAM. Click en Next:

En Network, selecciono el bridge o puente a través del cual tendrá conectividad la VM migrada, el tipo de interface de red que utilizará y si deseo que esté detrás de un firewall, etc. En este caso irá por el Bridge vmbr0, utilizará la interface de red VirtIO (paravirtualized) y utilizará el firewall. Click en Next:

Por último, en la pestaña Confirm, veremos un resumen con todas las opciones y parámetros que hemos establecido para nuestra VM. Esta vez haremos click en el botón Finish para culminar con la creación de la VM.

Ya creada nuestra VM nueva, procedemos a revisar la pestaña Hardware y una vez estando allí, veremos que nuestro Disco Duro virtual es vm-104-disk-0.vmdk, pero nosotros queremos utilizar el disco virtual con el nombre vm-104-disk-1.vmdk:

Aquí hacemos la magia…
Ya tenemos creada nuestra VM con un disco virtual que creó automáticamente el Proxmox, pero ese disco virtual no es el que hemos migrado. Lo que haremos ahora, vía terminal es eliminar el disco virtual vm-104-disk-0.vmdk, luego cambiar el nombre actual: vm-104-disk-1.vmdk por vm-104-disk-0.vmdk y por último asignarle los permisos adecuados a esa VM.
Si queremos estar seguros de cuales son los permisos adecuados, los comparamos con los creados directamente por Proxmox al momento de crear la VM:
rm vm-104-disk-0.vmdk
mv vm-104-disk-1.vmdk vm-104-disk-0.vmdk
chmod 640 vm-104-disk-0.vmdk
He aquí la secuencia completa de los comandos:

Una vez terminado esto podremos iniciar nuestra VM presionando el botón Play y hacer las adecuaciones internas necesarias en el servidor:
Iniciamos la sesión en el Vncproxy con el usuario y la clave de la VM:

Y comprobamos que tenga conectividad:
ip a
Y listo!!! Hemos migrado nuestra VM de VMware Workstation a ProxmoxVE!!!

THE END!!!…
Pssst… Ya va, y los Snapshots???
Ajá Gabriel!!!, todo muy bello como siempre en los tutoriales y Howtos, pero… Qué pasa cuando esas VMs tienen Snapshots???
Ahhh, sí, los Snapshots suelen ser un dolor de… cabeza!!!, y la verdad las funciones de integración de los mismos al disco virtual no me han servidor para nada, pero yo lo resuelvo de esta manera y funciona:
Ve a la interface del hipervisor VMware –> Manage –> Clone

Nos aparecerá el Clone Virtual Machine Wizard de VMware, hacemos click en Next:

Seleccionamos la primera opción Clone from, que dice The current state in the virtual machine, luego presionamos Next:

Ahora seleccionamos Clone method –> Create a full clone –> Next:

Asígnale un nuevo nombre a la VM y a la ruta de la misma, por la de tu preferencia, y luego empezará a clonar tu Disco virtual .vmdk:


Y continuas el Howto desde aquí.
Pero, si al clonar tu VM en VMware obtienes un error como este:

Ve a la ruta en la cual están los archivos / ficheros de tu servidor y elimina todos aquellos ficheros y directorios que terminen en .lck:

Y repites el proceso de clonación.
Si sale un mensaje diciendo Virtual Disk needs repair o algo similar, inicia la VM y de ser necesario corrige los errores en el sistema de ficheros hasta que todo esté OK y apágala correctamente y luego reintentas clonarla y ya clonará correctamente.
Aquí va…


Y la VM ya está clonada exitosamente!

Y ahora continúas aquí y listo!!! =D
Por favor dime si conoces otra forma de hacerlo en los comentarios, si te gustó o no el tutorial y que otros tutoriales te gustaría que sacara más adelante!
Hasta luego Fronters!!!
Enlaces relacionados