Hola queridos lectores, hoy vamos a migrar una máquina virtual de VMware ESXi a Proxmox VE.
Hoy no estamos trabajando en nuestro entorno de laboratorio sino en el entorno de producción. Hemos programado un tiempo de inactividad para este proceso de migración. Estamos migrando un servidor NTP virtual de nuestro antiguo ESXi al nuevo Proxmox Cluster.
Preparación para la migración
Tenemos una matriz de discos RAID5 como almacén de datos para nuestro antiguo hipervisor ESXi y almacenamiento replicado Gluster FS como almacenamiento compartido en Proxmox Cluster. Sabemos que VMware ESXi almacena discos de VM en formato de imagen VMDK y para Proxmox necesitamos el formato de imagen de disco QCOW2. Entonces, cambiaremos el formato de imagen de VMDK a QCOW2. Para obtener más información sobre Proxmox, puede visitar nuestras otras publicaciones sobre Proxmox.
Podemos importar directamente el disco de VMware a Proxmox Hypervisor, pero utilizará el tamaño de disco completo asignado para la imagen del disco virtual. Importar la imagen del disco como aprovisionamiento delgado ahorraría algo de espacio en disco y nos permitiría comprometer demasiado espacio en disco entre máquinas virtuales.
Para importar un disco de máquina virtual con aprovisionamiento delgado y eliminar el espacio de disco innecesario utilizado por la imagen de disco, usaremos otro host de virtualización CentOS intermedio con la utilidad qemu-img y la herramienta de compresión virt-sparsify, pigz instalada en él.
En este artículo realizamos todas las operaciones desde la interfaz de línea de comandos. Por lo tanto, necesitaremos acceso de shell para los 3 hosts. Para habilitar el acceso SSH en VMware ESXi, consulte este documento. También necesitaremos permitir que el cliente SSH utilice archivos de imagen de disco SCP desde el host ESXi; vaya a Redes -> Reglas de firewall -> Cliente SSH en el portal de host ESXi. Haga clic en Acciones y luego en Habilitar.
Preparación de la imagen de disco de VMware ESXi
Identifique la máquina virtual de destino dentro de ESXi.
# vim-cmd vmsvc/getallvms
O use grep para filtrar salidas innecesarias
# vim-cmd vmsvc/getallvms | grep -i ntp
Aquí encontramos que la ID de la VM es 19 y su archivo de configuración se encuentra dentro de datastore2/NTP-1 directorio.
Ahora apague la máquina virtual de destino y verifique el estado de energía de la VM
# vim-cmd vmsvc/power.getstate 19
Navegue al directorio de VM y determine el nombre del disco virtual
VMware utiliza el formato de imagen de disco VMDK para almacenar datos. En ESXi, utiliza un archivo de metadatos y nombres de imagen de disco reales como IMAGENAME-flat.vmdk. Aquí encontramos que tenemos esos 2 archivos, NTP-1.vmdk (metadatos) y NTP-1-flat.vmdk.
Como el disco virtual NTP-1-flat.vmdk tiene un tamaño mayor, vamos a comprimirlo para que no nos cueste más tiempo transferir datos de ESXi al host CentOS.
# pigz -v -1 -k -p8 NTP-1-flat.vmdk
Nota:si tiene conexiones de red de alta velocidad entre servidores, puede omitir la compresión.
Después de completar la compresión, SCP la imagen de disco comprimida y el archivo de metadatos a nuestro host de virtualización de CentOS intermedio para convertir y dispersar la imagen de disco.
Convierta VMDK a QCOW2 y disperse la imagen de disco QCOW2
Para convertir la imagen de disco de formato VMDK a QCOW2 necesitaremos qemu-img utilidad que debe estar preinstalada en el host de CentOS Virtualizations. También puede instalarlo con el siguiente comando
# yum install -y qemu-img
Navegue al directorio de imagen de disco y descomprima el archivo de imagen de disco
# pigz -v -d NTP-1-flat.vmdk.gz
Convertir formato de archivo de VMKD a QCOW2
# qemu-img convert -p -O qcow2 NTP-1.vmdk NTP-1.qcow2
Instale virt-sysprep herramientas en el host de CentOS
# yum install -y /usr/bin/virt-sysprep
Para evitar el problema del tamaño del directorio temporal, estamos creando un tmp directorio dentro de nuestros vmdata directorio y permisos completos para todos los usuarios
# mkdir /vmdata/tmp # chmod 777 -R tmp
Esparza el archivo de imagen de disco con formato qcow2
# virt-sparsify --tmp tmp --compress NTP-1.qcow2 ntp-1-sparsed.qcow2
Cargue el nuevo archivo de imagen de disco disperso en Proxmox VE Host
Implementar VM en Proxmox VE desde una imagen de disco QCOW2 existente
Creemos una VM en Proxmox VE
qm create 120 --name ntp-1 \ --sockets 1 --cores 2 --vcpus 2 --cpu host \ --memory 4096 \ --ostype l26 --arch x86_64 \ --agent enabled=1 \ --scsihw virtio-scsi-pci \ --bootdisk scsi0 \ --boot c
Aquí 120 es la ID de VM en Proxmox
Importe la imagen de disco ntp-1-sparsed.qcow2 a la VM
# qm importdisk 120 /path/to/image/ntp-1-sparsed.qcow2 glusterFSname --format=qcow2 # qm set 120 --scsi0 glusterFSname:120/vm-120-disk-0.qcow2
Configurar redes para la VM
# qm set 120 --net0 model=virtio,bridge=vmbr0,firewall=1,tag=10
Aquí hemos usado la ID de VLAN 10 para la LAN del servidor, use su ID de VLAN para el tipo de puerto de conmutador etiquetado/troncal.
Verificar configuración de máquina virtual
# qm config 120
Inicie la máquina virtual
# qm start 120
Eso es todo, su VM se migró con éxito de VMware ESXi a Proxmox VE.