Que imagem de disco devo usar com o VirtualBox, VDI, VMDK, VHD ou HDD?

261

As versões mais recentes do VirtualBox suportam vários formatos para discos virtuais, mas eles se esqueceram de fornecer uma comparação entre eles.

  • VDI
  • VMDK
  • VHD
  • HDD

Agora, estou interessado em uma recomendação ou comparação que considere o seguinte:

  • poder usar o dimensionamento dinâmico
  • conseguir ter instantâneos
  • conseguir mover minha máquina virtual para outro sistema operacional ou até mesmo outra solução de virtualização gratuita com o mínimo de esforço (provavelmente algo que funcione bem no Ubuntu).
  • desempenho
por sorin 23.11.2011 / 01:28

11 respostas

184

O VirtualBox tem suporte completo para VDI , VMDK , e VHD e suporte para Parallels Versão 2 (HDD) (versões não mais recentes) .

Respondendo às suas considerações

  • be able to use dynamic sizing

VDI , VMDK e VHD todos suportam dimensionamento alocado dinamicamente. O VMDK tem um recurso adicional de dividir o arquivo de armazenamento em arquivos com menos de 2 GB cada, o que é útil se o seu sistema de arquivos tiver um limite pequeno de tamanho de arquivo.

  • be able to have snapshots

Todos os quatro formatos suportam instantâneos no VirtualBox.

  • be able to move my virtual machine to another OS or even another free virtualization solution with minimal effort (probably something that would run fine on Ubuntu).

VDI é o formato nativo do VirtualBox. Não pesquisei nenhum outro software que suporte esse formato.

O VMDK é desenvolvido por e para VMWare, mas o Sun xVM, o QEMU, o VirtualBox, o SUSE Studio e o .NET DiscUtils também o suportam. ( Este formato pode ser o mais adequado para você porque você quer um software de virtualização que funcione bem no Ubuntu. )

VHD é o formato nativo do Microsoft Virtual PC. Este é um formato popular entre os produtos da Microsoft.

Eu não sei nada sobre o HDD. A julgar por olhar para este site , o Parallels é um produto Mac OS X e provavelmente não é adequado para você, especialmente considerando que o VirtualBox só suporta uma versão antiga do formato HDD.

  • performance

O formato não deve afetar o desempenho, ou pelo menos, os impactos no desempenho são insignificantes.

Os fatores que influenciam o desempenho são:

  • as limitações do seu dispositivo físico (muito mais visíveis em uma unidade de disco rígido do que em uma unidade de estado sólido . . Por que? )
  • expandindo uma unidade de disco virtual alocada dinamicamente (as operações de gravação são mais lentas à medida que o disco virtual se expande, mas, quando ele é grande o suficiente, a expansão deve acontecer menos)
  • tecnologia de virtualização ( hardware vs. software ; a virtualização de hardware ajuda o VirtualBox e melhora a velocidade de operação virtual sistemas)
  • o fato de você estar executando um sistema operacional virtual. O desempenho é sempre mais lento do que a execução de um sistema operacional no host devido ao processo de virtualização.
por 22.06.2012 / 22:33
34

Eu sempre uso VDI, pois é o formato nativo do VirtualBox; no entanto, usar um VMDK (formato VMWare) aumentará a compatibilidade com outro software de máquina virtual.

O VirtualBox rodará bem no Ubuntu, então se o objetivo for a interoperabilidade do Windows / Ubuntu, a VDI seria uma escolha perfeitamente válida.

Ambos os formatos atenderão aos seus requisitos.

Quanto aos outros dois, o VHD é um formato desenvolvido pela Microsoft, e o HDD é um formato desenvolvido pela Apple; ambos são licenciados por proprietários, portanto, limite o suporte a várias plataformas; Eu não os recomendaria.

    
por 22.06.2012 / 22:58
15

Mpack, explica uma diferença de desempenho chave entre VHD e VDI aqui:

