En las organizaciones donde el OpenStack 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 se requieran para iniciarse en los mismos nodos de cómputo (hipervisor) o diferentes nodos de cómputo.
Por lo tanto, 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 usa 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 debería 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 en “scheduler_default_filters ” 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 aplicar los cambios anteriores, 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
Ejemplo:
# source openrc # openstack server group create --policy affinity app
Grupo de servidores con política 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 así como a continuación,
Lanzamiento de máquinas virtuales (VM) con política de afinidad
Supongamos que queremos lanzar 4 vms con política de afinidad, ejecute el siguiente "creación de servidor openstack ” comando
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
Iniciar máquinas virtuales (VM) con política antiafinidad
Para la política de anti-afinidad, lanzaremos 4 VM, en el comando anterior 'openstack server create', debemos reemplazar la ID del grupo de servidores de anti-afinidad. 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
Salida
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 antiafinidad también funciona bien.
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.