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.
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,
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
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
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,
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
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,
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
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
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
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.