Skip to content
Calcrivo

VMware Datastore Capacity Calculator

Size a VMFS or NFS datastore for VMDKs, swap files, snapshot growth and the free space vSphere needs to stay healthy.

Inputs

TiB
VMs
GiB
%

Thin-provisioned VMDKs only consume written blocks.

GiB

An unreserved VM writes a .vswp swap file equal to its configured RAM.

%
%
%

Below ~10% free, snapshot consolidation and Storage vMotion start to fail.

VMs the Datastore Supports

137VMs

Space Consumed per VM

119.5GiB

Usable Capacity After Reserve

16,384.0GiB

Space Consumed Today

4,780.0GiB

Datastore Utilisation

23.3%

Capacity Verdict

Plenty of headroom — this datastore is under-subscribed

Step by step

  1. Values used

    Datastore raw size = 20 TiB; VMs on this datastore = 40 VMs; Provisioned disk per VM = 200 GiB; Actual disk consumed = 45 %; Thin provisioning enabled = Yes; Configured memory per VM = 16 GiB; Memory reserved per VM = 0 %; Snapshot delta allowance = 15 %; Free space kept in reserve = 20 %

  2. VMware Datastore Capacity

    space per VM = consumed VMDK + (configured RAM × (1 − reservation)) for the swap file + snapshot allowance; VMs supported = raw size × (1 − free reserve) ÷ space per VM.

  3. VMs the Datastore Supports

    = 137 VMs

  4. Space Consumed per VM

    = 119.5 GiB

  5. Usable Capacity After Reserve

    = 16,384.0 GiB

  6. Space Consumed Today

    = 4,780.0 GiB

  7. Datastore Utilisation

    = 23.3

  8. Capacity Verdict

    = Plenty of headroom — this datastore is under-subscribed

How it works

A VM costs a datastore more than its VMDK. Every powered-on VM without a full memory reservation also writes a .vswp file the size of its configured RAM, snapshots grow delta disks that can rival the base disk, and thin provisioning only defers the VMDK cost rather than removing it. Subtracting a free reserve first is what keeps the datastore operable rather than merely full. A datastore at 95% cannot consolidate a snapshot or accept a Storage vMotion, so it fails exactly when you need the tools that would rescue it — and thin provisioning means the wall arrives without warning.

Formula

VMware Datastore Capacity

space per VM = consumed VMDK + (configured RAM × (1 − reservation)) for the swap file + snapshot allowance; VMs supported = raw size × (1 − free reserve) ÷ space per VM.

.vswp
Swap file created at power-on, sized as configured RAM minus the reservation
snapshot allowance
Delta-disk growth budgeted per VM
free reserve
Headroom left unallocated so consolidation and vMotion can work

Frequently Asked Questions

How is VMware Datastore Capacity calculated?

space per VM = consumed VMDK + (configured RAM × (1 − reservation)) for the swap file + snapshot allowance; VMs supported = raw size × (1 − free reserve) ÷ space per VM. A VM costs a datastore more than its VMDK. Every powered-on VM without a full memory reservation also writes a .vswp file the size of its configured RAM, snapshots grow delta disks that can rival the base disk, and thin provisioning only defers the VMDK cost rather than removing it. Subtracting a free reserve first is what keeps the datastore operable rather than merely full.

Why does VMware Datastore Capacity matter?

A datastore at 95% cannot consolidate a snapshot or accept a Storage vMotion, so it fails exactly when you need the tools that would rescue it — and thin provisioning means the wall arrives without warning.

What values do I need to enter?

This calculator takes 9 inputs: Datastore raw size, VMs on this datastore, Provisioned disk per VM, Actual disk consumed, Thin provisioning enabled, Configured memory per VM, Memory reserved per VM, Snapshot delta allowance, Free space kept in reserve. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.

Does a full memory reservation remove the swap file?

Yes. The .vswp file is sized as configured RAM minus the reservation, so a 100% reservation creates no swap file at all. That trades datastore space for a permanent claim on host memory, which lowers the memory overcommit you can run.

You might also need