Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

Xen and Virtualbox etc both support a range of different virtual machine image formats.

These are: vmdk, vdi, qcow & qcow2, hdd & vhd.

Without any bias toward a particular product, I'm wanting to know what are the advantages and disadvantages of the various formats both from a features perspective, robustness and speed?

One piece of info I discovered in a forum post was this:

"The major difference is that VDI uses relatively large blocks (1MB) when growing an image, and thus has less overhead for block pointers etc. but isn't ultimately space efficient in the sense that if a single byte is non-zero in such a 1MB block the entire space is used. VMDK in contrast uses 64K blocks, and thus has more management overhead and generally a bit less disk space consumption What offsets this is that VDI is more efficient when it comes to snapshots."

You might be thinking, I want to know this because I want to know which format to choose? Not exactly, I'm developing some software which utilises these formats and want to support one or more of them. Simplicity, large disks and ease of development are my main drivers.

share|improve this question
Application design decisions aren't generally within our purview as system administrators. –  Michael Hampton Sep 25 '12 at 0:55
@Michael - however, this is the best place to ask as most of you will have had experience with using the formats across a range of products. I'm wanting to know what limitations, features each have. –  Matt Sep 25 '12 at 1:34
In that case, please see the FAQ. –  Michael Hampton Sep 25 '12 at 1:51
add comment

closed as off topic by Michael Hampton, John Gardeniers, gWaldo, Iain Oct 28 '12 at 16:41

Questions on Server Fault are expected to relate to professional server, networking, or related infrastructure administration within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

1 Answer

Unless you have a reason to do otherwise always use the format native to the virtualisation product. If you are writing an application that interfaces with VM disk formats you should write it to work with all native formats for the virtualisation products you intend to support. Trying to use one format across all products is a bad idea, as not not all products will work with any one format very efficiently, resulting in less than optimal performance for those systems where the format is not native. Please don't force anyone to change formats just to support your application.

share|improve this answer
This sounds like a good answer, but you've misunderstood my reasoning. I'm not developing a tool. I can't actually reveal any more. A comparison between the formats is what I probably need. –  Matt Sep 25 '12 at 1:33
This site is simply not a good place for this question, unfortunately. The best place to get details on vendors' virtual hard drive formats are from their own specs/documentation. –  gWaldo Sep 25 '12 at 1:41
I was hoping someone might point me to a feature matrix of the different formats. I couldn't find one. It looks like it doesn't exist (yet). –  Matt Sep 25 '12 at 1:49
@Matt Largely because the formats move fast enough over their versions that such a matrix is only valid for a few months. –  sysadmin1138 Sep 25 '12 at 2:23
@sysadmin1138 - You're wrong about that. Most formats haven't changed significantly for several years. VMDK has gone through 5 revisions (over several years), qcow has 2. Not every few months. –  Matt Sep 25 '12 at 2:46
show 1 more comment

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