2011-11-23 00:28:07 +0000 2011-11-23 00:28:07 +0000
314
314

¿Qué imagen de disco debo usar con VirtualBox, VDI, VMDK, VHD o HDD?

Las últimas versiones de VirtualBox soportan varios formatos de discos virtuales, pero se olvidaron de proporcionar una comparación entre ellos.

  • VDI
  • VMDK
  • VHD
  • HDD

Ahora, estoy interesado en una recomendación o comparación que considere lo siguiente:

  • poder usar el dimensionamiento dinámico
  • poder tener instantáneas
  • poder mover mi máquina virtual a otro SO o incluso a otra solución de virtualización libre con un mínimo esfuerzo (probablemente algo que funcionaría bien en Ubuntu).
  • rendimiento

Respuestas (11)

224
224
224
2012-06-22 20:33:51 +0000

VirtualBox tiene

  • soporte completo para
  • VDI
  • VMDK
  • VHD
  • soporte parcial para
  • HDD (sólo en la versión 2 de Parallels)
  • y soporte no documentado para
  • QCOW
  • QED

Source: Manual del usuario de Oracle® VM VirtualBox® Capítulo 5. Almacenamiento virtual 5.2. Archivos de imagen de disco (VDI, VMDK, VHD, HDD)


Respondiendo a sus consideraciones

  • ser capaz de usar el dimensionamiento dinámico

VDI , VMDK, y VHD todo el apoyo de almacenamiento asignado dinámicamente. VMDK tiene una capacidad adicional de dividir el archivo de almacenamiento en archivos de menos de 2 GB cada uno, lo cual es útil si su sistema de archivos tiene un límite de tamaño de archivo pequeño.

HDD , QCOW , y QED tienen que ser asignados dinámicamente si se crean en VirtualBox.

  • ser capaz de tener instantáneas

VirtualBox soporta instantáneas de los seis formatos.

  • ser capaz de mover mi máquina virtual a otro SO o incluso a otra solución de virtualización libre con un mínimo esfuerzo (probablemente algo que funcionaría bien en Ubuntu).

VDI es el formato nativo de VirtualBox. Otros software de virtualización generalmente no soportan VDI, pero es bastante fácil convertir de VDI a otro formato, especialmente con qemu-img convert .

VMDK es desarrollado por y para VMWare, pero VirtualBox y QEMU (otro software de virtualización común) también lo soportan. Este formato puede ser la mejor opción para ti porque quieres una amplia compatibilidad con otro software de virtualización._

VHD es el formato nativo de Microsoft Virtual PC. Windows Server 2012 introdujo VHDX como el sucesor de VHD, pero VirtualBox no soporta VHDX.

HDD es un formato para Parallels . Parallels se especializa en la virtualización para MacOS. Esto probablemente no es adecuado para usted, especialmente considerando que VirtualBox sólo soporta una versión antigua del formato HDD._

QCOW es la versión original antigua del formato qcow. Ha sido reemplazado por qcow2, el cual VirtualBox no soporta.

QED fue una mejora abandonada de qcow2. QEMU aconseja no usar QED.

  • performance

Cada uno de los formatos puede tener características de rendimiento matizadas debido a la forma en que el almacenamiento del bloque es abstraído por el formato, pero no he encontrado ningún punto de referencia que compare los formatos soportados por VirtualBox.

Hay factores más grandes que influyen en el rendimiento, como:

  • las limitaciones de su dispositivo físico (mucho más notorias en un disco duro que en una unidad de estado sólido *¿Por qué? * )
  • la expansión de una unidad de disco virtual asignada dinámicamente (las operaciones de escritura son más lentas a medida que el disco virtual se expande, pero una vez que es lo suficientemente grande, la expansión debería ocurrir menos)
  • la tecnología de virtualización hardware vs. software ; la virtualización del hardware ayuda a VirtualBox y mejora la velocidad de los sistemas operativos virtuales)
  • el hecho de que esté ejecutando un sistema operativo virtual. El rendimiento es siempre más lento que ejecutar un sistema operativo en el host debido a la sobrecarga de la virtualización.
40
40
40
2012-06-22 20:58:21 +0000

Siempre uso VDI, ya que es el formato nativo de VirtualBox; sin embargo, usar un VMDK (formato VMWare) aumentará la compatibilidad con otro software de máquina virtual.

