De VirtualBox a VMWare ESXi

Hace unos días necesité migrar una appliance que tengo corriendo en VirtualBox a un servidor VMWare ESXi 5.

Para lograrlo seguí la siguiente receta:

Desde VirtualBox seleccionamos la opción Archivo –> Exportar servicio virtualizado… .

Luego seleccionamos la VM en cuestión y damos Siguiente.

Le damos un nombre de archivo con extensión .ovf  y marcamos la opción Escribir en formato heredado OVF 0.9.

Esperamos a que el proceso se completen y se generen dos archivos:

  • VM.ovf: un XML con especificaciones de configuración de la máquina.
  • VM-disk1.vmdk: el disco  de la VM.

Lo que resta es hacer una edición del .ovf y modificar algunas cuantas cosas para que VMWare acepte la importación sin problemas:

1) Cambiar el OVF Format

ovf:format="http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized"

2) Cambiar el valor de VirtualSystemType a vmx-7

<vssd:VirtualSystemType>vmx-7</vssd:VirtualSystemType>

3) Reordenar todos los sub elementos de cada elemento <type> en el siguiente orden:

  • Caption
  • Description
  • InstanceId
  • ResourceType
  • ResourceSubType (si existe)

4) Los items CPU y memory tienen el parámetro VirtualQuantity que debe figurar a lo último.

5) Memoria tiene también el parámetro AllocationUnits que debe ir antes de VirtualQuantity.

6) Para ide, scsi y usb, Address va antes de BusNumber.

7) Para los adaptadores de red, AutomaticAllocation y Connection van en ese orden.

8) Parent va primero y AddressOnParent va segundo para los discos y cdroms.

9) Cambiar los controladores SATA por SCSI:

<Item>
     <rasd:Caption>scsiController0</rasd:Caption>
     <rasd:Description>SCSI Controller</rasd:Description>
     <rasd:InstanceId>12</rasd:InstanceId>
     <rasd:ResourceType>6</rasd:ResourceType>
     <rasd:ResourceSubType>lsilogic</rasd:ResourceSubType>
     <rasd:Address>1</rasd:Address>
     <rasd:BusNumber>1</rasd:BusNumber>
 </Item>
10) Y cambiar el parámetro parent de los discos al id de SCSI
<Item>
     <rasd:Caption>disk1</rasd:Caption>
     <rasd:Description>Disk Image</rasd: Description>
     <rasd:InstanceId>11</rasd:InstanceId>
     <rasd:ResourceType>17</rasd:ResourceType>
     <rasd:HostResource>/disk/vmdisk1</rasd:HostResource>
     <rasd:Parent>12</rasd: Parent>
     <rasd:AddressOnParent>0</rasd:AddressOnParent>
 </Item>

Luego de esta edición podemos importar la VM a VMWare desde el cliente vSphere desde el menu File –> Deploy OVF Template.

En caso de algúna omisión o error procederemos a salvarlo volviendo a editar el archivo ovf.

Fuente:

tad-dot.net