Capítulo 15. Determinación de la ubicación de los recursos con reglas

Para restricciones de ubicación más complicadas, puede utilizar las reglas de Pacemaker para determinar la ubicación de un recurso.

15.1. Reglas del marcapasos

Las reglas pueden ser utilizadas para hacer su configuración más dinámica. Un uso de las reglas podría ser asignar máquinas a diferentes grupos de procesamiento (utilizando un atributo de nodo) en función del tiempo y luego utilizar ese atributo al crear restricciones de ubicación.

Cada regla puede contener varias expresiones, expresiones de fecha e incluso otras reglas. Los resultados de las expresiones se combinan basándose en el campo boolean-op de la regla para determinar si la regla se evalúa finalmente como true o false. Lo que ocurre a continuación depende del contexto en el que se utiliza la regla.

Tabla 15.1. Propiedades de una regla

CampoDescripción

role

Limita la regla para que se aplique sólo cuando el recurso está en ese rol. Valores permitidos: Started, Slave, y Master. NOTA: Una regla con role="Master" no puede determinar la ubicación inicial de una instancia clonada. Sólo afectará a cuál de las instancias activas será promovida.

score

La puntuación a aplicar si la regla se evalúa como true. Limitado a su uso en reglas que forman parte de restricciones de ubicación.

score-attribute

El atributo del nodo que se busca y se utiliza como puntuación si la regla se evalúa como true. Limitado a su uso en reglas que forman parte de restricciones de ubicación.

boolean-op

Cómo combinar el resultado de varios objetos de expresión. Valores permitidos: and y or. El valor por defecto es and.

15.1.1. Expresiones de atributos de los nodos

Las expresiones de atributos de nodo se utilizan para controlar un recurso en función de los atributos definidos por un nodo o nodos.

Tabla 15.2. Propiedades de una expresión

CampoDescripción

attribute

El atributo del nodo a probar

type

Determina cómo se deben comprobar los valores. Valores permitidos: string, integer, version. El valor por defecto es string.

operation

La comparación a realizar. Valores permitidos:

* lt - Verdadero si el valor del atributo del nodo es menor que value

* gt - Verdadero si el valor del atributo del nodo es mayor que value

* lte - Verdadero si el valor del atributo del nodo es menor o igual a value

* gte - Verdadero si el valor del atributo del nodo es mayor o igual a value

* eq - Verdadero si el valor del atributo del nodo es igual a value

* ne - Verdadero si el valor del atributo del nodo no es igual a value

* defined - Verdadero si el nodo tiene el atributo nombrado

* not_defined - Verdadero si el nodo no tiene el atributo nombrado

value

Valor suministrado por el usuario para la comparación (obligatorio a menos que operation sea defined o not_defined)

Además de los atributos añadidos por el administrador, el clúster define atributos de nodo especiales e incorporados para cada nodo que también pueden utilizarse, como se describe en Tabla 15.3, “Atributos de los nodos incorporados”.

Tabla 15.3. Atributos de los nodos incorporados

NombreDescripción

#uname

Nombre del nodo

#id

ID de nodo

#kind

Tipo de nodo. Los valores posibles son cluster, remote y container. El valor de kind es remote para los nodos Pacemaker Remote creados con el recurso ocf:pacemaker:remote, y container para los nodos invitados Pacemaker Remote y los nodos bundle.

#is_dc

true si este nodo es un controlador designado (DC), false en caso contrario

#cluster_name

El valor de la propiedad cluster-name cluster, si se ha establecido

#site_name

El valor del atributo del nodo site-name, si está establecido, de lo contrario es idéntico a #cluster-name

#role

La función que el clon promocionable correspondiente tiene en este nodo. Válido sólo dentro de una regla para una restricción de ubicación para un clon promocionable.

15.1.2. Expresiones basadas en la fecha y la hora

Las expresiones de fecha se utilizan para controlar un recurso o una opción del clúster en función de la fecha/hora actual. Pueden contener una especificación de fecha opcional.

Tabla 15.4. Propiedades de una expresión de fecha

CampoDescripción

start

Una fecha/hora conforme a la especificación ISO8601.

end

Una fecha/hora conforme a la especificación ISO8601.

operation

Compara la fecha/hora actual con la fecha de inicio o de finalización o con ambas, dependiendo del contexto. Valores permitidos:

* gt - Verdadero si la fecha/hora actual es posterior a start

* lt - Verdadero si la fecha/hora actual es anterior a end

* in_range - Verdadero si la fecha/hora actual es posterior a start y anterior a end

* date-spec - realiza una comparación tipo cron con la fecha/hora actual

15.1.3. Especificaciones de fecha

Las especificaciones de fecha se utilizan para crear expresiones tipo cron relacionadas con el tiempo. Cada campo puede contener un solo número o un solo rango. En lugar de ponerlo a cero por defecto, cualquier campo no suministrado se ignora.

Por ejemplo, monthdays="1" coincide con el primer día de cada mes y hours="09-17" con las horas comprendidas entre las 9 y las 17 horas (inclusive). Sin embargo, no se puede especificar weekdays="1,2" o weekdays="1-2,5-6" ya que contienen múltiples rangos.

Tabla 15.5. Propiedades de una especificación de fecha

CampoDescripción

id

Un nombre único para la fecha

hours

Valores permitidos: 0-23

monthdays

Valores permitidos: 0-31 (según el mes y el año)

weekdays

Valores permitidos: 1-7 (1=lunes, 7=domingos)

yeardays

Valores permitidos: 1-366 (dependiendo del año)

months

Valores permitidos: 1-12

weeks

Valores permitidos: 1-53 (dependiendo de weekyear)

years

Año según el calendario gregoriano

weekyears

Puede diferir de los años gregorianos; por ejemplo, 2005-001 Ordinal es también 2005-01-01 Gregorian es también 2004-W53-6 Weekly

moon

Valores permitidos: 0-7 (0 es luna nueva, 4 es luna llena).