VirtualBox funcionará bien en Ubuntu, así que si el objetivo es la interoperabilidad Windows/Ubuntu, VDI sería una opción perfectamente válida.

Ambos formatos cumplirán con sus requerimientos.

Como para los otros dos, VHD es un formato desarrollado por Microsoft, y HDD es un formato desarrollado por Apple; ambos tienen licencia propietaria, así que limita el soporte entre plataformas; no los recomendaría.

18
18
18
2014-05-08 14:20:12 +0000

Mpack, explica una diferencia clave de rendimiento entre VHD y VDI aquí:

Habiendo estudiado recientemente el formato VHD, esperaría que hubiera al menos una pequeña diferencia a favor de VDIs, más notable cuando se compara como con como, es decir, un VDI optimizado vs. VHD optimizado. La razón es que el formato dinámico VHD tiene estos sectores de “mapa de bits” dispersos por todo el disco. Cada vez que se modifica un sector dentro de un bloque, estos bloques de mapa de bits pueden necesitar ser actualizados y escritos también, lo que implica una búsqueda, lectura y escritura adicionales. Estos sectores de mapa de bits también tienen que ser salteados cuando se leen clusters consecutivos de una imagen de disco - más búsquedas. El formato VDI no tiene estas sobrecargas, especialmente si el VDI ha sido optimizado (bloques en el disco virtual ordenados en orden LBA).

Todos mis comentarios se aplican al formato dinámico VHD vs. VDI dinámico. Las pruebas de rendimiento en discos virtuales de tamaño fijo no tienen sentido ya que ambos formatos son entonces los mismos (sólo una imagen simple de un disco), sólo que tienen diferentes encabezados en ellos. https://forums.virtualbox.org/viewtopic.php?f=1&t=22688

5
5
5
2012-07-03 21:22:00 +0000

No sé si el uso de vmdk le permitiría ejecutar de forma transparente una máquina virtual creada en VirtualBox en VMware o no. Podría ser. Sin embargo, una opción más universal podría ser utilizar la función de Exportación de Archivos de VirtualBox para crear un archivo .ova de “Open Virtualization Appliance” que luego puede ser importado a VMware. Con ese enfoque, se puede portar a cualquier sistema de virtualización que admita .ova sin importar el formato de imagen de disco que se utilice en VirtualBox.

Si se necesita exportar desde el mismo VM a intervalos regulares, por ejemplo, todos los días, eso podría ser una molestia. Pero si sólo se cambia a una tecnología diferente ocasionalmente, debería estar bien.

Si ya tiene un archivo .vdi, puede probar si funciona sin tener que crear una nueva máquina virtual. Expórtalo a un .ova, y luego intenta importarlo con vmware.

5
5
5
2015-01-08 04:33:15 +0000

Depende de cómo planees usar el disco virtual también. No todas las VM quieren una sola partición en un solo disco.

VDI parece tener más opciones (cuando se usa con VirtualBox), pero tan pronto como quitas a VirtualBox del cuadro, el soporte para VDI se vuelve algo inestable (a partir de finales de 2014).

Por ejemplo, mis soluciones necesitan tener el máximo soporte multi-plataforma. Montar un VDI (como un dispositivo de loopback) en linux o Windows 7 es más difícil y problemático de lo que se podría esperar. Casi como si la VDI tuviera demasiadas características, lo que dificulta la creación de utilidades totalmente conformes que puedan operar en ella.

VMDK es simplemente IMHO menos indoloro cuando se quiere que funcione con cualquier VM en cualquier estación de trabajo, cuando se quiere clonar 3 veces a otros sistemas en la red al mismo tiempo, y cuando se quiere abrirlo sin lanzar una instancia VM.

Aunque uso VirtualBox el 90% del tiempo, esas pocas veces en que mis discos se vuelven inaccesibles en ciertos flujos de trabajo me han llevado a favorecer VMDK para sistemas de archivos enchufables/compartidos.

5
5
5
2015-11-28 18:23:51 +0000

Los archivos de imagen de disco residen en el sistema anfitrión y son vistos por los sistemas invitados como discos duros de cierta geometría. Cuando un sistema operativo invitado lee o escribe en un disco duro, VirtualBox redirige la solicitud al archivo de imagen.

