Some thoughts on datastore sizing for VMware vCloud deployments
So I should probably start of saying this post is not going to solve all of your questions about how many datastores you should have and what size they should be. What I do want to do is discuss some of the things that I have noticed in past designs and talk about different approaches. From this I hope that you can better approach your design and be aware of the options and how they might affect the experience.
I’m going to assume that you have a decent understanding of the constructs of vCloud Director (vCD) and vSphere. So when I talk about provider vDC’s and Organization vDCs you know what I mean. If not take sometime and brush up on the terms and proceed with your reading.
Depending on your use cases or the level of skill that your cloud users will have you might take different approaches to what I am going to cover next. VMware recommends that you do not mix storage tiers within a Provider vDC. It does not mean that you cannot, but you will have no choice on placement when provisioning new vApps. So you might provision a web server and end up on Tier 1 and the next time a DB server that ends up on Tier 3 for example. To effectively Tier storage and present it within vCloud you need to create separate vDCs for each Tier of capacity. This holds true for both compute and storage. You should think out your options carefully to prevent accidents.
By now you are probably wondering what are some different approaches to allocating space. I’ve listed out a few options below with notes on things you should consider with each one.
If you will be using block storage does not matter what flavor you are going to need to create VMFS datastores. How many will you need and what size should they be. Do you make them all the same size within an Organization or the whole vCloud? What about if you need a few large VMs and the majority are small.
So if you are building a public cloud or more of a general use private cloud it might make sense to settle on a common sized datastore size for your entire design. This will make provisioning storage more predictable and you can publish size limits to the users of the cloud.
If you are designing a private cloud that will house existing workloads and there is a large size variance you might want to make different choices. For example there might be one or two servers that are over 1TB each but all other servers within the organization are less than 100GB. This gives you a few options make fewer datastores that are larger and capable of containing one of the large VMs or a bunch of the smaller ones. But a few things to consider how will this affect the performance of these datastores if you fill one up with a bunch of small VMs. You should know what the workloads look like and size based on this also. Another thing you are probably thinking about is well those big VMs probably have multiple VMDK’s that make up the VM. True, they might but in vCloud all disks of a vApp or VM always live on a single datastore. You do not have option to separate them like you might have with vSphere in the past.
Lastly you will probably end up presenting several datastores to each virtual datacenter (vDC). If you need to add more storage capacity to the organization you could do this by adding another datastore or expanding an existing one if thats an option. But expanding on could lead you with datastores of various sizes and you might be trying to avoid this. By having to use multiple datastores you might end up with some inefficiency.
I have to say that in the last year I have really started to become a big fan of NFS storage in virtual environments. My past experiences had been mostly with Fibre Channel storage so my I was never that sold on NFS. Now I think that NFS is a very attractive option when designing Cloud and VDI environments.
So if we consider some of the options that I talked about in the block storage section, but thinking about how NFS might change them. The first thing to think about is that you can either present a single NFS volume to the entire cloud depending on size or a volume to each organization. This will make provisioning VMs much more straightforward and should be less waste of space. Now in most designs it will probably not be possible to have a single NFS volume server the entire cloud, but in a small private design it might work. By have a single storage volume all VMs are placed in one location and you are not forced to pick a datastore size. I think this will prevent wasted space by using different sized datastores to try and meet the VM size demands.
Don’t know if I have answered any questions for you or just caused more. But I hope that I’ve given you some things to consider when working on the design of your datastores for your vCloud organizations.
About Brian Suhr
Brian is a VCDX5-DCV and a Sr. Tech Marketing Engineer at Nutanix and owner of this website. He is active in the VMware community and helps lead the Chicago VMUG group. Specializing in VDI and Cloud project designs. Awarded VMware vExpert status 6 years for 2016 - 2011. VCP3, VCP5, VCP5-Iaas, VCP-Cloud, VCAP-DTD, VCAP5-DCD, VCAP5-DCA, VCA-DT, VCP5-DT, Cisco UCS Design