How do you size ISO Template Datastore?

While studying for my VCAP-DCD exam I came across a statement in the vSphere 4 design workshop student manual that had me chuckle.  To paraphrase:

There is no need for datastore overhead because templates do not run, and therefore do not have snapshots.

I have to say that I am split on this one because while templates do not have snapshots I ALWAYS provide at least 10% of free space in my Template datastores.

Let’s break this down a bit.

  1. I always design my environments with centralized datastores specifically for holding templates, ISOs, and occasional .flp files.
  2. I try to keep the number of these datastores as low as possible based on the needs of the environment [Production/Dev/QA/Etc.]
  3. Usually set this between 300-500 GB depending on how many OS’s the environment needs to deploy.  Naturally this could be smaller in most environments.
  4. I always leave at least 10-20% free on these datastores because I know we’ll need to add new ISOs for new applications, new templates for new OSes or applications, and to update templates.
  5. I have used the templates datastore as a staging drive in the past when resources were tight or having to wait for storage to be provisioned for new systems.

Wait, did you catch that?  The important one that VMware missed?  Yea, number 4. UPDATE TEMPLATES

I don’t know about you but I love snapshots!  I love the fact that I can start a snapshot on a VM, run updates, see how it goes, and revert if it goes poorly.  Because of this I nearly ALWAYS convert my templates to VMs and initiate a snapshot before performing any updates.  This saves huge disk space that can be consumed by template clones that many organizations use to maintain consistency. 

In situations where I’m looking at large Service Pack differences I will typically make a clone of an existing template and perform the SP upgrade on the clone to get it up to date.  Even then I perform a snapshot first so that if there is an issue or failure I can simply revert back and try again.

Granted, most snapshots consume very little drive space but I have found that performing monthly or quarterly Windows updates on templates means 500MB+ writes.  Spread that over a half dozen VMs and now you’re getting into several GB of snapshot space being consumed.  Other application updates will also initiate writes that would be written to the snapshot but those usually have very low impacts in my experiences.

All in all the amount of free space you would need to DESIGN for depends on the number of Templates you are updating, how many you perform simultaneously, and what operating systems you are updating.  These are things you’ll need to communicate with your customer/team when planning the environment.

So yes VMware, I can not perform snapshots on a template, but when I update that template I want to make sure I designed my datastore so that there is enough resources for me to use snapshots for the purpose they were intended.  Just sayin’ :)

Now. How do YOU design your Template Datastore?