Como un disco físico, un disco virtual tiene un tamaño (capacidad), que debe ser especificado cuando se crea el archivo de imagen. Sin embargo, a diferencia de un disco físico, VirtualBox permite expandir un archivo de imagen después de la creación, incluso si ya tiene datos; VirtualBox soporta cuatro variantes de archivos de imagen de disco:

VDI: Normalmente, VirtualBox utiliza su propio formato de contenedor para discos duros huéspedes – archivos de imagen de disco virtual (VDI). En particular, este formato se utilizará cuando se cree una nueva máquina virtual con un nuevo disco.

VMDK:VirtualBox también soporta completamente el popular y abierto formato contenedor VMDK que es utilizado por muchos otros productos de virtualización, en particular, por VMware. [25]

VHD:VirtualBox también soporta completamente el formato VHD usado por Microsoft.

Archivos de imagen de la versión 2 de Parallels (formato HDD) también son soportados.[26] Por falta de documentación del formato, los formatos más nuevos (3 y 4) no son soportados. No obstante, puede convertir dichos archivos de imagen al formato de la versión 2 utilizando las herramientas proporcionadas por Parallels.

4
4
4
2015-01-30 15:13:42 +0000

Una buena razón para mí para usar vmdk es que Virtualbox (al menos hasta v4.1) usando el formato VDI tiene la tendencia, con el tiempo, de llenar todo el espacio de disco asignado, aunque el uso interno del disco virtual es todavía mucho menor. Con Virtualbox usando discos vmdk, esto parece menos problemático.

Pero estoy hablando de años de tiempo de funcionamiento. Esto podría no ser un problema que mucha gente encuentre.

3
3
3
2016-11-19 00:23:59 +0000

Parece que el uso de VDI hace posible recortar el archivo de disco a su tamaño real VirtualBox y SSD’s TRIM command support

2
2
2
2017-09-21 15:41:54 +0000

Acabo de migrar un VMDK en bruto, que fue mapeado a una partición de un Transcend SSD370 128 GB a un Samsung Pro 850 512 GB.

Aparentemente VMDK es mucho más rápido que VDI. No entiendo por qué, tal vez cometí un error en algún lugar.

Copié el VMDK a través del Virtual Media Manager en el 850. Una vez como VDI, una vez como VMDK.

Luego corrí hdparm -tT --direct /dev/sda en las imágenes. Para cada una de las “corridas” cambié el “Máquina -> Ajustes -\N- Almacenamiento -\N- Controlador SATA -\N- Archivo de Imagen.xxx”. La partición en bruto en el SSD370 fue definida por un archivo VMDK, por lo que no es realmente una imagen.

Estos son los resultados:

################################################################################################

Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-96-generic x86_64)

  System information as of Thu Sep 21 17:02:51 CEST 2017

  System load: 1.96 Processes: 201
  Usage of /: 83.2% of 43.88GB Users logged in: 0
  Memory usage: 4% IP address for eth0:    
  Swap usage: 0% IP address for docker0: 172.17.0.1

################################################################################################

======================================================================================
      V M D K --- R A W !!! --- on Transcend SSD370 128 GB
======================================================================================

 Timing O_DIRECT cached reads: 1024 MB in 2.00 seconds = 511.61 MB/sec <---
 Timing O_DIRECT disk reads: 1134 MB in 3.00 seconds = 377.88 MB/sec <---

 Timing O_DIRECT cached reads: 1042 MB in 2.00 seconds = 520.82 MB/sec <---
 Timing O_DIRECT disk reads: 1162 MB in 3.00 seconds = 387.27 MB/sec <---

---

 Timing O_DIRECT cached reads: 816 MB in 2.00 seconds = 407.55 MB/sec
 Timing O_DIRECT disk reads: 1020 MB in 3.01 seconds = 339.43 MB/sec <---

======================================================================================
      V M D K --- on Samsung Pro 850 515GB
======================================================================================

 Timing O_DIRECT cached reads: 836 MB in 2.00 seconds = 417.21 MB/sec <---
 Timing O_DIRECT disk reads: 782 MB in 3.01 seconds = 260.21 MB/sec

 Timing O_DIRECT cached reads: 834 MB in 2.00 seconds = 416.08 MB/sec
 Timing O_DIRECT disk reads: 786 MB in 3.00 seconds = 261.71 MB/sec