Having recently studied the VHD format, I would expect there to be at least a small difference in VDIs favor, most noticeable when you are comparing like with like, i.e. an optimized VDI vs optimized VHD. The reason is that the dynamic VHD format has these "bitmap" sectors scattered throughout the disk. Every time you modify a sector inside a block these bitmap blocks may need to be updated and written too, involving extra seeks, reads and writes. These bitmap sectors also have to be skipped over when reading consecutive clusters from a drive image - more seeks. The VDI format doesn't have these overheads, especially if the VDI has been optimized (blocks on the virtual disk sorted into LBA order).

All of my comments apply to the dynamic VHD format vs dynamic VDI. Performance tests on fixed sized virtual disks is pointless since both formats are then the same (just a plain image of a disk), they just have different headers on them.

link

    
por 08.05.2014 / 16:20
5

Não sei se usar o vmdk permitiria que você executasse de forma transparente uma máquina virtual criada no VirtualBox no VMware ou não. Pode ser. No entanto, uma opção mais universal pode ser usar a função VirtualBox File / Export para criar um arquivo "Open Virtualization Appliance" .ova que pode ser importado para o VMware. Com essa abordagem, você pode migrar para qualquer sistema de virtualização que suporte o .ova sem importar o formato de imagem de disco usado no VirtualBox.

Se você precisar exportar da mesma VM em intervalos regulares, por exemplo, todos os dias, isso poderia ser uma dor. Mas se você passar para uma tecnologia diferente ocasionalmente, tudo bem.

Se você já tiver um arquivo .vdi, poderá testar se isso funciona sem precisar criar uma nova máquina virtual. Exporte-o para um .ova e tente importar com o vmware.

    
por 03.07.2012 / 23:22
5

Os arquivos de imagem de disco residem no sistema host e são vistos pelos sistemas convidados como discos rígidos de determinada geometria. Quando um sistema operacional convidado lê ou grava em um disco rígido, o VirtualBox redireciona a solicitação para o arquivo de imagem.

Como um disco físico, um disco virtual tem um tamanho (capacidade), que deve ser especificado quando o arquivo de imagem é criado. Ao contrário de um disco físico, o VirtualBox permite que você expanda um arquivo de imagem após a criação, mesmo que já tenha dados; O VirtualBox suporta quatro variantes de arquivos de imagem de disco:

VDI: Normalmente, o VirtualBox usa seu próprio formato de contêiner para discos rígidos convidados - arquivos de Imagem de Disco Virtual (VDI). Em particular, esse formato será usado quando você criar uma nova máquina virtual com um novo disco.

VMDK: O VirtualBox também oferece suporte total ao formato de contêiner VMDK popular e aberto que é usado por muitos outros produtos de virtualização, em particular, pela VMware. [25]

VHD: o VirtualBox também oferece suporte total ao formato VHD usado pela Microsoft.

Arquivos de imagem da versão 2 do Parallels (formato HDD) também são suportados. [26] Por falta de documentação do formato, os formatos mais recentes (3 e 4) não são suportados. Você pode, no entanto, converter esses arquivos de imagem para o formato da versão 2 usando ferramentas fornecidas pela Parallels.

    
por 28.11.2015 / 19:23
4

Uma boa razão para usar o vmdk é que o Virtualbox (pelo menos até a v4.1) usando o formato VDI tem a tendência, ao longo do tempo, de preencher todo o espaço em disco alocado, embora o uso do disco virtual interno ainda seja muito Menos. Com o Virtualbox usando discos vmdk, isso parece ser um problema menor.

Mas estou falando de anos de atividade. Isso pode não ser um problema que muitas pessoas enfrentam.

    
por 30.01.2015 / 16:13
3

Depende de como você planeja usar o disco virtual também. Nem toda VM quer uma única partição em um único disco.

O VDI parece ter mais opções (quando usado com o VirtualBox), mas assim que você tira o VirtualBox da tela, o suporte para o VDI se torna um pouco instável (no final de 2014).

