TruGrid VM Pools: Linked Clones Disk Usage and Storage Planning

Published 2026-08-21. Covers TruGrid RDS Manager Enterprise releases up to 2026.05.175; the cloning behavior described here is unchanged in later releases. Every number in this guide was measured on a live vSAN environment (default storage policy: RAID-1 mirroring, thin provisioning).




Contents



The short version


  • All clones share ONE read-only copy of the master's disk. They do not copy it.
  • Each clone has exactly ONE attached virtual disk, the same size as the master's, stored as a stack of layer files. There is no separate identity disk and no separate write-cache disk.
  • Everything needed to boot a pool VM lives inside VMware itself: each clone is a complete, native vSphere virtual machine, so there is no streaming server, no external delivery controller in the boot path, and nothing outside your hypervisor that can fail and leave desktops unable to start.
  • A disk layer records everything ever WRITTEN, in multi-megabyte allocation units. Deleting files inside Windows never returns datastore space - not on a clone, and not on the master either.
  • When TruGrid finishes preparing a clone, TruGrid snapshots it as trugrid-baseline. Resetting is an instant revert to that snapshot: the running layer is discarded and its space comes back. Rebooting discards nothing.
  • Your storage estimate = the master's disk (once) + per clone: a birth cost of about 32 GB (measured, explained below) + growth between resets + about one RAM's worth of swap while powered on.


1. A measured walk-through, step by step

Everything below is one real sequence, captured screen by screen: a master was cleaned up and updated, shut down, a pool was created from it, and the first clone was examined minutes later. Sizes are exactly as the vSphere Client shows them; on this vSAN they include the RAID-1 mirror, so displayed is roughly twice the logical bytes.


Step 0 - the master, before anything else


GOLD-RDS-01: one 50 GB disk, 8 GB of memory, freshly serviced (large files deleted, .NET and Windows updates applied, rebooted twice, old snapshots removed), then POWERED OFF. Two views of the same machine:


View

What it shows

Inside Windows (drive C: properties)

35.8 GB used of 49.3 GB capacity

On the datastore (the vCenter Files view)

one disk file of 100.03 GB - the full 50 GB, mirrored


First lesson, and it applies to every disk in this guide: the datastore file stayed at its full size even though files were deleted inside Windows. A virtual disk keeps every block that was EVER written to it; deleting files inside the guest frees space for Windows, never for the datastore. This master has been in service for years, so its whole 50 GB has been touched at some point - a freshly built master would show less.


e master's folder in the vSphere Client Files view, before the pool exists (for illustration purposes only; sizes are the real measurements).*


What each file is:


Name

Size (as vCenter displays it)

What it is

GOLD-RDS-01.vmdk

100.03 GB

The master's one disk: 50 GB, every block historically written, times two for the vSAN mirror.

.vmx, .nvram, logs

~3 MB

Ordinary VM housekeeping files.


Step 1 - creating the pool costs 36 MB


A pool named TEST-RDS-01 was created with GOLD-RDS-01 as the source. Linked clones must attach to a SNAPSHOT, so TruGrid took one automatically (named trugrid-pool-base- plus the date and time). Because the master is powered off and nothing is writing, the snapshot is a bookmark, not a copy. The master's folder afterwards:


e same folder after the pool was created. The two highlighted rows are new - together they cost 36 MB.*


What each file is:


Name

Size (as vCenter displays it)

What it is

GOLD-RDS-01.vmdk

100.03 GB

Unchanged.

GOLD-RDS-01-000001.vmdk

36 MB

NEW - the pool snapshot's layer. Stays this small for as long as the master stays powered off.

GOLD-RDS-01-Snapshot.vmsn

95 KB

NEW - the snapshot's bookkeeping file.

.vmx, .nvram, logs

~3 MB

Unchanged.


Step 2 - the first clone, minutes after cloning


TruGrid cloned POOL-VM-001 from that snapshot (a vSphere linked clone) and started preparing it: guest customization, the domain join, first boot. Captured while that preparation was still running:


e clone's folder, minutes after cloning. Note there is no full-size disk anywhere in it - the 50 GB of Windows lives once, in the master's folder.*


What each file is:


Name

Size (as vCenter displays it)

What it is

POOL-VM-001.vmdk

31.8 GB

The clone's ONE disk layer so far: everything preparation has written, in allocation units. See the reconciliation below - only 1.3 GB of it is new data.

vmx-POOL-VM-001-*.vswp

82 MB

VMware overhead swap, present while powered on.

.vmx, .nvram, logs, locks

~0.5 MB

Ordinary VM housekeeping files.


Windows inside this brand-new clone reports 37.1 GB used - the master's 35.8 GB plus just 1.3 GB of genuinely new data (a 1.25 GB page file, logs, first-boot housekeeping). Yet the clone's layer already holds about 16 GB of allocation (31.8 displayed, halved for the mirror). That gap is ALLOCATION GRANULARITY: a copy-on-write layer allocates in multi-megabyte units, and first boot makes thousands of small scattered writes - registry, NTFS metadata, logs, caches - each claiming a whole unit. The datastore charges the allocated number, so ~32 GB displayed is this image's real per-clone birth cost. It was measured twice, on two different pools from this master: 31.8 GB and 31.1 GB.


Step 2b - the whole clone, reconciled to the byte


The clone's vCenter Summary page says STORAGE USAGE 139.93 GB. That number is the sum of everything the clone touches, including what it SHARES:


Component

Displayed

The master's disk (shared with every clone in the pool)

100.03 GB

The pool snapshot on the master (shared)

0.04 GB

The clone's own layer

31.8 GB

Memory swap while powered on (about the VM's RAM size)

~8.1 GB

Total - matches the Summary page

139.93 GB


Two planning rules fall straight out of this reconciliation. One: never ADD UP the per-VM Summary numbers - a hundred clones would count the shared 100 GB master a hundred times. Two: a powered-on VM carries a swap file of about its RAM size; it disappears at power-off.


Step 3 - preparation finishes: the baseline freezes


When preparation completes, TruGrid shuts the clone down cleanly and snapshots it as trugrid-baseline (description: clean, powered-off, post-join state), then powers it back on. That snapshot FREEZES the ~32 GB birth layer - it will never grow or shrink again - and opens a fresh, empty RUNNING layer on top. From this moment the clone's one disk is a three-part stack:


e clone's Manage Snapshots view after preparation: exactly one snapshot, trugrid-baseline, holding the frozen birth layer. 'You are here' is the running layer.*



Layer

Scope

Content

Master layers (bottom)

Shared by all clones, read-only

The 100 GB chain above. Stored once. Never grows while the master stays powered off.

Baseline layer (middle)

One per clone, frozen at ~32 GB

The birth cost: preparation's writes, frozen by trugrid-baseline. The price of instant resets.

Running layer (top)

One per clone, starts empty, grows

Every write since the baseline. The only layer that changes day to day.


Identity (computer name, domain account) lives in Active Directory and the Windows registry like on any ordinary machine - a few kilobytes, not a disk. Administrators coming from products that attach a small identity disk and a write-cache disk per VM should expect neither here: one disk per clone, nothing else to manage.


Step 4 - life: what grows, what does not


Event

Effect on the layers

Reboot (restart inside Windows)

Nothing is discarded. The running layer keeps everything and keeps growing. A reboot is invisible to the disk layers.

Deleting files inside the clone

Frees space for Windows only. The running layer keeps every block ever written - temp files, uninstalled software, all of it stays allocated on the datastore.

Reset (TruGrid reverts to trugrid-baseline)

The running layer's content is DISCARDED and its datastore space comes back. The clone boots exactly as it was when preparation finished: clean, domain-joined, empty running layer.

Power off

For a non-persistent pool TruGrid recycles a powered-off clone automatically: reset, then power back on. Recycling on user sign-out and on a daily schedule are optional extras. The recycle cadence is your storage-growth control.

Image update (recompose)

TruGrid deletes the clone and re-clones from the new image, keeping the computer identity. No layer stacking - and all accumulated per-clone space returns in the same move.


How fast does the running layer grow? It tracks everything ever written, so it depends entirely on workload. A measured heavy case from an earlier pool on this same master: LAB-VM-017 ran disk benchmarks for twelve days with no resets and its running layer reached 56.6 GB displayed - while Windows inside showed only 35.8 GB used, because the benchmarks' deleted test files still occupied the layer. Treat that as what a pathological workload can do; measure one normal user week on your own pool for a realistic number.


2. Three things about the numbers vCenter shows you


  • On vSAN, the Files view shows RAW consumption including data protection. Under the default policy (RAID-1, failures-to-tolerate 1) every byte is stored twice - a fully written 50 GB disk displays as 100 GB. A RAID-5 policy multiplies by about 1.33 instead. This guide uses displayed numbers throughout, directly comparable to your own Files view.
  • Layer sizes are ALLOCATED space, not bytes the guest wrote. Copy-on-write layers allocate in multi-megabyte units, so scattered small writes consume more allocation than data (the measured extreme: 1.3 GB of new data occupying ~16 GB of allocation). Allocated space is what the datastore loses, so plan with it as-is.
  • A VM's Summary 'Storage Usage' includes everything it shares. Reconcile it as in step 2b if you want to understand it, but never sum it across clones.


3. Worked estimate: 100 clones of this master


The formula, in vCenter-displayed numbers:


Total = Master disk chain (once) + N x ( Baseline ~32 GB + Running-layer growth + ~8 GB swap while powered on )


Scenario

Arithmetic (GB, displayed)

Total

Day one, all 100 powered off

100 + 100 x 32

about 3.3 TB

Day one, all 100 powered on

100 x 8 swap

about 4.1 TB

Steady state, tight recycling (sign-out or daily; running layers average ~8 GB)

100 + 100 x (32 + 8 ) + 800

about 4.9 TB

Steady state, relaxed recycling (running layers average ~15 GB)

100 + 100 x (32 + 15) + 800

about 5.6 TB

Two weeks, NO recycling, benchmark-heavy workload (the measured LAB-VM-017 case)

100 + 100 x (32 + 57) + 800

about 9.8 TB

Absolute ceiling (every running layer completely full at 100 GB displayed)

100 + 100 x (32 + 100) + 800

about 14 TB


The honest planning message: one hundred FULL copies of this master would cost about 7 TB before anybody logged on (100 x 72 GB of written data, mirrored), so the sharing is real - but linked clones are not free. The birth cost is fixed by your image (~32 GB here; measure one clone of YOUR master and substitute), and after that the recycle cadence decides where between roughly 5 TB and 14 TB the pool settles. Plan for your cadence, measure for a month, adjust.


Adapting this to your own environment


  • Birth cost: provision ONE clone of your master and read its layer size in the Files view before sizing the pool. It is a property of your image, not a formula.
  • Growth: give a pilot pool one normal user week without recycling and read a running layer's size. Do not size from benchmark VMs.
  • Storage policy: these numbers assume RAID-1 mirroring (x2). For RAID-5, multiply logical estimates by ~1.33; on a non-vSAN datastore the Files view shows logical sizes directly.


4. The VMware disk types involved, and why


Type

Why

Master and clone hard disks: DEPENDENT mode

The normal vSphere disk mode that participates in snapshots. TruGrid requires it because the design runs on snapshots: the pool snapshot on the master and the trugrid-baseline on each clone. TruGrid never uses Independent-Persistent disks (they cannot be snapshotted, which would make reset impossible) and never uses Independent-Nonpersistent disks (VMware would discard writes on ITS schedule, outside TruGrid's controlled recycle).

Clone layers: child / delta disks

The linked-clone child and the snapshot layers are the same vSphere mechanism: copy-on-write layers (vsanSparse objects on vSAN, SEsparse files on VMFS). vSphere chooses this; you do not.

Provisioning: set by storage policy

On vSAN, thin versus thick is decided by the VM Storage Policy. Layers only ever consume what has been written (times the protection factor).

Persistent pools (for contrast)

A PERSISTENT pool clones the master in full: every VM gets its own complete copy, nothing is shared, no baseline, no reset. Budget the master's written data per VM. This guide's math applies to non-persistent pools only.


Good practices


  • Service the master BEFORE creating a pool: apply updates, delete leftovers, remove old snapshots you no longer need, reboot, shut down. Everything in the master is stored once and shared; everything a clone does at first boot is paid per clone, times the pool size.
  • Once a pool exists, leave every snapshot named trugrid-* alone, on the master and on the clones. TruGrid manages them; clones depend on the master's pool snapshot, and reset depends on each clone's baseline.
  • Keep the master powered off. TruGrid only clones from a powered-off source, and a powered-off master's layers never grow.
  • Pick a recycling cadence deliberately (power-off recycling is always on; sign-out and scheduled recycling are optional). It is the storage lever you own after the image is set.
  • If your image still uses Windows' default RAM-sized page file, set a fixed smaller one in the master; the example image here already runs a fixed 1.25 GB file.
  • Update images through TruGrid's image update (recompose): it refreshes the image AND returns all accumulated per-clone space in one move.
  • Watch the datastore, not the per-VM Summary numbers, and re-measure after the first month: your users' real write rate beats any estimate, including this one.


Questions, or numbers that do not match what you see? Send us two screenshots: the clone folder's Files view and the master's. Those two views contain everything this guide is built on.

Updated on: 22/08/2026

Was this article helpful?

Share your feedback

Cancel

Thank you!