This weekend I was storage VMotioning several VMs back to their original datastores (cleanup from some storage “issues” from a few weeks ago). All of these VMotions went through just fine, save one. This VM crashed immediately upon starting the move and attempts to start it back up resulted in “File Not Found” errors in VirtualCenter relating to the Dmotion .vmdk files. I attempted these fixes before finding the right one:
- the “Complete Migration” option available with the SVMotion plugin
- removing the VM from inventory & adding it again
- creating a new VM and attaching the disks
- editing the .vmx entries for the scsi devices to point to the display name of the origin LUN, since it appeared that the failures were occurring from files that didn’t exist yet on the destination
When I browsed the datastore where the disk files are located, the only .vmdks available were the ones prefixed with Dmotion. The .vmx file had pointers to the destination datastore with the .vmdks identified as the Dmotion ones.
In the vmware.log I found “File Not Found” errors from any attempt to start the VM back up. If I traced them back through the logfile it seemed to originate with the fact that the .vmdk files whose names matched the flat files (e.g. myVM-flat.vmdk & myVM.vmdk) went AWOL at some point.
I used this vmdk generator to resurrect the missing files:
and added the paths to these files back into the .vmx (scsi device section again). This got me part of the way as I could now start the VM; however, when I went to cold migrate the storage, VirtualCenter now errors out with:
“incompatible device backing specified for device ‘5’”
From this thread: http://communities.vmware.com/thread/50058
I tried the suggestion of removing from inventory and recreating the VM (and thus the .vmx file). This did the trick – I could then cold migrate to the new LUN and delete all the leftovers from the origin LUN once the migration was complete.