Por exemplo, minhas soluções precisam ter suporte máximo em várias plataformas. Montar um VDI (como um dispositivo de loopback) no linux ou no Windows 7 é mais difícil e mais complicado do que o esperado. Quase como o VDI tem muitos recursos, tornando difícil fazer utilitários totalmente em conformidade que podem operá-lo.

VMDK é IMHO menos indolor quando você quer que ele trabalhe com qualquer VM em qualquer estação de trabalho, quando você quiser cloná-lo 3 vezes para outros sistemas na rede ao mesmo tempo, e quando você quiser forçá-lo abrir sem lançando uma instância de VM.

Embora eu use o VirtualBox 90% do tempo, as poucas vezes em que meus discos se tornam inacessíveis em certos fluxos de trabalho me levaram a favorecer o VMDK para sistemas de arquivos compartilhados / compartilhados.

    
por 08.01.2015 / 05:33
3

Parece que usar o VDI possibilita cortar o arquivo do disco para seu tamanho real Suporte ao comando TRIM do VirtualBox e do SSD

    
por 19.11.2016 / 01:23
1

O VDI é muito mais fácil de compactar se a VM ficar muito grande.

    
por 02.08.2017 / 20:14
1

Acabei de migrar um VMDK bruto, que foi mapeado para uma partição de um SSD370 de 128 GB da Transcend para um Samsung Pro 850 de 512 GB.

Aparentemente, o VMDK é muito mais rápido que o VDI. Eu não entendo porque, talvez eu tenha cometido um erro em algum lugar.

Eu copiei o VMDK através do Virtual Media Manager para o 850. Uma vez como um VDI, uma vez como VMDK.

Então eu corri hdparm -tT --direct /dev/sda nas imagens. Para cada um dos "runs" troquei de substituir o "Machine - > Settings - > Storage - > Controller SATA - > ImageFile.xxx". A partição bruta no SSD370 foi definida por um arquivo VMDK, então não é realmente uma imagem.

Estes são os 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 <======

Eu realmente não sei como interpretar isso, talvez alguém queira deixar um comentário sobre isso. Eu escolhi o VMDK então.

    
por 21.09.2017 / 17:41
0

Há muito tempo fiz um teste, converti o vdi dinâmico em vhd dinâmico apenas para testar a velocidade e o tamanho dos arquivos.

Lembre-se que foi um inmutable guest Windows limpo com instale alguns aplicativos, lembre-se para o meu teste eu converto um formato para outro, então ambos devem ter a mesma imagem exactr, como fazer uma clonagem.

Para um tamanho de disco de 64GiB, o tamanho do arquivo VDI foi de 18GiB, enquanto o tamanho do arquivo de VHD atingiu 22GiB.

Eu posso lembrar que vi estas duas coisas:

  1. O tempo de inicialização foi significativamente diferente, se eu não me lembro o vhd ruim foi 1,6 vezes mais rápido do que o VDI
  2. O tamanho do VHD era muito maior do que o da VDI, cerca de 4GiB gigabytes acima de 18GiB, portanto, 1,2 vezes maior.

Isso foi há muito tempo e o teste foi feito em um disco rígido, mas garantimos que os arquivos sejam desfragmentados e próximos um do outro na parte rápida do disco.

Espero que alguém possa fazer testes SSD reais, mas meu sentimento é que o VHD é mais rápido (e maior) que o VDI.

Apenas uma dica: VHD / VHDX pode ser compactado diretamente em qualquer Windows 7 e Up usando a ferramenta de linha de comando DiskPart, para VDI é necessária uma ferramenta externa CloneVDI.

Desculpe, eu não testei o VMDK, eu não sabia como compactá-lo sem alterar seu UUID (o UUID do disco), lembre-se que as ferramentas de comando do VBOX mudam sempre em cada clone, não importa o formato usado.

    
por 12.06.2018 / 10:27