Monday, March 30, 2009

Could not power on VM II

Here is a revisit the problem with not being able to power on a VM. In my previous post, Could not power on VM, it use a Linux command to kill the process so that the locked swap file can be release. Today I found an even easier way to fix the problem.

In my situation, I have an ESX server has some physical problem, which I haven't figured out what caused it yet. Basically two hostd and one vpxa processes are taking up 100% usage of CPU and 95% of 800MB memory and 50% of 1.6GB swap in service console. Contacted VMware technical support, and after he tried a couple things that I did to kill the hostd processes and vpxa without success, he gave me a solution, which is to reboot the ESX server. That is right, the solution is to reboot the ESX. In VC, the ESX has a "not responding" status. I have to export a list of the VM running in this server, record what datastore these VMs reside in. After that, I disconnected the ESX, and removed it from VC. Now I need to use RDP or SSH to connect to VM, and to shutdown the VM so that I can register the VMs in another ESX and power it on. Most of the VMs are working fine. But there always one or two VMs doesn't behave the way they are supposed to. One VM gave me an error of "Could not power on VM: No swap file. Failed to power on VM.". When I tried to remove the file from service console, it gave me an error of "Device or resource busy". The service console in this ESX isn't 100% fully functioning. "ps -ef | grep VM_name" doesn't returned anything. It means, killing the process won't work in this case. The solution I found is to rename the VM's vswp file.

Error: Could not power on VM: No swap file. Failed to power on VM.
Solution: Rename to vm_name-xxxxxx.vswp file name to something else, and VM can be powered on.

Here are two good articles about how to kill a VM: Gabe's virtual world and Technoblog. The reason I mentioned above is basically the last resort.

No comments: