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.
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
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.
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?
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.
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
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.
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?
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"
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
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?
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
Thanks for your help so far. I'm going to use flat model for my virtual disks.