---

 Timing O_DIRECT cached reads: 826 MB in 2.00 seconds = 412.75 MB/sec <---
 Timing O_DIRECT disk reads: 774 MB in 3.00 seconds = 257.79 MB/sec

 Timing O_DIRECT cached reads: 828 MB in 2.00 seconds = 413.88 MB/sec <---
 Timing O_DIRECT disk reads: 774 MB in 3.00 seconds = 257.83 MB/sec

---

 Timing O_DIRECT cached reads: 842 MB in 2.00 seconds = 420.76 MB/sec <---
 Timing O_DIRECT disk reads: 770 MB in 3.00 seconds = 256.56 MB/sec

======================================================================================
      V D I --- on Samsung Pro 850 515GB
======================================================================================

 Timing O_DIRECT cached reads: 470 MB in 2.01 seconds = 234.21 MB/sec <---
 Timing O_DIRECT disk reads: 766 MB in 3.00 seconds = 254.94 MB/sec

 Timing O_DIRECT cached reads: 494 MB in 2.00 seconds = 246.45 MB/sec <---
 Timing O_DIRECT disk reads: 754 MB in 3.00 seconds = 250.92 MB/sec

 Timing O_DIRECT cached reads: 490 MB in 2.00 seconds = 244.46 MB/sec <---
 Timing O_DIRECT disk reads: 764 MB in 3.01 seconds = 254.03 MB/sec

################################################################################################
# Data above comes from here
################################################################################################

======================================================================================
      V M D K --- on Samsung Pro 850 515GB
======================================================================================

  System information as of Thu Sep 21 17:02:51 CEST 2017

user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
 Timing O_DIRECT cached reads: 836 MB in 2.00 seconds = 417.21 MB/sec <======
 Timing O_DIRECT disk reads: 782 MB in 3.01 seconds = 260.21 MB/sec <======

user@xeon:~$ sudo hdparm -tT /dev/sda
/dev/sda:
 Timing cached reads: 21080 MB in 2.00 seconds = 10554.40 MB/sec
 Timing buffered disk reads: 784 MB in 3.00 seconds = 260.92 MB/sec

user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
 Timing O_DIRECT cached reads: 834 MB in 2.00 seconds = 416.08 MB/sec <======
 Timing O_DIRECT disk reads: 786 MB in 3.00 seconds = 261.71 MB/sec <======

======================================================================================
      V M D K --- R A W !!! --- on Transcend SSD370 128 GB
======================================================================================

  System information as of Thu Sep 21 17:00:47 CEST 2017

user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
 Timing O_DIRECT cached reads: 1024 MB in 2.00 seconds = 511.61 MB/sec <======
 Timing O_DIRECT disk reads: 1134 MB in 3.00 seconds = 377.88 MB/sec <======

user@xeon:~$ sudo hdparm -tT /dev/sda
/dev/sda:
 Timing cached reads: 21182 MB in 2.00 seconds = 10603.52 MB/sec
 Timing buffered disk reads: 1060 MB in 3.00 seconds = 352.91 MB/sec

user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
 Timing O_DIRECT cached reads: 1042 MB in 2.00 seconds = 520.82 MB/sec <======
 Timing O_DIRECT disk reads: 1162 MB in 3.00 seconds = 387.27 MB/sec <======

======================================================================================
      V M D K --- on Samsung Pro 850 515GB
======================================================================================

  System information as of Thu Sep 21 16:58:12 CEST 2017

user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
 Timing O_DIRECT cached reads: 826 MB in 2.00 seconds = 412.75 MB/sec <======
 Timing O_DIRECT disk reads: 774 MB in 3.00 seconds = 257.79 MB/sec <======

user@xeon:~$ sudo hdparm -tT /dev/sda
/dev/sda:
 Timing cached reads: 22082 MB in 2.00 seconds = 11055.78 MB/sec
 Timing buffered disk reads: 788 MB in 3.01 seconds = 262.11 MB/sec

user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
 Timing O_DIRECT cached reads: 828 MB in 2.00 seconds = 413.88 MB/sec <======
 Timing O_DIRECT disk reads: 774 MB in 3.00 seconds = 257.83 MB/sec <======

======================================================================================
      V D I --- on Samsung Pro 850 515GB
======================================================================================

  System information as of Thu Sep 21 16:55:24 CEST 2017

user@xeon:~$ sudo hdparm -tT /dev/sda
/dev/sda:
 Timing cached reads: 21468 MB in 2.00 seconds = 10747.37 MB/sec
 Timing buffered disk reads: 662 MB in 3.01 seconds = 220.12 MB/sec

