Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Latest versions of VirtualBox supports several formats for virtual disks, but they forgot to provide a comparison between them.

  • VDI
  • VMDK
  • VHD
  • HDD

Now, I am interested about a recommendation or comparison that considers the following:

  • be able to use dynamic sizing
  • be able to have snapshots
  • 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).
  • performance
share|improve this question
3  
Run Virtual box and click the help icon > Contents, there is a fair explanation in there under "Virtual Storage" –  Moab Nov 23 '11 at 1:03
1  
Regarding migration to "another free virtualization solution... that would run fine on Ubuntu", I'm pretty sure VirtualBox is available for Linux. –  Iszi Nov 23 '11 at 4:29
    
There's another good run down in this article.. Four virtual disk formats every VDI admin needs to know –  Molomby Mar 15 at 2:42
    
Performance wise, I think the best is to create fixed disks if you have the space. Otherwise it is very stressful on the OS when using the virtual machine instead of once at creation time. –  Alexis Wilke Oct 29 at 0:49

4 Answers 4

VirtualBox has full support for VDI, VMDK, and VHD and support for Parallels Version 2 (HDD) (not newer versions).

Answering Your Considerations

  • be able to use dynamic sizing

VDI, VMDK, and VHD all support dynamically allocated sizing. VMDK has an additional capability of splitting the storage file into files less than 2 GB each, which is useful if your file system has a small file size limit.

  • be able to have snapshots

All four formats support snapshots on 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 is the native format of VirtualBox. I didn't search for any other software that supports this format.

VMDK is developed by and for VMWare, but Sun xVM, QEMU, VirtualBox, SUSE Studio, and .NET DiscUtils also support it. (This format might be the most apt for you because you want virtualization software that would run fine on Ubuntu.)

VHD is the native format of Microsoft Virtual PC. This is a format that is popular with Microsoft products.

I don't know anything about HDD. Judging from looking at this site, Parallels is a Mac OS X product and probably isn't suitable for you, especially considering that VirtualBox only supports an old version of the HDD format.

  • performance

The format should not affect performance, or at least, performance impacts are negligible.

The factors that influence performance are:

  • your physical device limitations (much more noticeable on a hard disk drive than a solid-state drive... Why?)
  • expanding a dynamically allocated virtual disk drive (write operations are slower as the virtual disk expands, but once it's large enough, expanding should happen less)
  • virtualization technology (hardware vs. software; hardware virtualization helps VirtualBox and improves the speed of virtual operating systems)
  • the fact that you are running a virtual operating system. Performance is always slower than running an operating system on the host because of the virtualization process.
share|improve this answer
1  
+1 I'll add that VMDK seems to offer the panacea I've been searching for in terms of incremental backups: I no longer have to back up an enormous, monolithinc VDI for a single bit change in the guest. –  msanford Aug 14 '13 at 1:10

I always use VDI, as it is the native format of VirtualBox; however, using a VMDK (VMWare format) will increase compatibility with other virtual machine software.

VirtualBox will run fine on Ubuntu, so if the goal is Windows/Ubuntu interoperability, VDI would be a perfectly valid choice.

Both formats will fulfill your requirements.

As for the other two, VHD is a Microsoft-developed format, and HDD is an Apple-developed format; these are both proprietarily-licensed, so limit cross-platform support; I wouldn't recommend them.

share|improve this answer

I don't know if using vmdk would enable you to transparently run a virtual machine created in VirtualBox in VMware or not. It might. However a more universal option might be to use the VirtualBox File/Export function to create an "Open Virtualization Appliance" .ova file that can then be imported into VMware. With that approach, you can port to any virtualization system that supports .ova without caring what disk image format you use in VirtualBox.

If you need to export from the same VM at regular intervals, e.g. every day, that could be a pain. But if you only move to a different technology occasionally, it should be fine.

If you have a .vdi file already, You can test whether this works without having to create a new virtual machine. Export it to a .ova, then try importing with vmware.

share|improve this answer

Mpack, explains a key performance difference between VHD and VDI here:

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.

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

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.