web-dev-qa-db-fra.com

Quelle image disque dois-je utiliser avec VirtualBox, VDI, VMDK, VHD ou HDD?

Les dernières versions de VirtualBox prennent en charge plusieurs formats pour les disques virtuels, mais ils ont oublié de fournir une comparaison entre eux.

  • VDI
  • VMDK
  • VHD
  • Disque dur

Maintenant, je suis intéressé par une recommandation ou une comparaison qui prend en compte les éléments suivants:

  • être capable d'utiliser le dimensionnement dynamique
  • être capable d'avoir des instantanés
  • être en mesure de déplacer ma machine virtuelle vers un autre système d'exploitation ou même une autre solution de virtualisation libre avec un minimum d'effort (probablement quelque chose qui fonctionnerait parfaitement sous Ubuntu).
  • performance
284
sorin

VirtualBox a

  • soutien complet pour
    • VDI
    • VMDK
    • VHD
  • soutien partiel pour
    • Disque dur (version 2 de Parallels uniquement)
  • et sans papiers support pour
    • QCOW
    • QED

Source: Oracle® VM Manuel d'utilisation de VirtualBox® » Chapitre 5. Stockage virtuel » 5.2. Fichiers d'image de disque (VDI, VMDK, VHD, HDD)

 Screenshot of Create Virtual Hard Disk


Répondre à vos considérations

  • être capable d'utiliser le dimensionnement dynamique

VDI,VMDK, etVHDprennent en charge le stockage alloué de manière dynamique. VMDK offre une possibilité supplémentaire de fractionner le fichier de stockage en fichiers de moins de 2 Go chacun, ce qui est utile si votre système de fichiers a une petite limite de taille de fichier.

HDD,QCOW, etQEDdoivent être alloués dynamiquement s'ils ont été créés dans VirtualBox.

  • être capable d'avoir des instantanés

VirtualBox prend en charge la capture instantanée de tous les six formats .

  • être en mesure de déplacer ma machine virtuelle vers un autre système d'exploitation ou même une autre solution de virtualisation libre avec un minimum d'effort (probablement quelque chose qui fonctionnerait parfaitement sous Ubuntu).

VDIest le format natif de VirtualBox. Les autres logiciels de virtualisation ne prennent généralement pas en charge VDI, mais il est assez facile de convertir VDI vers un autre format, en particulier avec qemu-img convert .

VMDKest développé par et pour VMWare, mais VirtualBox et QEMU (un autre logiciel de virtualisation commun) le prennent également en charge. _ {Ce format peut être le meilleur choix pour vous, car vous souhaitez une compatibilité étendue avec d'autres logiciels de virtualisation.} _

VHDest le format natif de Microsoft Virtual PC. Windows Server 2012 a introduit VHDX comme successeur du disque dur virtuel, mais VirtualBox ne prend pas en charge VHDX.

HDDest un format pour Parallels . Parallels est spécialisé dans la virtualisation pour macOS. _ {Cela ne vous convient probablement pas, d'autant plus que VirtualBox ne prend en charge qu'une ancienne version du format HDD.} _

QCOWest l'ancienne version originale du format qcow. Il a été remplacé par qcow2, que VirtualBox ne prend pas en charge.

QEDétait une amélioration abandonnée de qcow2. QEMU déconseille d'utiliser QED.

  • performance

Chacun des formats peut avoir des caractéristiques de performances nuancées en raison de la façon dont le format extrait le stockage de bloc, mais je n'ai trouvé aucun repère comparant les formats pris en charge par VirtualBox.

Il y a des facteurs plus importants qui influencent la performance, tels que:

  • limitations de votre périphérique physique (beaucoup plus visible sur un disque dur qu'un lecteur à semi-conducteurs Pourquoi? )
  • extension d'un lecteur de disque virtuel alloué de manière dynamique (les opérations d'écriture sont plus lentes à mesure que le disque virtuel se développe, mais une fois qu'il est suffisamment grand, l'extension devrait moins se produire)
  • technologie de virtualisation ( matériel contre logiciel ; la virtualisation matérielle aide VirtualBox et améliore la vitesse des systèmes d'exploitation virtuels)
  • le fait que vous exécutiez un système d'exploitation virtuel. Les performances sont toujours plus lentes que l'exécution d'un système d'exploitation sur l'hôte en raison de la surcharge de la virtualisation.
205
Deltik

J'utilise toujours VDI, car c'est le format natif de VirtualBox; Cependant, l'utilisation d'un VMDK (format VMWare) augmentera la compatibilité avec d'autres logiciels de machine virtuelle.

VirtualBox fonctionnera correctement sous Ubuntu. Par conséquent, si l’objectif est l’interopérabilité Windows/Ubuntu, VDI serait un choix parfaitement valide.

Les deux formats satisferont vos exigences.

Pour les deux autres, le disque dur virtuel est un format développé par Microsoft et le disque dur est un format développé par Apple. Celles-ci sont toutes deux sous licence propriétaire, limitez donc le support multiplateforme; Je ne les recommanderais pas.

36
Tortoise

Mpack, explique une différence de performance clé entre VHD et VDI ici:

Ayant récemment étudié le format VHD, je m'attendrais à ce qu’il y ait au moins une petite différence de préférence entre les VDI, ce qui se remarque le plus lorsque l’on compare, c’est-à-dire un VDI optimisé par rapport à un VHD optimisé. La raison en est que le format VHD dynamique a ces secteurs "bitmap" dispersés sur le disque. Chaque fois que vous modifiez un secteur dans un bloc, ces blocs bitmap doivent également être mis à jour et écrits, et impliquent des recherches, des lectures et des écritures supplémentaires. Ces secteurs bitmap doivent également être ignorés lors de la lecture de clusters consécutifs à partir d'une image de lecteur - davantage de recherches. Le format VDI ne comporte pas ces frais généraux, en particulier si le VDI a été optimisé (blocs du disque virtuel triés par ordre LBA).

Tous mes commentaires s'appliquent au format VHD dynamique vs VDI dynamique. Les tests de performances sur des disques virtuels de taille fixe sont inutiles, car les deux formats sont alors identiques (une simple image de disque), ils ont simplement des en-têtes différents.

https://forums.virtualbox.org/viewtopic.php?f=1&t=22688

17

Les fichiers image de disque résident sur le système hôte et sont considérés par les systèmes invités comme des disques durs d'une certaine géométrie. Lorsqu'un système d'exploitation invité lit ou écrit sur un disque dur, VirtualBox redirige la demande vers le fichier image.

Comme un disque physique, un disque virtuel a une taille (capacité), qui doit être spécifiée lors de la création du fichier image. Cependant, contrairement à un disque physique, VirtualBox vous permet de développer un fichier image après sa création, même s'il contient déjà des données. VirtualBox supporte quatre variantes de fichiers d’image disque:

VDI: Normalement, VirtualBox utilise son propre format de conteneur pour les disques durs invités: fichiers VDI (Virtual Disk Image). En particulier, ce format sera utilisé lorsque vous créez une nouvelle machine virtuelle avec un nouveau disque.

VMDK: VirtualBox prend également totalement en charge le format de conteneur VMDK populaire et ouvert utilisé par de nombreux autres produits de virtualisation, en particulier par VMware. [25]

VHD: VirtualBox prend également totalement en charge le format VHD utilisé par Microsoft.

Les fichiers image de Parallels version 2 (format HDD) sont également pris en charge. [26] Faute de documentation sur le format, les nouveaux formats (3 et 4) ne sont pas pris en charge. Vous pouvez cependant convertir ces fichiers image au format version 2 à l'aide des outils fournis par Parallels.

5
SRINIVAS

Cela dépend également de la manière dont vous prévoyez d’utiliser le disque virtuel. Tous les VM ne veulent pas une seule partition sur un seul disque.

VDI semble avoir plus d'options (lorsqu'il est utilisé avec VirtualBox), mais dès que vous supprimez VirtualBox, le support pour VDI devient quelque peu fragile (à la fin de 2014).

Par exemple, mes solutions doivent avoir un support multi-plateforme maximal. Monter un VDI (comme un périphérique de bouclage) sur Linux ou Windows 7 est plus difficile et plus difficile que ce à quoi vous pourriez vous attendre. Presque comme le VDI a trop de fonctionnalités, il est difficile de créer des utilitaires entièrement conformes qui peuvent fonctionner dessus.

VMDK est tout simplement moins facile à mon humble avis lorsque vous voulez qu’il fonctionne avec n’importe quel VM sur n’importe quel poste de travail, lorsque vous souhaitez le cloner 3 fois vers d’autres systèmes sur le réseau en même temps, et lorsque vous souhaitez il s'ouvre sans lancer une instance VM.

Même si j'utilise VirtualBox dans 90% des cas, les quelques cas où mes disques deviennent inaccessibles dans certains flux de travail m'ont amené à privilégier VMDK pour les systèmes de fichiers enfichables/partagés.

5
user2097818

Je ne sais pas si l'utilisation de vmdk vous permettrait d'exécuter de manière transparente une machine virtuelle créée dans VirtualBox sous VMware ou non. Ça pourrait. Toutefois, une option plus universelle pourrait consister à utiliser la fonction Fichier/Export de VirtualBox pour créer un fichier .ova "Open Virtualization Appliance" pouvant ensuite être importé dans VMware. Avec cette approche, vous pouvez porter sur n’importe quel système de virtualisation prenant en charge .ova sans vous préoccuper du format d’image disque utilisé dans VirtualBox.

Si vous devez exporter à partir du même VM à intervalles réguliers, par ex. chaque jour, cela pourrait être une douleur. Mais si vous passez occasionnellement à une technologie différente, cela devrait aller.

Si vous avez déjà un fichier .vdi, vous pouvez vérifier si cela fonctionne sans avoir à créer une nouvelle machine virtuelle. Exportez-le vers un fichier .ova, puis essayez d'importer avec vmware.

5
Alan Meyer

Une bonne raison pour moi d'utiliser vmdk est que Virtualbox (au moins jusqu'à la v4.1) utilisant le format VDI a tendance, au fil du temps, à occuper tout l'espace disque alloué, même si l'utilisation du disque virtuel interne est encore bien moindre. Avec Virtualbox utilisant des disques vmdk, le problème semble moins grave.

Mais je parle des années de disponibilité. Cela pourrait ne pas être un problème rencontré par beaucoup de gens.

4
Ernest ter Kuile

On dirait que l'utilisation de VDI permet de couper le fichier du disque à sa taille réelle Prise en charge des commandes TRIM de VirtualBox et SSD

2
OwnageIsMagic

Le VDI est beaucoup plus facile à compacter si le VM devient trop gros.

1
eych

Il ya longtemps, j’ai fait un test: convertir vdi dynamique en vhd dynamique pour tester la vitesse et la taille des fichiers.

Rappelez-vous qu’il s’agissait d’une installation immuable d’invité Windows avec certaines applications. Rappelez-vous que, lors de mon test, j’ai converti un format en un autre, les deux sont supposés avoir exactement la même image, comme si vous faisiez un clonage.

Pour une taille de disque de 64 Go, la taille du fichier VDI était de 18 Go environ, alors que la taille du fichier du disque dur virtuel de 22 Go.

Je me souviens avoir vu ces deux choses:

  1. Le temps de démarrage était significativement différent, si je ne me souvenais pas du vhd mauvais était 1,6 fois plus rapide que VDI
  2. La taille du disque dur virtuel était beaucoup plus grande que celle du VDI, environ 4 gigaoctets plus gros que 18 gigaoctets, soit 1,2 fois plus gros.

C'était il y a longtemps et le test a été effectué sur un disque dur, mais je m'assure que les deux fichiers sont défragmentés et l'un à côté de l'autre sur la partie rapide du disque.

J'espère que quelqu'un pourra faire de vrais tests SSD, mais mon sentiment est que le disque dur virtuel est plus rapide (et plus gros) que le disque dur virtuel.

Juste un conseil: VHD/VHDX peut être compacté directement sur n’importe quel Windows 7 et versions ultérieures à l’aide de l’outil de ligne de commande DiskPart; pour VDI, un outil externe, CloneVDI, est nécessaire.

Désolé, je n'ai pas testé VMDK, je ne savais pas comment le compacter sans changer son UUID (le UUID du disque), souvenez-vous que les outils de commande VBOX le modifient toujours sur chaque clone, quel que soit le format utilisé.

1
Laura

Je viens de migrer un VMDK brut mappé sur une partition d'un Transcend SSD370 128 Go vers un Samsung Pro 850 512GB.

Apparemment, VMDK est beaucoup plus rapide que VDI. Je ne comprends pas pourquoi, peut-être que j'ai commis une erreur quelque part.

J'ai copié le VMDK via le Virtual Media Manager sur le 850. Une fois en tant que VDI, une fois en tant que VMDK.

Ensuite, j'ai exécuté hdparm -tT --direct /dev/sda sur les images. Pour chacune des "exécutions", j'ai remplacé la "Machine -> Paramètres -> Stockage -> Contrôleur SATA -> ImageFile.xxx". La partition brute sur SSD370 a été définie par un fichier VMDK. Ce n'est donc pas vraiment une image.

Ce sont les résultats:

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

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

Je ne sais pas vraiment comment interpréter cela, peut-être que quelqu'un veut laisser un commentaire là-dessus. J'ai choisi le VMDK alors.

1
Daniel F