jump to navigation

Fun With VMWare EVC June 22, 2011

Posted by audiomatron in Virtualization.

 I had hoped that my first ever blog post would have arrived with a bit more fanfare, but this was too interesting (to me anyway) to pass up. Today, I decided to build a vSphere lab at work. I finally have enough half decent gear to pull it off, so I went for it. The only area of contention in the whole setup is my hosts.

I have two different ESXi hosts in my lab setup – a newer Dell T605 server, and an old CAD workstation with a Tyan motherboard. Both run ESXi perfectly, and both have AMD opteron processors. Unfortunately, that is where the similarities end. The old CAD workstation is just that – old. Its processor is a dual core Opteron 170, a 1st generation proc. The Dell T605 has two quad core 3rd generation opterons. I wasn’t sure at first if this was going  to be a problem, but as it turns out is was… sort of. Enter, Enhanced vMotion Compatibility mode, or EVC.

Basically, what EVC does is allows vMotion (live migration of virtual machines) between hosts that have processors of similar architectures, but perhaps are from different eras (e,g, one is older). EVC creates a baseline to to disable features of processors in a HA (High Availability) cluster that aren’t available in all of the processors in the cluster. Now, how I found out that I would need this feature is the truly humorous part.

After I got all of my hardware set up, software installed, HA cluster built, and built a couple of VMs (a DC and a vCenter box), I decided to use a different physical switch for my VM traffic. So, I jerked loose all of the wires and moved them to the new switch. I’m not sure what I thought would happen, perhaps some sort of latent desire to do that to production systems came out in me… who knows.. I digress. Of course, I couldn’t get to vCenter anymore, so I pointed my vSphere client at the host where the VMs were, just in time to watch them disappear before my very eyes. I had triggered HA to work its magic. As comforting as it is to know how well HA works, in this scenario it was a little frustrating, for, you see, It restarted my VMs on the older host. The VMs were working fine, but now I couldn’t vMotion them back to their original hosts since the hosts processors were not fully compatible with each other. I needed EVC.

However, when I went to turn on EVC ( a thing which I have never had to worry about in my production environment as all three of my hosts are identical), I was informed that there were VMs using features that were not available on one of my hosts. I misread that to say, “it ain’t gonna happen”. I even foolishly tweeted my dismay over the whole situation. After a while away from it, I decided to re-visit the issue.

It seemed no matter what I tried, I kept getting similar errors. A quick trip to Google, then to the VMWare forums revealed that you can’t add hosts with running or suspended VMs to a cluster with EVC, nor can you activate EVC in a cluster with hosts that have running VMs on them. To further complicate matters, my vCenter server was one of the VMs in question. Here’s what I had to do:

1. Remove the host with no running VMs from the cluster

2. Close the vSphere client, the re-open it, pointing it at the host with the running VMs on it. Power off the VMs

3. Point the vSphere client at the other host (the one you removed from the cluster). Create new VMs with custom options, and instead of making new vmdk’s, use the ones from the existing VMs.

4. Power on the new VMs. These should essentially now be the same as your original VMs

5. Point the vSphere client back at vCenter. You should now have a cluster with one host and no VMs, and a host outside the cluster running the VMs.

6. Right click the cluster and click “Edit Settings”. Select VMWare EVC. Click “Change EVC Mode”. Select the mode appripriate to your oldest processor, in my case, it was AMD Opteron Generation 1. Click OK.

7. Point the vSphere client back at the host with the VMs. Shut down the VMs.

8.Point the vShere client at the host that is in your cluster. Create new VMs, using your original vmdk’s. Power them on.

9. Point the vSphere client back at the vCenter server. You should have a cluster with one host running the VMs, and one host outside the cluster. Add this host to the cluster.

Wasn’t that fun? Now, I can confidently move on to the projects I initially intended to work on in this lab, now that I know I can vMotion between my hosts (which I have verified)




1. Brian Wagner - June 22, 2011

Good info! The best thing about labs and problems is that it makes for great blog posts!

2. Jeff Sloan - June 23, 2011

Nice job! I’m making headway on my cluster…fun stuff!

3. Don’t Leave Virtual CDs in Your Virtual CD Drive (HA Won’t Like it) « who made ME an expert anyway? - July 29, 2011

[…] the hosts. Keeping vCenter separate allowed me to accomplish two things – I could avoid the EVC debacle, as referenced in my very first blog post (I’ve torn the lab down since then, and needed to […]

4. Scott McKellar - November 22, 2011

nice one. Im still stuck. to complicate things in my lab I am running ESXi 4.1 on 1 host and ESXi 5.0 on the other. The vCenter VM is running on latest hardware version, so I cant launch it on the ESX 4.1 host… time to use VMWare Converter Standalone to move it(downgrading the firmware) to my ESX 4.1 host that is part of the new cluster with EVC enabled.

Scott - November 22, 2011

I can confirm after removing my host with VCenter VM from the cluster and shutting down VCenter VM – I successfully moved VCenter VM via VMWare Converter (hardware downgrade to 7) to host in cluster with EVC. I then connected to VCenter and re-added the other host to the cluster with EVC enabled. Next thing I’ll do is put ESXi 5 on the host running 4.1.

Because one of my lab hosts is much older than the other I have had to settle on Merom Gen (Xeon Core 2). Maybe a silly question but is there any difference from a performance perspective as to what version of EVC you run at other than the obvious performance issues when VMs run on the host with the older processor? Re rephrase will running at Merom cause a perf hit on the VMs running on the newer host?

audiomatron - December 5, 2011

Sorry about the delay in getting back to you. I went out of town and got sidetracked from blogging and such… I can’t say for certain, but if the features that EVC disables are features that enhance performance in some way, then it would stand to reason that you would take a performance hit in that regard. Although, I’d imagine the newer proc will still outperform the older one. Still, I’m sure the newer proc won’t work quite the same way with EVC enabled.

audiomatron - December 5, 2011

BTW, pretty slick using conver to move the VC VM. I’ll have to remember that one next time I have to re-build my lab.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: