Cómo crear una política de afinidad y antiafinidad en OpenStack

En las organizaciones donde la pila abierta se usa agresivamente, por lo que en tales organizaciones los equipos de aplicaciones y bases de datos pueden presentar el requisito de que sus instancias de aplicaciones y bases de datos deben iniciarse en el mismo nodos de cómputo (hipervisor) o diferentes nodos de cómputo.

OpenStack-VMs-Affinity-AntiAffinity-Policy

Entonces, este requisito en OpenStack se cumple a través de grupos de servidores con afinidad y anti-afinidad políticas El grupo de servidores se utiliza para controlar las reglas de afinidad y antiafinidad para programar instancias openstack.

Cuando intentamos aprovisionar máquinas virtuales con un grupo de servidores de afinidad, todas las máquinas virtuales se iniciarán en el mismo nodo de cómputo. Cuando las máquinas virtuales se aprovisionan con un grupo de servidores ant-affinity, todas las máquinas virtuales se iniciarán en diferentes nodos de cómputo. En este artículo, demostraremos cómo crear grupos de servidores OpenStack con reglas de afinidad y antiafinidad.

Primero verifiquemos si su configuración de OpenStack admite políticas de afinidad y antiafinidad o no, ejecute el siguiente comando grep desde los nodos de su controlador,

# grep -i "scheduler_default_filters" /etc/nova/nova.conf

La salida debe ser algo como a continuación,

Affinity-AntiAffinity-Filter-Nova-Conf-OpenStack

Como podemos ver, los filtros Affinity y Ant-Affinity están habilitados, pero en caso de que no estén habilitados, agregue estos filtros en /etc/nova/nova.conf archivo de nodos de controlador bajo “programador_predeterminado_filtros” parámetros.

# vi /etc/nova/nova.conf
………………
scheduler_default_filters=xx,xxx,xxx,xxxxx,xxxx,xxx,xxx,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,xx,xxx,xxxx,xx
………………

Guardar y salir del archivo

Para hacer los cambios anteriores en el efecto, reinicie los siguientes servicios

# systemctl restart openstack-nova-scheduler
# systemctl restart openstack-nova-conductor

Ahora vamos a crear grupos de servidores OpenStack con políticas de afinidad y antiafinidad

Grupo de servidores con política de afinidad

Para crear un grupo de servidores con el nombre «aplicación» para la política de afinidad, ejecute el siguiente comando openstack desde el nodo del controlador,

Sintaxis:

# openstack server group create –policy affinity

O

# nova server-group-create afinidad

Nota: Antes de comenzar a ejecutar el comando openstack, asegúrese de obtener el archivo de credenciales del proyecto de origen, en mi caso, el archivo de credenciales del proyecto es «openrc

Ejemplo:

# source openrc
# openstack server group create --policy affinity app

Grupo de servidores con política de antiafinidad

Para crear un grupo de servidores con una política anti-afinidad, ejecute el siguiente comando openstack desde el nodo del controlador, asumo que el nombre del grupo de servidores es «base de datos»

Sintaxis:

# openstack server group create –policy anti-affinity

O

# nova server-group-create anti-afinidad

Ejemplo:

# source openrc
# openstack server group create --policy anti-affinity database

Lista de ID y políticas del grupo de servidores

Ejecute el comando nova o el comando Openstack para obtener la identificación del grupo de servidores y sus políticas

# nova server-group-list | grep -Ei "Policies|database"
Or
# openstack server group list --long | grep -Ei "Policies|app|database"

La salida sería algo como a continuación,

Servidor-Grupo-Políticas-OpenStack

Lanzar máquinas virtuales (VM) con política de afinidad

Supongamos que queremos lanzar 4 vms con política de afinidad, ejecute lo siguiente “servidor openstack crearcomando

Sintaxis:

# openstack server create –image –flavor –security-group –nic net-id= –hint group= –max

Ejemplo:

# openstack server create --image Cirros --flavor m1.small --security-group default --nic net-id=37b9ab9a-f198-4db1-a5d6-5789b05bfb4c --hint group="a9847c7f-b7c2-4751-9c9a-03b117e704ff" --max 4 affinity-test

Salida del comando anterior,

OpenStack-Server-create-with-hint-option

Verifiquemos si las máquinas virtuales se inician en el mismo nodo de cómputo o no, ejecute el siguiente comando

# openstack server list --long -c Name -c Status -c Host -c "Power State" | grep -i affinity-test

Affinity-VM-Estado-OpenStack

Esto confirma que nuestra política de afinidad funciona bien, ya que todas las máquinas virtuales se inician en el mismo nodo de cómputo.

Ahora probemos la política anti-afinidad

Lanzar máquinas virtuales (VM) con política de antiafinidad

Para la política de antiafinidad, lanzaremos 4 máquinas virtuales, en el comando ‘openstack server create’ anterior, debemos reemplazar la ID del grupo de servidores de antiafinidad. En nuestro caso, usaremos la identificación del grupo del servidor de la base de datos.

Ejecute el siguiente comando openstack para iniciar 4 VM en diferentes computadores con política anti-afinidad,

# openstack server create --image Cirros --flavor m1.small --security-group default --nic net-id=37b9ab9a-f198-4db1-a5d6-5789b05bfb4c --hint group="498fd41b-8a8a-497a-afd8-bc361da2d74e" --max 4 anti-affinity-test

Producción

Openstack-server-create-anti-affinity-hint-option

Use el siguiente comando openstack para verificar si las máquinas virtuales se inician en diferentes nodos de cómputo o no

# openstack server list --long -c Name -c Status -c Host -c "Power State" | grep -i anti-affinity-test

Anti-Afinidad-VM-Estado-OpenStack

El resultado anterior confirma que nuestra política anti-afinidad también funciona bien.

Nota: La cuota predeterminada para el grupo de servidores es 10 para cada arrendatario, lo que significa que puede crear hasta 10 grupos de servidores dentro del proyecto, que pueden gobernar más de 10 máquinas virtuales.

Use el siguiente comando para ver la cuota del grupo de servidores para un arrendatario específico, reemplace la identificación del arrendatario que se adapte a su configuración

# openstack quota show f6852d73eaee497a8a640757fe02b785 | grep -i server_group
| server_group_members | 10      |
| server_groups        | 10      |
#

Para actualizar la cuota del grupo de servidores, ejecute los siguientes comandos

# nova quota-update --server-group-members 15 f6852d73eaee497a8a640757fe02b785
# nova quota-update --server-groups 15  f6852d73eaee497a8a640757fe02b785

Ahora vuelva a ejecutar el comando de cuota openstack para verificar la cuota del grupo de servidores

# openstack quota show f6852d73eaee497a8a640757fe02b785 | grep -i server_group
| server_group_members | 15     |
| server_groups        | 15     |
#

Eso es todo, hemos actualizado con éxito la cuota del grupo de servidores para el arrendatario. Esto también concluye el artículo, no dude en compartirlo entre sus amigos técnicos.

Entradas relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *