Today I did something horrible. I yet again noticed that I bought the wrong CPU’s (basically I bought Xeon DP’s with four cores). Those have apparently a feature called SSSE3, which makes vMotion with our old Xeon DP’s (dual cores) fail before even trying.

But as we had a cooling outage today (basically ‘cause it broke), I needed to turn off some ESX servers. Thus leaving me with the new ones and one of the old ones. * yuck*

So after a bit of googling, I found this VMware KB entry, which luckily lists the registers (on level 1) you need to zero out.

1
2
ecx ---- ---- ---- -0-- ---- --0- ---0 -0--
edx ---- ---- ---- --0- ---- ---- ---- ----

Only problem after that was that it still wasn’t enough. So back to the drawing board. The final solution came rather quick and looks like this:

1
2
3
eax ---- ---- ---- ---- ---- 0--0 ---- ----
ecx ---- ---- ---- -0-- ---- --0- ---0 -0--
edx ---- ---- ---- --0- ---- ---- ---- ----

The only stupid thing about this is, that

  1. it ain’t supported by VMware (as in if you’re having trouble with your ESX/VC and you have a VM running with this, you’re shit outta luck!)
  2. you have to define this on a * per VM basis*, which really is a pain in the ass for larger installations

True, I just should’ve bought vMotion compatible CPU’s, that would have spared me the hassle … but it’s too late now, I have to live with those ones.