GNU/Linux >> Tutoriales Linux >  >> Linux

Descripción de las políticas de grupos de afinidad/antiafinidad en OpenStack Mitaka

El servicio Nova controla dónde se inician las instancias dentro del entorno de nube de OpenStack. Significa, el nova-scheduler decide qué hipervisor ejecutará una instancia en particular y este comportamiento se controla mediante dos filtros (políticas de grupo de afinidad/antiafinidad), a saber, ServerGroupAntiAffinityFilter y ServerGroupAffinityFilter . El ServerGroupAffinityFilter permite a un usuario ejecutar un grupo de instancias en el mismo hipervisor/host y ServerGroupAntiAffinityFilter se asegurará de que todas las instancias solicitadas se inicien en diferentes hypevisors/hosts.

Estos filtros están habilitados por defecto en /etc/nova/nova.conf como se muestra a continuación:

scheduler_driver_task_period = 60
scheduler_driver = nova.scheduler.filter_scheduler.FilterScheduler
scheduler_available_filters = nova.scheduler.filters.all_filters
scheduler_default_filters = RetryFilter, AvailabilityZoneFilter, RamFilter, ComputeFilter, ComputeCapabilitiesFilter, ImagePropertiesFilter, ServerGroupAntiAffinityFilter, ServerGroupAffinityFilter

En caso de que no encuentre esos filtros, edite nova.conf , agregue las líneas anteriores y reinicie nova-scheduler y nova-conductor servicios.

# /etc/init.d/nova-scheduler restart
# /etc/init.d/nova-conductor restart

Nota :reiniciando nova-scheduler solo el servicio es suficiente en algunas versiones de OpenStack, pero en OpenStack Mitaka, necesito reiniciar nova-conductor servicio también.

Para trabajar con estos filtros, el usuario debe crear un grupo de servidores, asignar una política al grupo y agregar instancias a ese grupo.

Nota :Los siguientes comandos se ejecutaron en la configuración de OpenStack Mitaka.

¿Cómo usar la política ServerGroupAffinityFilter?

Paso 1 :Crear un grupo de servidores

# nova server-group-create <Group_Name> affinity
# nova server-group-create affinityHost affinity
+--------------------------------------+--------------+------------------------- ---------+----------------------------------+---------------+---------+--------- -+
| Id | Name | Project Id | User Id | Policies | Members | Metadata |
+--------------------------------------+--------------+------------------------- ---------+----------------------------------+---------------+---------+--------- -+
| 565948b0-076e-4de0-97dd-11d58862b64e | affinityHost | 9563fa5bb6dd479aa9f18048 cd35ca36 | d4053faa2c374045bd37d96ccb7f1b6c | [u'affinity'] | [] | {} |
+--------------------------------------+--------------+------------------------- ---------+----------------------------------+---------------+---------+--------- -+

Asegúrese de que el grupo se cree con el siguiente comando:

# nova server-group-get 565948b0-076e-4de0-97dd-11d58862b64e
+--------------------------------------+--------------+----------------------------------+----------------------------------+---------------+---------+----------+
| Id | Name | Project Id | User Id | Policies | Members | Metadata |
+--------------------------------------+--------------+----------------------------------+----------------------------------+---------------+---------+----------+
| 565948b0-076e-4de0-97dd-11d58862b64e | affinityHost | 9563fa5bb6dd479aa9f18048cd35ca36 | d4053faa2c374045bd37d96ccb7f1b6c | [u'affinity'] | [] | {} |
+--------------------------------------+--------------+----------------------------------+----------------------------------+---------------+---------+----------+

Paso 2 :Inicie instancias dentro del grupo creado en el paso 1

# nova boot --flavor 1 --image cirros --security-groups default --nic net-id=9381abae-e0c5-4844-b605-da6b04ce9a36 --hint group=565948b0-076e-4de0-97dd-11d58862b64e --max 4 affinityVM

Esté atento a –grupo de pistas opción con Id del grupo creado en el paso 1. Además, el comando anterior solicita 4 máquinas virtuales usando el –max opción.

Paso 3 :compruebe si todas las máquinas virtuales solicitadas se inician en el mismo host.

