Every night, Tintri VMstores upload a summary of their health status and activity. This helps Tintri identify issues with systems in the field and allows our support team to proactively reach out to customers whose storage devices may need attention. It also gives Tintri engineering a better sense of how our product is actually used, and what areas might need attention. Real-world data from VMstore autosupports moves engineering decisions from “opinion-based” to “evidence-based.”
Virtual machine sizes
A simple question we can ask is “how big is a typical virtual machine?”
I collected anonymized virtual machine size information, from approximately 400,000 different virtual machines, from Tintri customers' most recent nightly autosupports. The two capacity statistics that are most relevant are:
- Provisioned size: how large of a virtual disk did the user create? Tintri VMstore collects this information from the file size of the .vmdk files attached to a VM.
- Used size: how much logical data was written to the virtual disks and stored on Tintri?
In some cases, used size can exceed provisioned size. A VMware snapshot creates a -delta.vmdk file which does not add to the provisioned size, but does add to the used size. Tintri also reports a zero provisioned size for synthetic virtual machines that represent VM snapshots or replicas. In some environments, the provisioned size of a linked clone may also be underreported. I excluded from my analysis a significant number of VMs that had zero for both the provisioned and used size; these may be VMs that were deleted from storage but not from vCenter, or other corner cases.
VM sizes span several orders of magnitude. The smallest provisioned size in my data set was just a few hundreds of kilobytes, and the largest was more than 30 TiB. The distribution of VM sizes is graphed below: