Capítulo 9. Reglas Pacemaker

Las reglas pueden servir para que su configuración sea más dinámica. Uno de los ejemplos más comunes es el de establecer un valor para resource-stickiness durante horas laborales para evitar que los recursos sean devueltos a su ubicación preferida y otro valor para fines de semana cuando no haya nadie que note la interrupción.
Otro uso de reglas podría ser asignar máquinas a diferentes grupos de procesamiento (mediante un atributo de nodos) con base en el tiempo para luego usar el atributo durante la creación de restricciones de ubicación.
Cada regla puede contener un número de expresiones, expresiones de fecha y otras reglas. Los resultados de las expresiones se combinan según el campo boolean-op de regla para determinar si la regla se evalúa como true o false. Lo que suceda luego, dependerá del contexto en el que la regla sea utilizada.

Tabla 9.1. Propiedades de una regla

CampoDescripción
role
Los sets de reglas a aplicar únicamente cuando el recurso está en dicho rol. Los valores permitidos son: Started, Slave, y Master. NOTA: Una regla con role="Master" no puede determinar la ubicación inicial de una instancia de clon. Solamente afectará las instancias que serán promovidas.
score
El puntaje a aplicar si la regla evalúa como true. Se limita a usar en reglas que hacen parte de restricciones de ubicación.
score-attribute
El atributo de nodos a buscar y usar como un puntaje si la regla evalúa como true. Se limita a usar en reglas que hacen parte de las restricciones de ubicación.
boolean-op
Cómo combinar el resultado de varios objetos de expresión. Los valores permitidos son: and y or. El valor predeterminado es and.

9.1. Expresiones de atributos de nodo

Las expresiones de nodos se utilizan para controlar un recurso basado en atributos definidos por un nodo o nodos.

Tabla 9.2. Propiedades de una expresión

CampoDescripción
value
El valor de usuario para comparar
attribute
Los atributos de nodos para probar
type
Determina la forma como se deben probar los valores. Valores permitidos: string, integer, version
operation
La comparación a realizar. Valores permitidos:
* lt - 'True' si el valor del atributo de nodo es menor que value
* gt - 'True' si el valor del atributo de nodo es mayor que value
* lte - 'True' si el valor del atributo de nodo es menor o igual a value
* gte - 'True' si el valor del atributo de nodo es mayor o igual a value
* eq - 'True' si el valor del atributo de nodo igual a value
* ne - 'True' si el valor del atributo de nodo es igual a value
* defined - 'True' si el nodo tiene el atributo especificado
* not_defined - Es 'True' si el nodo no tiene un atributo especificado