for i in `seq 1 4`
 > do
 > openstack server show affinityVM-${i} -c hostId -f shell
 > done
 hostid="1148bff316258766a721cef177307ce597d80b0e2d95b7603bbfb16d"
 hostid="1148bff316258766a721cef177307ce597d80b0e2d95b7603bbfb16d"
 hostid="1148bff316258766a721cef177307ce597d80b0e2d95b7603bbfb16d"
 hostid="1148bff316258766a721cef177307ce597d80b0e2d95b7603bbfb16d"

El comando anterior dice que todas las máquinas virtuales se iniciaron en el mismo host.

Ahora trabajemos con la política de grupo anti-afinidad .

Cómo usar ServerGroupAntiAffinityFilter política?

Utilizando ServerGroupAntiAffinityFilter, el usuario puede asegurarse de que las máquinas virtuales se inicien en diferentes hipervisores. Por ejemplo, considere la situación en la que no desea que todos sus servicios estén alojados en la misma máquina, ya que la falla de la máquina host afectará a todos sus servicios. El uso de ServerGroupAntiAffinityFilter garantiza que todos sus servicios se interrumpan en diferentes hosts físicos.

Paso 1 :Crear grupo con política de antiafinidad

# nova server-group-create anti-affinityHost anti-affinity
 +--------------------------------------+-------------------+----------------------------------+----------------------------------+--------------------+---------+----------+
 | Id | Name | Project Id | User Id | Policies | Members | Metadata |
 +--------------------------------------+-------------------+----------------------------------+----------------------------------+--------------------+---------+----------+
 | a1c8220a-275f-4ff1-8ce1-6fbb54f7cf46 | anti-affinityHost | 9563fa5bb6dd479aa9f18048cd35ca36 | d4053faa2c374045bd37d96ccb7f1b6c | [u'anti-affinity'] | [] | {} |
 +--------------------------------------+-------------------+----------------------------------+----------------------------------+--------------------+---------+----------+

Paso 2 :Lanzar instancias dentro del grupo anti-afinidad.

# nova boot --flavor 1 --image cirros --security-groups default --nic net-id=9381abae-e0c5-4844-b605-da6b04ce9a36 --hint group=a1c8220a-275f-4ff1-8ce1-6fbb54f7cf46 --max 3 anti-affinityVM

Buscar –-grupo de sugerencias opción con Id del grupo creado en el paso 1. Además, –max solicita 3 máquinas virtuales y se espera que todas se inicien en diferentes hosts.

Paso 3 :Verifique que las máquinas virtuales se inicien en diferentes hosts/hipervisores.

# for i in `seq 1 3`; do openstack server show anti-affinityVM-${i} -c hostId -f shell; done
 hostid="09fac9c46a3dc5f6219e2af3e3a7da6dad7de843cfba7d8d4feb9054"
 hostid="1148bff316258766a721cef177307ce597d80b0e2d95b7603bbfb16d"
 hostid="4e488190b3d18a501dd719c051771636b6f73f6fd292f00e8622b185"

El comando anterior confirma que las tres máquinas virtuales se iniciaron en diferentes hosts.

En caso de que no haya recursos disponibles para satisfacer la antiafinidad política, luego arranque nova el comando fallará con el siguiente mensaje de error:

# nova boot --flavor 1 --image cirros --security-groups default --nic net-id=9381abae-e0c5-4844-b605-da6b04ce9a36 --hint group=a1c8220a-275f-4ff1-8ce1-6fbb54f7cf46 anti-affinityVM

Salida de muestra:

"No valid host was found. There are not enough hosts available."

Como mi configuración solo tiene tres hosts informáticos, el comando anterior no puede encontrar hosts válidos para iniciar una nueva VM.


Linux
  1. ¿Cómo iniciar una máquina virtual en un host/nodo de cómputo especificado en OpenStack Mitaka?

  2. Gestión de políticas de contraseñas

  3. Comprender las políticas de SELinux en Linux

  4. Comprender los privilegios de MySQL

  5. grep:captura de grupo

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

Comprender los permisos de archivos de Linux

Comprender los procesos en Linux

Entendiendo el archivo /etc/group

Comprender los permisos básicos de archivos y la propiedad en Linux

/etc/passwd muestra al usuario en un grupo, pero /etc/group no