Cloning a VMDK While the VM is Powered On
We can clone VMDKs that we can get a read only lock on. When a VM is actively writing to a VMDK, it needs the lock to be be read-write, which is an exclusive lock. If we wanted to make a clone of a VMDK from the command line while a VM was running we could take a snapshot and clone the base disk or one of the snapshots that it is not actively using. The downside is that new data written to the active snapshot will not be transferred to the new disk. This is the same process that cloning the VM through the vSphere Client will do, but on a single disk.
In the example below I have taken a snapshot of a running VM.
Ensure that the VM is not running on the base disk.
# grep vmdk vps.vmx scsi0:0.fileName = "vps-000001.vmdk"
Check the base disk to see if it has a RW (exclusive) lock on the disk we want to clone. We can see that there is a single RO lock, but there is no owner to a RW lock (indicated by the 00000000-00000000-0000-000000000000).
# vmkfstools -D vps-flat.vmdk Lock [type 10c00001 offset 133255168 v 1775, hb offset 3907584 gen 7633, mode 2, owner 00000000-00000000-0000-000000000000 mtime 94066 nHld 1 nOvf 0] RO Owner HB Offset 3907584 4f7b1c42-4b58f6dd-3e59-bcaec58ad83d Addr <4, 309, 2>, gen 1746, links 1, type reg, flags 0, uid 0, gid 0, mode 600 len 10737418240, nb 1253 tbz 0, cow 0, newSinceEpoch 0, zla 3, bs 1048576
Since the base VMDK does not have an exclusive lock on it, we can clone it.
# vmkfstools -d thin -i vps.vmdk vps.running.vmdk Destination disk format: VMFS thin-provisioned Cloning disk ‘vps.vmdk’… Clone: 100% done.
blog comments powered by Disqus