第 16 章 使用规则决定资源位置
对于更复杂的位置限制,您可以使用 Pacemaker 规则来确定资源的位置。
16.1. Pacemaker 规则
Pacemaker 规则可用于使您的配置更加动态。规则的一个用法可能是根据时间将机器分配给不同的处理组(使用 node 属性),然后在创建位置约束时使用该属性。
每个规则都可以包含多个表达式、日期表达式甚至其它规则。表达式的结果根据规则的 boolean-op
字段合并,以确定规则最终评估为 true
或 false
。接下来的操作要看规则使用的上下文而定。
项 | 描述 |
---|---|
|
只有在资源位于该角色时才会应用该规则。允许的值: |
|
规则评估为 |
|
如果规则评估为 |
|
如何组合多个表达式对象的结果。允许的值: |
16.1.1. 节点属性表达式
节点属性表达式用于根据节点或节点定义的属性控制资源。
项 | 描述 |
---|---|
| 要测试的节点属性 |
|
决定值应该如何进行测试。允许的值: |
| 执行的对比。允许的值:
*
*
*
*
*
*
*
* |
|
用户提供的比较值(必需的,除非 |
除了管理员添加的任何属性外,群集还为每个节点定义特殊的内置节点属性,如下表中所述。
名称 | 描述 |
---|---|
| 节点名称 |
| 节点 ID |
|
节点类型。可能的值有 |
|
如果此节点是指定控制器(DC),则为 |
|
|
|
|
| 此节点上相关的可远程克隆的角色。仅在可转发克隆的位置约束的规则内有效。 |
16.1.2. 基于时间/日期的表达式
日期表达式用于根据当前的日期/时间控制资源或集群选项。它们可以包含可选的日期规格。
项 | 描述 |
---|---|
| 符合 ISO8601 规范的日期/时间。 |
| 符合 ISO8601 规范的日期/时间。 |
| 根据上下文,将当前日期/时间与开始或结束日期进行比较。允许的值:
*
*
*
* |
16.1.3. 日期规格
日期规格用于创建与时间相关的类似 cron 的表达式。每个字段可以包含一个数字或一个范围。任何未提供的字段都会被忽略,而不是使用默认值 0。
例如,monthdays="1"
匹配每月的第一天,hours="09-17"
匹配上午 9 点到下午 5 点(包含)之间的小时数。但是,您不能指定 weekdays="1,2"
或 weekdays="1-2,5-6"
,因为它们包含多个范围。
项 | 描述 |
---|---|
| 日期的唯一名称 |
| 允许的值: 0-23 |
| 允许的值: 0-31(取决于月份和年) |
| 允许的值: 1-7(1 代表星期一,7 代表星期日) |
| 允许的值: 1-366(根据年而定) |
| 允许的值: 1-12 |
|
允许的值: 1-53(取决于 |
| 根据 Gregorian 日历年 |
|
可能不同于 Gregorian 年;例如, |
| 允许的值: 0-7(0 为新月,4 为满月)。 |