VMware VMotion entre CPUs diferentes

Hace una unas semanas configuramos en un cliente VMware VirtualCenter 1.3 sobre los dos servidores ESX que tenía instalados. Estos servidores eran un IBM xSeries 346 y un 345, prácticamente con el mismo hardware pero diferían en el modelo de CPU: Uno llevaba un intel xeon 3.2GHz y el otro iba con un intel xeon 2GHz.

Cuando lanzábamos el live-migration de vmotion en caliente nos encontrábamos que no podíamos hacerlo, y nos daba un el error:

Error: Cannot migrate between hosts with different CPUs. Supported extended features differ. (Source: 0x00000000, Destination: 0x0000001d)


En los foros de VMware existen diferentes soluciones, pero probablemente ninguna se ajuste a lo que necesitamos. El documento que mejor explica este problema lo encontramos en VMotion CPU Compatibility - Migrations Prevented Due to CPU Mismatch - How to Override Masks, donde comenta que todo se debe a un problema máscaras de bits, por lo que las soluciones que a otras personas les funcionaron, no tienen por qué servirnos.

Lo que tendremos que hacer, es ejecutar el comando cat /proc/vmware/cupinfo y observar la salida, y buscar el campo al que hace mención el error (Supported extended features differ), que en nuestro era extFeat: Para un nodo valía 0x0000441d, y para el otro 0x00004400, que al hacer un OR-Lógico nos devolvía el error que estábamos obteniendo: 0x0000001d. En ese momento calculamos la máscara que tendríamos que aplicar para que al hacer el XOR-Logico el resultado fuera 0x00000000. En nuestro caso, la máscara que probamos nos funcionaba fue: 0xE5FF.

Una vez tenemos la máscara, debemos crear el fichero C:\Documents and Settings\All Users\Datos de programa\VMware\VMware VirtualCenter\config.ini con el siguiente contenido:
migrate.ignore.extfeature.bits = 0xE5FF
migrate.ignore.feature.bits = 0x20000
, reiniciar el servicio VirtualCenter y volver a probar el live-migration.

No hay comentarios: