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

Quale immagine disco dovrei usare con VirtualBox, VDI, VMDK, VHD o HDD?

Le ultime versioni di VirtualBox supportano diversi formati per i dischi virtuali, ma hanno dimenticato di fornire un confronto tra loro.

  • VDI
  • VMDK
  • VMDK
  • VHD
  • HDD

Ora, sono interessato a una raccomandazione o un confronto che tenga conto di quanto segue:

  • essere in grado di utilizzare il dimensionamento dinamico
  • essere in grado di avere istantanee
  • essere in grado di spostare la mia macchina virtuale in un altro sistema operativo o anche un'altra soluzione di virtualizzazione libera con il minimo sforzo (probabilmente qualcosa che funzionerebbe bene su Ubuntu).
  • prestazioni

Risposte (11)

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

VirtualBox ha

  • supporto completo per
  • VDI
  • VMDK
  • VHD
  • supporto parziale per
  • HDD (solo Parallels versione 2)
  • e non documentato supporto per
  • QCOW
  • QED

Source: Manuale d'uso Oracle® VM VirtualBox® VM Capitolo 5. Memoria virtuale 5.2. Disk Image Files (VDI, VMDK, VHD, HDD)


Answering Your Considerations

  • be able to use dynamic sizing

VDI , VMDK , and VHD all support dynamic storage allocated. VMDK ha una capacità aggiuntiva di suddividere il file di archiviazione in file di dimensioni inferiori a 2 GB ciascuno, utile se il vostro file system ha un limite di dimensioni ridotte.

HDD , QCOW , QED , e QED devono essere allocati dinamicamente se creati in VirtualBox.

  • essere in grado di avere istantanee

VirtualBox supporta lo snapshotting di tutti i sei formati.

  • essere in grado di spostare la mia macchina virtuale in un altro sistema operativo o anche un'altra soluzione di virtualizzazione gratuita con il minimo sforzo (probabilmente qualcosa che funzionerebbe bene su Ubuntu).

VDI è il formato nativo di VirtualBox. Altri software di virtualizzazione generalmente non supportano VDI, ma è abbastanza facile convertire da VDI in un altro formato, specialmente con qemu-img convert .

VMDK è sviluppato da e per VMWare, ma VirtualBox e QEMU (un altro comune software di virtualizzazione) lo supportano anche. Questo formato potrebbe essere la scelta migliore per voi perché volete un'ampia compatibilità con altri software di virtualizzazione._

VHD è il formato nativo di Microsoft Virtual PC. Windows Server 2012 ha introdotto VHDX come successore di VHD, ma VirtualBox non supporta VHDX.

HDD è un formato per Parallels . Parallels è specializzata nella virtualizzazione per macOS. Questo probabilmente non è adatto a te, specialmente considerando che VirtualBox supporta solo una vecchia versione del formato HDD.

QCOW è la vecchia versione originale del formato qcow. È stata sostituita da qcow2, che VirtualBox non supporta.

QED è stato un miglioramento abbandonato di qcow2. QEMU sconsiglia l'uso di QED.

  • prestazioni

Ciascuno dei formati può avere caratteristiche di prestazione sfumate a causa di come la memorizzazione dei blocchi è astratta dal formato, ma non ho trovato alcun punto di riferimento per confrontare i formati supportati da VirtualBox.

Ci sono fattori più grandi che influenzano le prestazioni, come:

  • le limitazioni del dispositivo fisico (molto più evidenti su un hard disk che su un solid-state drive *Perché? * )
  • l'espansione di un disco virtuale allocato dinamicamente (le operazioni di scrittura sono più lente man mano che il disco virtuale si espande, ma una volta che è abbastanza grande, l'espansione dovrebbe avvenire meno)
  • la tecnologia di virtualizzazione hardware vs. software ; la virtualizzazione hardware aiuta VirtualBox e migliora la velocità dei sistemi operativi virtuali)
  • il fatto che si sta eseguendo un sistema operativo virtuale. Le prestazioni sono sempre più lente rispetto all'esecuzione di un sistema operativo sull'host a causa del sovraccarico della virtualizzazione.
40
40
40
2012-06-22 20:58:21 +0000

Io uso sempre VDI, in quanto è il formato nativo di VirtualBox; tuttavia, l'utilizzo di un VMDK (formato VMWare) aumenterà la compatibilità con altri software di macchine virtuali.

VirtualBox funzionerà bene su Ubuntu, quindi se l'obiettivo è l'interoperabilità Windows/Ubuntu, VDI sarebbe una scelta perfettamente valida.

Entrambi i formati soddisferanno le vostre esigenze.

Come per gli altri due, VHD è un formato sviluppato da Microsoft, e HDD è un formato sviluppato da Apple; entrambi hanno una licenza proprietaria, quindi limitano il supporto multipiattaforma; non li raccomanderei.

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

Mpack, spiega qui una differenza di prestazioni chiave tra VHD e VDI:

Avendo recentemente studiato il formato VHD, mi aspetterei che ci sia almeno una piccola differenza in favore dei VDI, più evidente quando si confronta come con like, cioè un VDI ottimizzato vs VHD ottimizzato. Il motivo è che il formato dinamico VHD ha questi settori “bitmap” sparsi su tutto il disco. Ogni volta che si modifica un settore all'interno di un blocco, questi blocchi bitmap possono avere bisogno di essere aggiornati e scritti, coinvolgendo ulteriori ricerche, letture e scritture. Questi settori bitmap devono anche essere saltati quando si leggono cluster consecutivi da un'immagine del disco - più ricerche. Il formato VDI non ha questi overhead, specialmente se il VDI è stato ottimizzato (blocchi sul disco virtuale ordinati in ordine LBA).

Tutti i miei commenti si applicano al formato dinamico VHD vs VDI dinamico. I test di prestazione su dischi virtuali di dimensioni fisse sono inutili, poiché entrambi i formati sono quindi gli stessi (solo una semplice immagine di un disco), hanno solo intestazioni diverse su di essi. https://forums.virtualbox.org/viewtopic.php?f=1&t=22688

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

Non so se l'utilizzo di vmdk permetterebbe di eseguire in modo trasparente una macchina virtuale creata in VirtualBox in VMware oppure no. Potrebbe. Tuttavia, un'opzione più universale potrebbe essere quella di utilizzare la funzione VirtualBox File/Export per creare un file .ova “Open Virtualization Appliance” che può poi essere importato in VMware. Con questo approccio, è possibile effettuare il porting su qualsiasi sistema di virtualizzazione che supporti i file .ova senza preoccuparsi del formato immagine del disco utilizzato in VirtualBox.

Se è necessario esportare dalla stessa VM a intervalli regolari, ad esempio ogni giorno, potrebbe essere un problema. Ma se si passa a una tecnologia diversa solo occasionalmente, dovrebbe andare bene.

Se si dispone già di un file .vdi, si può verificare se questo funziona senza dover creare una nuova macchina virtuale. Esportatelo in un .ova, poi provate a importarlo con vmware.

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

Dipende da come si prevede di utilizzare anche il disco virtuale. Non tutte le VM vogliono una singola partizione su un singolo disco.

VDI sembra avere più opzioni (se usato con VirtualBox), ma non appena si toglie VirtualBox dal quadro, il supporto per VDI diventa un po’ traballante (a partire dalla fine del 2014).

Per esempio le mie soluzioni devono avere il massimo supporto multipiattaforma. Il montaggio di un VDI (ad esempio un dispositivo di loopback) su linux o Windows 7 è più difficile e più difficile di quanto ci si possa aspettare. Quasi come se la VDI avesse troppe caratteristiche, rendendo difficile realizzare utility completamente conformi che possano funzionare su di essa.

VMDK è solo meno indolore IMHO quando si vuole che funzioni con qualsiasi VM su qualsiasi postazione di lavoro, quando si vuole clonarla 3 volte su altri sistemi in rete allo stesso tempo, e quando si vuole aprirla senza lanciare un'istanza di VM.

Anche se uso VirtualBox per il 90% del tempo, quelle poche volte in cui i miei dischi diventano inaccessibili in certi flussi di lavoro mi hanno portato a privilegiare VMDK per i file system collegabili e condivisi.

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

I file di immagine del disco risiedono nel sistema host e sono visti dai sistemi ospiti come dischi rigidi di una certa geometria. Quando un sistema operativo guest legge da o scrive su un disco rigido, VirtualBox reindirizza la richiesta al file immagine.

Come un disco fisico, un disco virtuale ha una dimensione (capacità), che deve essere specificata quando il file immagine viene creato. A differenza di un disco fisico, tuttavia, VirtualBox permette di espandere un file immagine dopo la creazione, anche se ha già dei dati; VirtualBox supporta quattro varianti di file immagine del disco:

VDI: Normalmente, VirtualBox utilizza il proprio formato contenitore per i dischi rigidi guest – File VDI (Virtual Disk Image). In particolare, questo formato verrà utilizzato quando si crea una nuova macchina virtuale con un nuovo disco.

VMDK:VirtualBox supporta pienamente anche il popolare e aperto formato contenitore VMDK che viene utilizzato da molti altri prodotti di virtualizzazione, in particolare da VMware. [25]

VHD:VirtualBox supporta pienamente anche il formato VHD utilizzato da Microsoft.

Sono supportati anche i file immagine di Parallels versione 2 (formato HDD).[26] Per mancanza di documentazione del formato, i formati più recenti (3 e 4) non sono supportati. Tuttavia, è possibile convertire tali file di immagine in formato versione 2 utilizzando gli strumenti forniti da Parallels.

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

Una buona ragione per me per usare vmdk è che Virtualbox (almeno fino alla v4.1) usando il formato VDI ha la tendenza, nel tempo, a riempire l'intero spazio disco allocato, anche se l'uso interno del disco virtuale è ancora molto inferiore. Con Virtualbox che usa dischi vmdk, questo sembra un problema minore.

Ma sto parlando di anni di attività. Questo potrebbe non essere un problema che molte persone incontrano.

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

Sembra che l'uso di VDI renda possibile tagliare il file del disco alla sua dimensione reale VirtualBox e il supporto del comando TRIM di SSD

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

Ho appena migrato un VMDK grezzo, che è stato mappato su una partizione di un Transcend SSD370 128 GB su un Samsung Pro 850 512GB.

Apparentemente VMDK è molto più veloce di VDI. Non capisco perché, forse ho commesso un errore da qualche parte.

Ho copiato il VMDK tramite il Virtual Media Manager sulla 850. Una volta come VDI, una volta come VMDK.

Poi ho eseguito hdparm -tT --direct /dev/sda sulle immagini. Per ciascuna delle “esecuzioni” ho sostituito il “Machine -> Settings -> Storage -> Controller SATA -> ImageFile.xxx”. La partizione grezza su SSD370 è stata definita da un file VMDK, quindi non è proprio un'immagine.

Questi sono i risultati:

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

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 <======

Non so bene come interpretarlo, forse qualcuno vuole lasciare un commento. Allora ho scelto la VMDK.

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

La VDI è molto più facile da compattare se la VM diventa troppo grande.

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

Molto tempo fa ho fatto un test, convertire vdi dinamico in vhd dinamico solo per testare la velocità e le dimensioni dei file.

Ricordate che era un'inmutabile installazione di Windows guest clean os con alcune applicazioni, ricordate che per il mio test ho convertito un formato in un altro, quindi entrambi dovrebbero avere la stessa immagine esatta, come fare una clonazione.

Per una dimensione del disco di 64GiB, la dimensione del file VDI era intorno a 18GiB, mentre la dimensione del file VHD intorno a 22GiB.

Ricordo che ho visto queste due cose:

  1. Il tempo di avvio era significativamente diverso, se non ricordo male vhd era 1,6 volte più veloce di VDI
    1. La dimensione del VHD era molto più grande del VDI, intorno ai 4GiB gigabyte più grandi di un 18GiB, quindi 1,2 volte più grande.
  2. Questo era molto tempo fa e il test è stato fatto su un HDD, ma mi assicuro che entrambi i file siano deframmentati e uno accanto all'altro nella parte veloce del disco.

  3. Spero che qualcuno possa fare dei veri test SSD, ma la mia sensazione è che il VHD sia più veloce (e più grande) del VDI.

Solo un consiglio: VHD/VHDX può essere compattato direttamente su qualsiasi Windows 7 e Up usando lo strumento a riga di comando DiskPart, per VDI è necessario uno strumento esterno CloneVDI.

Scusate se non ho testato VMDK, non sapevo come compattarlo senza cambiare il suo UUID (l'UUID del disco), ricordate che gli strumenti di comando VBOX lo cambiano sempre su ogni clone, non importa quale formato si usa.