Capítulo 23. Configurar una estrategia de colocación de nodos

Pacemaker decide dónde colocar un recurso según las puntuaciones de asignación de recursos en cada nodo. El recurso se asignará al nodo en el que tenga la mayor puntuación. Esta puntuación de asignación se deriva de una combinación de factores, entre los que se incluyen las restricciones de recursos, la configuración de resource-stickiness, el historial de fallos anteriores de un recurso en cada nodo y la utilización de cada nodo.

Si las puntuaciones de asignación de recursos en todos los nodos son iguales, por la estrategia de colocación por defecto Pacemaker elegirá un nodo con el menor número de recursos asignados para equilibrar la carga. Si el número de recursos en cada nodo es igual, se elegirá el primer nodo elegible listado en el CIB para ejecutar el recurso.

Sin embargo, a menudo los diferentes recursos utilizan proporciones significativamente diferentes de las capacidades de un nodo (como la memoria o la E/S). No siempre se puede equilibrar la carga de forma ideal teniendo en cuenta sólo el número de recursos asignados a un nodo. Además, si los recursos se colocan de forma que sus requisitos combinados superen la capacidad proporcionada, es posible que no se inicien completamente o que funcionen con un rendimiento degradado. Para tener en cuenta estos factores, Pacemaker permite configurar los siguientes componentes:

  • la capacidad que proporciona un nodo concreto
  • la capacidad que requiere un determinado recurso
  • una estrategia global de colocación de recursos

23.1. Atributos de utilización y estrategia de colocación

Para configurar la capacidad que proporciona un nodo o que requiere un recurso, puedes utilizar utilization attributes para nodos y recursos. Esto se hace estableciendo una variable de utilización para un recurso y asignando un valor a esa variable para indicar lo que el recurso requiere, y luego estableciendo esa misma variable de utilización para un nodo y asignando un valor a esa variable para indicar lo que ese nodo proporciona.

Puede nombrar los atributos de utilización según sus preferencias y definir tantos pares de nombre y valor como necesite su configuración. Los valores de los atributos de utilización deben ser enteros.

23.1.1. Configuración de la capacidad de nodos y recursos

El siguiente ejemplo configura un atributo de utilización de la capacidad de la CPU para dos nodos, estableciendo este atributo como la variable cpu. También configura un atributo de utilización de la capacidad de RAM, estableciendo este atributo como la variable memory. En este ejemplo:

  • El nodo 1 se define por tener una capacidad de CPU de dos y una capacidad de RAM de 2048
  • El nodo 2 se define por ofrecer una capacidad de CPU de cuatro y una capacidad de RAM de 2048
# pcs node utilization node1 cpu=2 memory=2048
# pcs node utilization node2 cpu=4 memory=2048

El siguiente ejemplo especifica los mismos atributos de utilización que requieren tres recursos diferentes. En este ejemplo:

  • recurso dummy-small requiere una capacidad de CPU de 1 y una capacidad de RAM de 1024
  • recurso dummy-medium requiere una capacidad de CPU de 2 y una capacidad de RAM de 2048
  • recurso dummy-large requiere una capacidad de CPU de 1 y una capacidad de RAM de 3072
# pcs resource utilization dummy-small cpu=1 memory=1024
# pcs resource utilization dummy-medium cpu=2 memory=2048
# pcs resource utilization dummy-large cpu=3 memory=3072

Se considera que un nodo es elegible para un recurso si tiene suficiente capacidad libre para satisfacer los requisitos del recurso, definidos por los atributos de utilización.

23.1.2. Configuración de la estrategia de colocación

Después de haber configurado las capacidades que proporcionan sus nodos y las capacidades que requieren sus recursos, es necesario establecer la propiedad del clúster placement-strategy, de lo contrario las configuraciones de capacidad no tienen ningún efecto.

Hay cuatro valores disponibles para la propiedad placement-strategy cluster:

  • default
  • utilization
  • balanced
  • minimal

El siguiente comando de ejemplo establece el valor de placement-strategy en balanced. Después de ejecutar este comando, Pacemaker se asegurará de que la carga de sus recursos se distribuya uniformemente por todo el clúster, sin necesidad de complicados conjuntos de restricciones de colocación.

# pcs property set placement-strategy=balanced