vSphere “good practices” for Windows VMs

May 23, 2015 – 8:49 pm

I won’t call them best practices because these are my personal preferences/standards. I am posting this as I had a conversation with a junior sysadmin earlier about this. Figured it could come in handy for others looking for ideas on how to approach this!

When creating a VM for a Windows based system, I always apply the following standards:

  • C: drive – OS installation only, usually 60GB thin provisioned (Windows 2012 R2)
  • D: drive – Applications binaries, sized according to requirements
  • E: drive – Data, sized according to requirements (IIS Inetpub for example gets relocated here and renamed).
  • P: drive – Pagefile (with SCSI id 0:15 – easy to identify/exclude them from backups/replication (with Veeam for example))

More drives are created based on requirements/applications (SQL has a L: drive for logs, a K: drive for backups (exports), etc…)

Each drive is in it’s own VMDK file of course, I never create multiple partitions in a VMDK, this simply makes things more complicated when resizing.

I usually keep the OS partition on a standard SCSI controller, and if there is some value to it, add a PVSCSI controller for the applications/data drives.

The C: drive contains a folder called Scripts where I store generic scripts that I use regularly

  • Clear-EventLogs.ps1
  • Update-Windows.ps1 (using the Windows Update Powershell Module) – in a template, this can be triggered easily from PowerCLI (convert from Template to VM, power up, execute script).
  • Prep-Template.ps1 (for templates only – I delete this on deployed VMs) – This is run when image editing/updating is done. It removes the IP, clears the temp folders, the event logs, etc… before shutting down.

What are your standards?

Post a Comment