vCPUs o vCores en OpenStack

openstack-logoCuando generamos instancias en OpenStack en la plataforma, asignamos los recursos de forma automatica al entorno a partir del sabor seleccionado para su creación y que hace referencia a la cantidad de disco, de memoría o de procesador. En algunas ocasiones, derivado del modelo de licenciamiento de los fabricantes de software puede que necesitemos utilizar un número menor de procesadores y emular nucleos virtuales que completen la potencia deseada en el equipo, ya que utilizando los valores por defecto, estaremos utilizando vCPUs y en el momento de migrar nuestro servicio a la nube, nos podemos encontrar que o bien el aplicativo solo utiliza una fracción de la potencia contratada o bien el aplicativo nos indica que tenemos una falta de compliance en el licenciamiento.

Para poder asignar nucleos en lugar de procesadores virtuales debemos generar un nuevo “flavor” con una serie de parametros adicionales que nos van a permitir especificar el numero de nucleos por cpu, así al generar nuestra instancia, podremos utilizar la misma potencia con un menor coste de licenciamiento.

hw:cpu_sockets=NN - nº socket por defecto
hw:cpu_cores=NN - nº de cores por defecto
hw:cpu_threads=NN - nº de threads por defecto
hw:cpu_max_sockets=NN - nº máx. de sockets por instancia
hw:cpu_max_cores=NN - nº máx. de cores por instancia
hw:cpu_max_threads=NN - nº máx. de threads por instancia

Para generar un flavor con esta parametrización podemos utilizar Horizon, el dashboard, o bien mediante linea de comandos de la siguiente manera:

# nova-manage flavor set_key --name m1.2x8 --key hw:cpu_cores --value 8
# nova-manage flavor set_key --name m1.2x8 --key hw:cpu_sockets --value 2

De esta manera conseguiremos máquinas de 2 vCPUs de 8 cores cada una, por lo que tendremos 16 cores asignados a la plataforma en lugar de 16 vCPUs y que en casos como SQL Server o Oracle puede suponer una problema con el licenciamiento del fabricante.

Deja un comentario