Change Thick Thin Provisioning VMware: How-To
To change a VMware virtual disk from thick to thin provisioning (or vice versa), you must clone the VM or its disk to a new format using vSphere Client, Storage vMotion, or the `vmkfstools` command-line tool; there is no in-place toggle. This article explains the exact steps for each method, the differences between thick and thin disks, and what to consider before converting.
What Thick and Thin Provisioning Actually Mean
VMware offers two main disk allocation policies for virtual machines (VMs) on VMFS datastores. Thick provisioning allocates the full disk size (e.g., 100 GB) at creation time, immediately consuming that much physical storage. Thin provisioning starts small (e.g., a few GB) and grows the file as the VM writes data, up to the configured maximum. A third variant, thick eager zeroed, pre-writes zeros to the entire disk, which is required for some features like Fault Tolerance. The choice affects storage efficiency, performance, and operational overhead.
Why You Can’t Just Flip a Setting
Many administrators look for a simple checkbox to change provisioning, but none exists in the vSphere Client. The reason is that the disk’s format is baked into the VMDK descriptor file and the underlying data layout. Converting in place would require rewriting blocks while the VM is running, risking corruption. Instead, VMware provides cloning and migration tools that create a new disk in the desired format and copy the data over. This is a safe, supported approach.
Method 1: Convert Using vSphere Client (Clone to Template or VM)
This is the most straightforward GUI method and works for both powered-on and powered-off VMs.
- In the vSphere Client, right-click the VM and select Clone.
- Choose a name and location for the new VM.
- Select a compute resource (host or cluster).
- Select a datastore. Important: Check the box Select virtual disk format and choose Thin (or Thick) from the dropdown.
- Complete the wizard. The new VM will have the desired provisioning.
After cloning, you can delete the original VM if you no longer need it. This method creates a full copy, so it takes time and storage space for both VMs temporarily.
Method 2: Convert Using Storage vMotion (No Downtime)
Storage vMotion migrates a VM’s files to a different datastore while the VM stays powered on. It also allows changing the disk format during migration.
- Right-click the VM and select Migrate.
- Choose Change storage as the migration type.
- Select the destination datastore.
- In the Virtual disk format section, select Thin or Thick.
- Finish the wizard. The VM remains available throughout.
This method requires that the destination datastore be different from the source, or at least that the migration is allowed to rewrite files. It is the best choice for production VMs that cannot be powered off.
Method 3: Convert Using vmkfstools (CLI, for ESXi Hosts)
If you prefer the command line or need to convert a standalone VMDK, `vmkfstools` is the tool. This method requires the VM to be powered off and the disk to be detached from the VM.
- SSH to the ESXi host or use the ESXi shell.
- Locate the VMDK file (e.g.,
/vmfs/volumes/datastore1/myvm/myvm.vmdk). - Run the clone command with the
-i(input) and-d(disk format) flags:
vmkfstools -i /vmfs/volumes/datastore1/myvm/myvm.vmdk -d thin /vmfs/volumes/datastore1/myvm/myvm-thin.vmdk
This creates a new thin VMDK. You must then remove the old disk from the VM and attach the new one. This method is more error-prone for beginners, so use it only if you are comfortable with the CLI.
How to Choose Between Thick and Thin
There is no universal “best� option; it depends on your workload and storage.
- Thin provisioning is ideal for development/test environments, desktops, and VMs with unpredictable growth. It saves storage space but can lead to over-allocation if many VMs grow simultaneously.
- Thick lazy zeroed (the default “thick�) is often used for production databases and VMs that need consistent performance, as it avoids the overhead of allocating blocks on first write.
- Thick eager zeroed is required for vSphere Fault Tolerance and is recommended for high-I/O workloads because it pre-zeroes all blocks, reducing latency during initial writes.
Also consider your storage array: if it has thin provisioning at the array level, using thin VMDKs may cause double-thinning overhead. In such cases, thick VMDKs on a thin array can be a better balance.
Common Problems and Misconceptions
A frequent misunderstanding is that converting thick to thin will immediately free up space on the datastore. In reality, you must delete the original thick disk after the clone/migration, and even then, the freed space is only available after the datastore is re-scanned. Another issue is running out of space during conversion: since the clone creates a second full disk, ensure you have enough free space on the destination datastore. Also, thin disks can suffer from fragmentation and performance degradation if they grow excessively, so monitor your datastore usage regularly.
Cost and Performance Considerations
Thin provisioning can lower storage costs by reducing allocated capacity, but it can also lead to unexpected costs if you over-allocate and then need to expand the datastore. Performance-wise, thick eager zeroed disks often provide the best and most consistent I/O, while thin disks may have a slight overhead due to block allocation on first write. However, on modern all-flash arrays, the performance difference is often negligible. Always benchmark your specific workload if performance is critical.
Frequently Asked Questions
Can I convert a disk without cloning?
No, VMware does not support in-place conversion. You must use one of the methods above, which all involve creating a new disk and copying data.
Does converting require downtime?
Storage vMotion allows zero downtime. The clone method typically requires the VM to be powered off, unless you use a third-party tool that supports live cloning.
Will converting affect my VM’s data?
No, the conversion copies data block-by-block, so the new disk is identical. However, always take a snapshot or backup before conversion to be safe.
What is the difference between thick lazy and eager zeroed?
Lazy zeroed allocates space but does not zero it, while eager zeroed writes zeros to every block at creation time. Eager zeroed is required for Fault Tolerance and can improve first-write performance.
Can I convert a disk from thin to thick using the same methods?
Yes, the same clone, Storage vMotion, and vmkfstools methods work in both directions. Just select the opposite format.
Related
Method: the standard formula for this calculation, rounded as each result states. See how the calculators work or report an error.