After a successful Storage vMotion between VVol datastores, the source VMDK file is not deleted, leading to 'vmdk already exists' errors on subsequent migration attempts.
During the initial migration, the destination VMDK is successfully copied (e.g., appended with a numerical suffix such as TestVM_3.vmdk0001), while the source directory incorrectly retains the original .vmdk file.
Source directory observation:
ls -lha /vmfs/volumes/vvol:1####/rfc###.####.####/
-rw-rw-r-- 1 <REDACTED_SECRETS> <REDACTED_SECRETS> 596 Nov 15 14:21 TestVM_1.vmdk
-rw-rw-r-- 1 <REDACTED_SECRETS> <REDACTED_SECRETS> 599 Nov 14 22:47 TestVM_2.vmdk
-rw-rw-r-- 1 <REDACTED_SECRETS> <REDACTED_SECRETS> 622 Nov 15 14:03 TestVM_3.vmdk
Destination directory observation confirms the target file exists:
/vmfs/volumes/vvol:2####-####/rfc####-/####-####/TestVM_3.vmdk
The virtual machine's configuration file (.vmx) accurately reflects that the virtual machine is running on the new VMDK location:
less TestVM.vmx
scsi0:0.deviceType = "scsi-hardDisk"
scsi0:0.fileName = "TestVM.vmdk"
sched.scsi0:0.shares = "normal"
scsi1:1.deviceType = "scsi-hardDisk"
scsi1:1.fileName = "/vmfs/volumes/vvol:2####-####/rfc####.####-####/TestVM_3.vmdk"
sched.scsi1:1.shares = "normal"
ESXi 7.x and above.
If VMDK files remain on the source vVol Datastore after a successful Storage vMotion, the files are likely orphaned, not in use by the live VM, or are remnants of an incomplete cleanup process. This behavior is generally abnormal for a completed migration, which should clean up all related files automatically.
Symptom: Error `vmdk already exists`
Several issues can cause files to be left behind: