ibauer
Contributor
Contributor

Hard drive performance - space preallocated or growing?

Jump to solution

Hi,

I'm going to using VMs primarily for software development and testing. Guest hard drives are stored in a single file on the host for portability reasons. What do you suggest to use with regard to the hard drive space: growing (much smaller size, said to have somehow worse performance) or preallocated (significantly bigger size, said to have somehow greater performance).

Is sacrificing the host's hard drive space worth the performance gain when using preallocated virtual drive?

Thanks in advance.

0 Kudos
1 Solution

Accepted Solutions
continuum
Immortal
Immortal

in hosted platforms thin and thick are inappropriate terms - ESX works different.

You ask about sparse = growing and flat= preallocated.

If you want to read about the details check out my notes http://sanbarrow.com/vmdk-handbook.html

generally speaking I would recommend

flat type for contents that changes a lot

sparse type for mostly static contents

you can't say that flat always outperforms sparse

If size does not matter preallocated in most cases is a good idea

Flat disks have one major advantage: they are easier to repair and do not need maintenance.

Sparse disks are hard to repair and need maintenance. So do not forget to shrink them regularly - there more often the more dynamic the contents of the vmdk is

related: here is a comparison of one piece = monolithic versus split formats

http://sanbarrow.com/vmdk-howtos.html#monolithicversussplit

Ulli br>



_________________________

VMX-parameters- WS FAQ -[ MOAcd|http://sanbarrow.com/moa241.html] - VMDK-Handbook

Do you need support with a recovery problem ? - send a message via skype "sanbarrow"

View solution in original post

0 Kudos
10 Replies
eeg3
Commander
Commander

I don't believe you will see noticeable performance degradation with thin provisioning. Here is a related study by VMware regarding Thin vs. Thick Provisioning with vSphere 4.0.

I would go with thin provisioning the disks; just make sure you don't over-allocate and run out of space.

Blog: http://blog.eeg3.net
0 Kudos
ibauer
Contributor
Contributor

Thanks for the useful link to that performace study, eeg3. It looks like using thick provisioning (pre-allocated VHD space) is not worth the performance gain. I will make sure to create the disks big enough to prevent running out of space, but I don't quite understand what do you mean by "don't over-allocate". Could you please explain?

0 Kudos
eeg3
Commander
Commander

If you thin provision, since the disk isn't zero'd out like it would be in thick provisioning, you can create virtual drives with more space than you actually have in reality and end up running out of space if you're not careful.

Blog: http://blog.eeg3.net
0 Kudos
continuum
Immortal
Immortal

in hosted platforms thin and thick are inappropriate terms - ESX works different.

You ask about sparse = growing and flat= preallocated.

If you want to read about the details check out my notes http://sanbarrow.com/vmdk-handbook.html

generally speaking I would recommend

flat type for contents that changes a lot

sparse type for mostly static contents

you can't say that flat always outperforms sparse

If size does not matter preallocated in most cases is a good idea

Flat disks have one major advantage: they are easier to repair and do not need maintenance.

Sparse disks are hard to repair and need maintenance. So do not forget to shrink them regularly - there more often the more dynamic the contents of the vmdk is

related: here is a comparison of one piece = monolithic versus split formats

http://sanbarrow.com/vmdk-howtos.html#monolithicversussplit

Ulli br>



_________________________

VMX-parameters- WS FAQ -[ MOAcd|http://sanbarrow.com/moa241.html] - VMDK-Handbook

Do you need support with a recovery problem ? - send a message via skype "sanbarrow"

View solution in original post

0 Kudos
eeg3
Commander
Commander

Whoops, didn't realize this was the Workstation forum. That'll teach me when browsing All Content from VMTN root.

continuum's advice is spot on, as always. Smiley Happy

Blog: http://blog.eeg3.net
0 Kudos
ibauer
Contributor
Contributor

Thanks continuum, I didn't realize vSphere is something different, I thought it's some kind of a platfom that Workstation is based on.

Anyway, as I said I'll be using VMs mostly for software development and testing. That means I'm going to install my favorite IDE with all the tools and add-ons and then focus on the application development itself. Would you say then that the disk contents is going to change a lot or that it will be mostly static? I have read through the information you supplied to me and if it brings me some more performance, I'm prepared to use flat disk (preallocated) preferably splitted into 2 GB file chunks.

May I have a follow-up question? Do I gain additional performance if I switch later to independent persistent disk?I mean the disk will be in the default "dependent" mode initially during the installation of OS, IDE and all the tools. But once everything has been installed and configured properly, I can switch virtual disk into independent persistent mode (I know I will no longer be able to use snapshots). What do you think?

0 Kudos
continuum
Immortal
Immortal

Hi

independant mode itself has no performance advantage.

Setting a vmdk to independant mode is the same as telling yourself "no - I really, really will not take a snapshot of this VM" Smiley Wink

Would you say then that the disk contents is going to change a lot or that it will be mostly static?

Hmm - don't know how much you plan to write in that VM. Maybe lets put it this way....

on an average workday - do you create a few Mbs or a few Gb of new data in the VM ?




_________________________

VMX-parameters- WS FAQ -[ MOAcd|http://sanbarrow.com/moa241.html] - VMDK-Handbook

Do you need support with a recovery problem ? - send a message via skype "sanbarrow"
0 Kudos
ibauer
Contributor
Contributor

Hi

independant mode itself has no performance advantage.

Setting a vmdk to independant mode is the same as telling yourself "no - I really, really will not take a snapshot of this VM" <img class="jive-emoticon" border="0" alt=";-)" />

OK, because there is no performance gain in switching to independent mode, I'm going to stay with dependent mode for my VM (to retain ability to use snapshots). However, I can think of several use-cases for independent non-persistent disks (e.g. build/test VMs that always start clean).

Hmm - don't know how much you plan to write in that VM. Maybe lets put it this way....

on an average workday - do you create a few Mbs or a few Gb of new data in the VM ?

Thoughout my workday I usually make a lot of test builds of my software. My source code does not grow that fast, but there are many binaries. Compiler generated files and the like are obviously overwritten by each new build, but I'm not sure that they re-use existing space though. One build generates a few of tens of megabytes. Some of them will be overwritten by the next build. I prefer to make test builds every once in a while just to see even a minor progress in development (there could be about 50-100 test builds a day). What would you suggest?

0 Kudos
continuum
Immortal
Immortal

On sparse vmdks WS can not re-use existing space (without going through the shrink procedure)- so everytime you delete something this is the same as creating some new files.

So I would say your scenario calls for flat vmdks




_________________________

VMX-parameters- WS FAQ -[ MOAcd|http://sanbarrow.com/moa241.html] - VMDK-Handbook

Do you need support with a recovery problem ? - send a message via skype "sanbarrow"
0 Kudos
ibauer
Contributor
Contributor

Thanks for your help so far. I'm going to use flat model for my virtual disks.

0 Kudos