第 9 章 Pacemaker 规则

可使用规则让您的配置更动态。常用示例是设定一个工作时间内使用的 resource-stickiness 值,防止将资源移回其最喜欢的位置,同时设定另一个用于周末(没有人会注意到中断)的值。
规则的另一个用途是将机器根据时间分配给不同的进程组(使用节点属性),然后在创建位置限制时使用那个属性。
每个规则可包含大量表达式、日期表达式、甚至其他规则。根据规则 boolean-op 字段合并表达式结果,以决定该规则最终评估结果是 true 还是 false。接下来会出现的结果要看使用该规则的上下文。

表 9.1. 规则属性

描述
role
将规则限制为仅作该资源处于那个角色时应用。允许值为:StartedSlave、和 Master。注:使用 role="Master" 的规则决定快乐实例的起始位置,只影响要推广的活跃实例。
score
将该规则评估为 true 时应用的 score。规则中使用的限制是位置限制的一部分。
score-attribute
将该规则评估为 true 时要查找和使用的节点属性。规则中的限制是位置限制的一部分。
boolean-op
如何合并多个表达式对象的结果。允许值为:andor. The default value is

9.1. 节点属性表达式

节点属性表达式是用来控制根据一个节点或多个节点所定义属性的资源。

表 9.2. 表达式属性

描述
value
用户提供的用来进行比较的值
attribute
要测试的节点属性
type
决定如何测试 value。允许值为:stringintegerversion
operation
要执行的比较。允许值为:
* lt - 如果节点属性值小于 value 则为 true。
* gt - 如果节点属性值大于 value 则为 true。
* lte - 如果节点属性值小于等于 value 则为 ture。
* gte - 如果节点属性值大于等于 value 则为 ture。
* eq - 如果节点属性值等于 value 则为 true。
* ne - 如果节点属性值等于 value 则为 true。
* defined - 如果该节点有命名的属性则为 true。
* not_defined - 如果该节点没有命名的属性则为 true