user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
 Timing O_DIRECT cached reads: 470 MB in 2.01 seconds = 234.21 MB/sec <======
 Timing O_DIRECT disk reads: 766 MB in 3.00 seconds = 254.94 MB/sec <======

user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
 Timing O_DIRECT cached reads: 494 MB in 2.00 seconds = 246.45 MB/sec <======
 Timing O_DIRECT disk reads: 754 MB in 3.00 seconds = 250.92 MB/sec <======

user@xeon:~$ sudo hdparm -tT /dev/sda
/dev/sda:
 Timing cached reads: 20872 MB in 2.00 seconds = 10448.98 MB/sec
 Timing buffered disk reads: 694 MB in 3.01 seconds = 230.78 MB/sec

user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
 Timing O_DIRECT cached reads: 490 MB in 2.00 seconds = 244.46 MB/sec <======
 Timing O_DIRECT disk reads: 764 MB in 3.01 seconds = 254.03 MB/sec <======

======================================================================================
      V M D K --- on Samsung Pro 850 515GB
======================================================================================

  System information as of Thu Sep 21 16:52:32 CEST 2017

user@xeon:~$ sudo hdparm -tT /dev/sda
/dev/sda:
 Timing cached reads: 20872 MB in 2.00 seconds = 10448.90 MB/sec
 Timing buffered disk reads: 764 MB in 3.01 seconds = 254.11 MB/sec

user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
 Timing O_DIRECT cached reads: 842 MB in 2.00 seconds = 420.76 MB/sec <======
 Timing O_DIRECT disk reads: 770 MB in 3.00 seconds = 256.56 MB/sec <======

======================================================================================
      V M D K --- R A W !!! --- on Transcend SSD370 128 GB
======================================================================================

  System information as of Thu Sep 21 16:29:55 CEST 2017

user@xeon:~$ sudo hdparm -tT /dev/sda
/dev/sda:
 Timing cached reads: 22034 MB in 2.00 seconds = 11029.82 MB/sec
 Timing buffered disk reads: 990 MB in 3.00 seconds = 329.68 MB/sec

user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
 Timing O_DIRECT cached reads: 816 MB in 2.00 seconds = 407.55 MB/sec <======
 Timing O_DIRECT disk reads: 1020 MB in 3.01 seconds = 339.43 MB/sec <======

Realmente no sé cómo interpretar esto, tal vez alguien quiera dejar un comentario al respecto. Entonces elegí el VMDK.

2
2
2
2017-08-02 18:14:46 +0000

El VDI es mucho más fácil de compactar si el VM crece demasiado.

1
1
1
2018-06-12 08:27:14 +0000

Hace mucho tiempo hice una prueba, convertir vdi dinámico en vhd dinámico sólo para probar la velocidad y el tamaño de los archivos.

Recuerde que era una instalación inmutable de Windows guest clean os con algunas aplicaciones, recuerde que para mi prueba convertí un formato a otro, por lo que se supone que ambos tienen la misma imagen exacta, como hacer una clonación.

Para un disco de 64GiB, el tamaño del archivo VDI era de alrededor de 18GiB, mientras que el tamaño del archivo VHD era de alrededor de 22GiB.

Recuerdo que vi estas dos cosas:

  1. El tiempo de arranque fue significativamente diferente, si no recuerdo mal, VHD fue 1.6 veces más rápido que VDI
  2. El tamaño de VHD era mucho mayor que el de VDI, alrededor de 4GiB gigabytes más grande que un 18GiB, por lo que era 1,2 veces más grande.

Eso fue hace mucho tiempo y la prueba se hizo en un disco duro, pero me aseguro de que ambos archivos fueron desfragmentados y uno al lado del otro en la parte rápida del disco.

Espero que alguien pueda hacer pruebas reales de SSD, pero mi sensación es que VHD es más rápido (y más grande) que VDI.

Solo un consejo: VHD/VHDX puede ser compactado directamente en cualquier Windows 7 y superior usando la herramienta de línea de comandos de DiskPart, para VDI se necesita una herramienta externa CloneVDI.

Lo siento, no probé VMDK, no sabía cómo compactarlo sin cambiar su UUID (el UUID del disco), recuerden que las herramientas de comando de VBOX siempre lo cambian en cada clon, sin importar el formato que usen.