En un cluster de RHEL y CentOS 7 formado por corosync y pacemaker, la configuración por defecto establece que cuando un recurso hace failover a otro nodo, en el momento en el que el nodo en el que se estaba ejecutando vuelve a estar online automáticamente se produce un failover para devolver los recursos a este. Este comportamiento no sólo tendrá lugar cuando tenga lugar un failover, sino también al intentar mover el recurso manualmente entre nodos.
Para modificar este comportamiento hay que jugar con el valor stickiness
, ya sea a nivel de recurso o global para todos los recursos del cluster.
Inicialmente podemos verificar si este parámetro tiene asignado algún valor a nivel global:
# pcs property list --all | grep stickiness
Para evitar el failover, la teoría dice que hay que configurar al recurso cualquier valor inferior a INIFINITY
y mayor a las constraints de localización configuradas (si las hay). Las Location Constraints
permiten configurar el nodo preferente de ejecución para un recurso o grupo de recursos. Si no hay ninguna especificada, el valor por defecto será INFINITY lo que implica que el recurso siempre preferirá estar online en el nodo original.
Con una configuración por defecto, un valor que suele funcionar es 100:
# pcs resource defaults resource-stickiness=100
Si se quisiera asignar a un único recurso:
# pcs resource update recurso_foo meta resource-stickiness=100