VMWare: Convertir vhdx en vmdk

Cada hipervisor utiliza un sistema de disco virtual distinto. 

Por ejemplo:

- Hyper-V: VHD (Virtual Hard Disk) / VHDX a partir de Windows Server 2012.

- VMWare: VMDK (Virtual Machine Disk)
 
Si somos administradores de infraestructuras virtuales VMWare, nos podemos encontrar con la necesidad de convertir discos virtuales de Hyper-V (vhd / vhdx) a VMWare (vmdk).

Un ejemplo de ello es si queremos implementar NanoServer en nuestra infraestructura VMWare vSphere ESXi.

La creación de una imagen de NanoServer desde PowerShell generará un fichero vhd o vhdx y está pensada para ser montada en una máquina virtual con el rol de Hyper-V.

Si queremos montar el fichero vhd o vhdx en una máquina virtual VMWare sin el rol de Hyper-V, deberemos convertir el fichero vhd o vhdx a vmdk.

Veamos las distintas posibilidades y herramientas para convertir ficheros VHD o VHDX a VMDK:

1) Convertir vhdx en vmdk: VMWare Converter


Si queremos realizar conversiones entre distintos formatos de máquina virtual, la primera herramientas que se nos pasa por la cabeza es utilizar VMWare Converter.

VMWare Converter es una herramienta gratuita que podemos descargar de la web de VMWare y nos permite realizar conversiones P2V (Physical-to-Virtual) y V2V (Virtual-to-Virtual).

VMWare Converter, no permite directamente convertir el tipo de formato de disco de VHD/VHDX a VMDK, pero si máquinas virtuales Hyper-V (con discos VHD/VHDX) a VMWare (con discos VMDK), ya sea VMWare Workstation o VMWare vSphere ESXi.

Por lo tanto: Para convertir un disco VHD/VHDX a VMDK con VMWare Converter, deberemos montar una máquina virtual con Hyper-V, añadir el disco VHD/VHDX y luego convertir la máquina virtual entera a VMWare Workstation o VMWare vSphere ESXi, después de la conversión completa habremos obtenido el fichero VMDK.

VMWare: Convertir vhd en vmdk

Si vamos a utilizar esta herramienta para realizar gran número de conversiones, nos vendrá bien seguir los siguientes consejos:

VMWare: Converter acelerar proceso (SYSADMIT.com)

Por otro lado, en nuestro entorno de laboratorio con VMWare Workstation, si necesitásemos instalar Hyper-V en una máquina virtual, podríamos seguir el siguiente procedimiento:

VMWare Workstation: Instalar Hyper-V (SYSADMIT.com)

2) Convertir vhdx en vmdk: StarWind V2V Image Converter


"StarWind V2V Image Converter" es un software gratuito que funciona sobre Windows y que podemos descargar desde la página web del fabricante. Ocupa apenas 12MB.

Su funcionamiento es muy sencillo: Una vez instalado el software, basta con indicar la ubicación del fichero origen y en la siguiente pantalla del asistente podemos elegir el formato del fichero destino.

Entre los formatos disponibles, encontramos VMDK, tanto para VMWare Workstation o VMWare vSphere ESXi.

VMWare: Convertir vhd en vmdk

3) Convertir vhdx en vmdk: WinImage


"WinImage" es un software de pago que funciona sobre Windows que podemos descargar desde la página web del fabricante.

Al instalar "WinImage", el software será totalmente funcional durante 30 días.

Después de este periodo deberemos comprarlo si queremos continuar usándolo.

"WinImage" no solo está pensado para realizar conversiones entre distintos formatos si no que también es posible editar el interior de los discos virtuales.

Para realizar una conversión, su funcionamiento es muy sencillo: Después de instalar el software y ejecutar el programa, nos dirigimos al menú de opciones y desplegamos: "Disk", a continuación seleccionamos la opción: "Convert Virtual Hard Disk image..."

VMWare: Convertir vhd en vmdk

Seleccionaremos el fichero VHD o VHDX y en la siguiente pantalla indicaremos la ruta y fichero destino VMDK.

4) Convertir vhdx en vmdk: qemu-img


QEMU (Quick EMUlator) es un emulador de máquinas virtuales, puede trabajar el solo pero su rendimiento será muy pobre o bien es capaz de integrarse con varios hipervisores: VirtualBox, Xen-HVM, KVM (Kernel Virtual Machine).

QEMU es gratuito, libre y de código abierto.

Dentro de las utilidades que integra QEMU, podemos encontrar qemu-img, que nos permite realizar tareas administrativas con distintos formatos de discos virtuales.

Entre las tareas administrativas que podemos realizar con qemu-img, encontramos la posibilidad de convertir entre distintos formatos de discos virtuales.

