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
- 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!)
- 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.
One thought to “Extending vMotion compatiblity”