I was doing some storage migrations and in one of the clusters Storage vMotions failed with a message: Failed to resume destination VM: msg.vmk.status.VMK_MEM_ADMIT_FAILED.
After closer look I found that all those VMs that failed had a big memory reservations (192GB and 256GB). The ESXi 5.5 host only had 512GB of RAM. I will not go the topic why those reservations were set, but to successfully Storage vMotion those VMs I temporarily removed those reservations. After that Storage vMotion was successful. My guess is that VMWare check during Storage vMotion does the destination host (even though during Storage vMotion destination host was the same as source) has enough resources for this VM and if it does not it will fail the migration.
Recently I did some VM migrations to new datastores and I ran into a problem. Two VMs were showing that they were still using the old datastore although Used Space column showed that 0 B used. This happens sometimes when VM has CDROM or floppy disks are configured to use some image. But this time it was not the case.
After some digging around I found that it was VM log file (vmware.log) that had not moved during Storage vMotion.
To fix the issue I did following:
- Shutdown VM
- Downloaded the VMX file
- Edited the VMX file parameter “vmx.log.filename”. Replaced the existing wrong full path with “./vmware.log”
- Uploaded the VMX back to VM folder
- Started the VM
- Executed another Storage vMotion operation
After the Storage vMotion the old datastore was now released and I was able to decommission it.