Además, podemos encontrar una implementación gratuita de qemu-img para Windows en:


qemu-img para Windows soporta entre otros, los siguientes formatos como salida en la conversión:

* VMDK (VMware): Indicando el parámetro -O vmdk
* QCOW2 (KVM, Xen): Indicando el parámetro -O qcow2
* VHD (Hyper-V): Indicando el parámetro -O vpc
* VHDX (Hyper-V): Indicando el parámetro -O vhdx
* RAW:  Indicando el parámetro -O raw
* VDI (VirtualBox): Indicando el parámetro -O vdi

La aplicación es totalmente portable así que no requiere instalación y ocupa unos 10MB.

Además qemu-img funciona desde linea de comandos, por lo tanto es muy sencillo automatizar su funcionamiento si quisiéramos realizar conversiones de forma masiva.

Ejecutando qemu-img.exe -h, obtendremos la ayuda de todos los parámetros disponibles:

VMWare: Convertir vhd en vmdk

Ejemplos de uso para la conversión:

- Ver información de un disco virtual VHDX:

C:\qemu-img>qemu-img.exe info C:\SYSADMIT-Image\SYSADMIT-Image.vhdx
image: C:\SYSADMIT-Image\SYSADMIT-Image.vhdx
file format: vhdx
virtual size: 4.0G (4294967296 bytes)
disk size: 932M
cluster_size: 33554432

- Ver información de un disco virtual VMDK:

C:\qemu-img>qemu-img.exe info C:\SYSADMIT-Image\SYSADMIT-Image.vmdk
image: C:\SYSADMIT-Image\SYSADMIT-Image.vmdk
file format: vmdk
virtual size: 4.0G (4294967296 bytes)
disk size: 762M
cluster_size: 65536
Format specific information:
    cid: 3008402275
    parent cid: 4294967295
    create type: monolithicSparse
    extents:
        [0]:
            virtual size: 4294967296
            filename: C:\SYSADMIT-Image\SYSADMIT-Image.vmdk
            cluster size: 65536
            format:

- Convertir de VHDX a VMDK:

C:\qemu-img>qemu-img.exe convert C:\SYSADMIT-Image\SYSADMIT-Image.vhdx -O vmdk C:\SYSADMIT-Image\SYSADMIT-Image.vmdk

- Check de integridad de un disco virtual VHD/VHDX/VMDK:

C:\qemu-img>qemu-img.exe check C:\SYSADMIT-Image\SYSADMIT-Image.vhdx
No errors were found on the image.


- Comparador de imágenes (permite comparar entre distintos formatos de imágenes):

C:\qemu-img>qemu-img.exe compare C:\SYSADMIT-Image\SYSADMIT-Image.vhdx C:\SYSADMIT-Image\SYSADMIT-Image.vmdk
Images are identical.

Finalmente, con qemu-img, también podemos crear, eliminar snapshots etc así como reparar un disco virtual.

"Copiar-pegar" extraído de la ayuda:

Parameters to check subcommand:

  '-r' tries to repair any inconsistencies that are found during the check.'-r leaks' repairs only cluster leaks, whereas '-r all' fixes all kinds of errors, with a higher risk of choosing the wrong fix or hiding corruption that has already occurred.

Parameters to snapshot subcommand:
  'snapshot' is the name of the snapshot to create, apply or delete
  '-a' applies a snapshot (revert disk to saved state)
  '-c' creates a snapshot
  '-d' deletes a snapshot
  '-l' lists all snapshots in the given image

6 comentarios:

  1. La verdad que muy bueno y completo el articulo!
    Nunca te ha pasado de que los convertidores como vconverter y xenconverter te detecten particiones como 'desconocidas' al momento de convertir de P2V?

    ResponderEliminar
    Respuestas
    1. Hola Lucas,

      ¡Muchas gracias!

      Te contesto:

      Sí, todo y que hace bastante tiempo que no hago P2V.

      Contra ese problema, puedes intentar hacer una imagen del equipo físico con algún formato que después lo lea el Converter.

      Por ejemplo, hacer una imagen con Acronis y generar un TIB, luego usar el converter para pasar a ESXi.

      ¡Un saludo!

      Xavi.

      Eliminar
  2. Un método que me ha funcionado, y que me ha servidor para pasar un disco de HyperV 2012 a Esxi 5.5 es usando la herramienta de VirtualBox:

    C:\Program Files\Oracle\VirtualBox>.\VBoxManage.exe clonemedium C:\temp\HVDX.vhdx C:\temp\VDI.vmdk --format VMDK

    ResponderEliminar
  3. Muito obrigado, me ajudou q resolver um problema.

    ResponderEliminar