To resolve this issue:
The InstantCloneFreeze functionality can be used on the SourceVM to limit the number of new redo log delta disks created for the SourceVM to 1, regardless of the number of InstantClone operations invoked on the SourceVM. See
Freezing the Source Virtual Machine for an Instant Clone Operation.
Note: Once a SourceVM is frozen, the VM will still be shown as PoweredOn and running, even though guest instructions are not running. There are no indicators on the vSphere UI to indicate a VM is instantCloneFrozen. The VIM API boolean Vim.VirtualMachine.runtime.instantCloneFrozen can be used to check if a SourceVM is instantCloneForzen. The only way to exit the instantCloneFrozen mode is to powerOff or reset the VM.
- Cleanup existing redo log delta disks from SourceVM:
If a Virtual Machine is observed to have a large number of redo log delta disks, invoke the Vim.VirtualMachine.PromoteDisk(unlink=True), which will result in the VM from having a single flat vmdk file.
- Clone with memory snapshot as an alternative to InstantClone:
If InstantCloneFreezing is not an option (eg. OS does not have vmtools available), then the Clone with memory snapshots may be used as an alternative way to achieve a very similar end result as InstantClone, with the downside that it will be slower and less memory efficient due to lack of memory page sharing.
By default, the Clone operation will attempt do a full disk copy from the SourceVM to the ClonedVM. To achieve better disk efficiency as well as Clone time, ensure there exists at least one snapshot on the SourceVM, and Clone with diskMoveType=moveChildMostDiskBacking, which will only perform a copy of the SourceVM's latest snapshot rather than the entire disk content.