As with any other virtual machine resources, it is important to pay close attention to virtual machine storage requirements. Virtualisation brings a lot of benefits when it comes to storage for your (virtual) servers. It means you can size your servers more appropriately to the job they are designed for, which should lead to less wasted storage space. It also gives you the flexibility to expand existing storage or add new virtual disks to a server if you need to. Properly sized virtual machines mean that your environment will function better on the whole, and should ultimately allow you to virtualise more stuff and get the most out of the storage space you have available.
What do you need to think about when determining virtual machine storage requirements? There are a number of things to consider, beyond the actual disk allocation for the VM such as what type of virtual disk will be used, what the expected performance will be (IOPS), will VMware Fault Tolerance be used, and will snapshots be taken/used? All of these things will affect your VMs storage requirements.
Virtual Machine Disk Requirements
Virtual machines disk allocations should be designed around best practices for the Guest OS/Application that will run in the virtual machine. For example, it’s common to use separate disks for the OS and Application/Log data. This is general good practice with a number of benefits. Apart from the flexibility of having multiple virtual disks (as opposed to a single vmdk with guest OS defined partitions), backups can be greatly simplified by keeping application data separate from the OS. Having multiple disks allows you to more finely control what happens when a snapshot of the virtual machine is taken. By choosing to make certain disks independent, for example, you could exclude them from snapshot based backups.
After determining how many virtual disks you require, and their size, you also need to decide the way in which those virtual disks will be provisioned.
Virtual Disk Provisioning Choices
When creating a new virtual disk you have a number of options on how you would like to provision the disk, and how it will behave after it is provisioned.
What do these options mean?
Thick Provision Lazy Zeroed
This is the default option. All the requested space on the datastore is allocated when the disk is created, however the datablocks are not zeroed out. This type of disk is quick to deploy. When you look at a thick provisioned lazy zeroed vmdk on the datastore you will see that the file is equal in size to the specified allocation.
Thick Provision Eager Zeroed
A Thick Provision Eager Zeroed disk has all its space allocated, and zeroed out at the time it is created. Due to the zeroing out it can take a while to provision, depending on the size, however it does offer the best performance and is recommended for I/O intensive virtual machines. It is also a requirement if you wish to protect the virtual machine using VMware Fault Tolerance. Like with the lazy zeroed provisioning method the .vmdk is the same size as the allocation.
A thin provisioned virtual disk allocates space on the datastore on demand, and is such isn’t recommended for I/O intensive virtual machines. The .vmdk starts out small and grows as data is written to the virtual machine, up to the point where it reaches it’s allocated size. Thin provisioning certainly has it’s uses, but when in use it’s important to monitor datastore usage. Datastore alarms will help you out here.
In addition to the type of disk provisioning, you may also need to consider virtual disk modes.Keep up to date with new posts on Buildvirtual.net - Follow us on Twitter: Follow @buildvirtual