Tuesday, August 2, 2011

Unable to power on a ESX/ESXi 4.0 or 4.1 virtual machine on a ESX/ESXi 3.5 host

It just occurred to me that last week that it may not be common knowledge to all of the VMware administrators out there that virtual machines can have different version levels and while you can mount and power on a VM with a lower hardware level to an ESX/ESXi server that supports a higher version level VM, you cannot go backwards to mount and power on a VM with a higher version level VM to an older ESX/ESXi server.

What got me to write this post was when I was sitting with a colleague of mine last week to help him troubleshoot an issue he had with powering on a virtual machine he had just successfully cloned but for some reason was not able to power it on.  The ESXi 3.5 host he was powering on the virtual machine on kept throwing the following generic error:

Unable to Power On virtual machine with “A General System error occurred” (Power Off)

… and refused to power on the VM.  The first thought I had was whether this VM used to reside on an ESX/ESXi 4.0 or 4.1 server but my colleague said: “Yes, but I’ve powered on VMs on ESX/ESXi 4.0 or 4.1 onto an older ESX/ESXi 3.5 server before.”  Since he said it with certainty, I just took his word and didn’t think much about it.  After exhausting all of our ideas, I started searching for different variations of the string:

Unable to power on a ESX/ESXi 4.0 or 4.1 virtual machine on a ESX/ESXi 3.5 host

It took me quite a bit of time till I came across a result that read Virtual Machine Version which finally sparked my memory so I told my colleague to have a look at the problematic virtual machine’s properties.  Here’s what we saw:

image

So just as I suspected, the virtual machine version for the cloned VM is 7 which is the version level of ESX/ESXi 4.x hosts.  So the solution?  There are actually 2 options:

Option #1:

… is to use the VMware converter tool to convert this virtual machine’s level back down to an ESX/ESXi 3.5 compatible version such as version 4:

image

Option #2:

… is to edit the VMX file as outlined in this blog: http://www.amikkelsen.com/?p=557

As stated in the blog, editing the VMX can possibly corrupt the virtual machine so I would suggest against it in a production environment.

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

Oddly enough, the error message I included above that my colleague was experiencing while trying to mount a new virtual machine version VM directly on a standalone ESX/ESXi host was different than the error message I received while mimicking the action in another environment so I’ll include the results I have as well in case someone is searching for this:

Mounting on a standalone ESX/ESXi host

image

image

As soon as you complete the inventory wizard, you receive the following error message:

The VI Client has lost the connection to the ‘yourHost.yourDomain.com” server. Do you want to return to the login dialog? Click No to exist the VI Client."

image

You connect to the host directly again and it doesn’t look like anything is wrong:

image

However, you do notice that the VM you just tried to inventory is not there:

image

Repeating the mounting process generates the same behavior.

Mounting via vCenter

image

image

image

Once you complete the inventory process, you receive the following error:

An error occurred while communicating with the remote host.

image

You’ll also notice that the host you’re trying to connect to is now disconnected:

image

Reconnecting the host completes but the virtual machine you attempted to inventory is no longer there:

image

Hope this helps anyone who may be encountering this problem.

No comments: