第 13 章 确定运行集群资源的顺序

要确定资源运行的顺序,您需要配置一个顺序约束。

以下显示了命令配置排序约束的格式。

pcs constraint order [action] resource_id then [action] resource_id [options]

下表总结了配置排序约束的属性和选项。

表 13.1. 顺序约束的属性

描述

resource_id

执行某个操作的资源的名称。

action

资源操作。action 属性可能的值如下:

* start - 资源启动操作。

* stop - 资源停止操作。

* promote - 将资源从一个未提升资源提升为一个提升的资源。

* demote - 将资源从提升的资源降级到未提升的资源。

如果没有指定操作,则 start 为默认操作。

kind 选项

如何强制实施约束。kind 选项可能的值如下:

* Optional - 仅在两个资源都执行指定操作时才适用。有关可选排序的详情,请参考 配置咨询排序

* Mandatory - 总是强制限制(默认值)。如果您指定的第一个资源是停止或无法启动,则您指定的第二个资源必须停止。有关强制排序的详情,请参考 配置强制排序

* Serialize - 确定您指定的资源不会同时出现两个 stop/start 动作。您指定的第一个和第二个资源可以按其中顺序启动,但必须在启动另一个资源前完成。一个典型的用例是资源启动在主机上造成高负载。

symmetrical 选项

如果为 true,则代表反向约束适用于相反的操作(例如,如果 B 在 A 启动后启动,则 B 会在 A 停止前停止)。对于 kindSerialize 的排序约束不能为 symmetrical。对于 MandatoryOptional kind,默认值是 true,对于 Serialize,默认值为 false

使用以下命令从任何排序约束中删除资源。

pcs constraint order remove resource1 [resourceN]...

13.1. 配置必须的排序

一个强制的顺序约束表示,在第一次操作成功完成了第一个资源之前,不应该对第二个资源启动第二个操作。可以排序的操作是 stopstart,对于可升级克隆,还有 demotepromote。例如:"A then B"(相当于 "start A then start B")表示 B 不会被启动,直到 A 成功启动为止。如果约束的 kind 选项被设置为 Mandatory,或保留为默认值,则排序约束是必须的。

如果 symmetrical 选项设定为 true 或保留为默认值,则相反的操作将遵循相反的排序。startstop 操作是相反的操作,demotepromote 是相反的操作。例如:一个对称 "promote A" 排序意味着 "stop B then demote A" 表示 A 不能被降级,直到 B 成功停止。对称排序表示 A 状态的改变可能会导致操作调度到 B。例如,给定为 "A then B",如果出现故障,B 将首先停止,A 将被停止,A 将启动,然后启动 A,那么 B 将启动。

请注意,集群会响应每个状态的更改。如果第一个资源在第二个资源启动停止操作前再次处于启动状态,则不需要重启第二个资源。