7.2. Order Constraints
Order constraints determine the order in which the resources run.
Use the following command to configure an order constraint.
pcs constraint order [action] resource_id then [action] resource_id [options]
Table 7.3, “Properties of an Order Constraint”. summarizes the properties and options for configuring order constraints.
Field | Description |
---|---|
resource_id
|
The name of a resource on which an action is performed.
|
action
|
The action to perform on a resource. Possible values of the action property are as follows:
*
start - Start the resource.
*
stop - Stop the resource.
*
promote - Promote the resource from a slave resource to a master resource.
*
demote - Demote the resource from a master resource to a slave resource.
If no action is specified, the default action is
start . For information on master and slave resources, see Section 9.2, “Multistate Resources: Resources That Have Multiple Modes”.
|
kind option
|
How to enforce the constraint. The possible values of the
kind option are as follows:
*
Optional - Only applies if both resources are executing the specified action. For information on optional ordering, see Section 7.2.2, “Advisory Ordering”.
*
Mandatory - Always (default value). If the first resource you specified is stopping or cannot be started, the second resource you specified must be stopped. For information on mandatory ordering, see Section 7.2.1, “Mandatory Ordering”.
*
Serialize - Ensure that no two stop/start actions occur concurrently for a set of resources.
|
symmetrical option
|
7.2.1. Mandatory Ordering
A mandatory constraints indicates that the second resource you specify cannot run without the first resource you specify being active. This is the default value of the
kind
option. Leaving the default value ensures that the second resource you specify will react when the first resource you specify changes state.
- If the first resource you specified was running and is stopped, the second resource you specified will also be stopped (if it is running).
- If the first resource you specified resource was not running and cannot be started, the resource you specified will be stopped (if it is running).
- If the first resource you specified is (re)started while the second resource you specified is running, the second resource you specified will be stopped and restarted.
Note, however, that the cluster reacts to each state change. If the first resource is restarted and is in a started state again before the second resource initiated a stop operation, the second resource will not need to be restarted.
7.2.2. Advisory Ordering
When the
kind=Optional
option is specified for an order constraint, the constraint is considered optional and only applies if both resources are executing the specified actions. Any change in state by the first resource you specify will have no effect on the second resource you specify.
The following command configures an advisory ordering constraint for the resources named
VirtualIP
and dummy_resource
.
# pcs constraint order VirtualIP then dummy_resource kind=Optional
7.2.3. Ordered Resource Sets
A common situation is for an administrator to create a chain of ordered resources, where, for example, resource A starts before resource B which starts before resource C. If your configuration requires that you create a set of resources that is colocated and started in order, you can configure a resource group that contains those resources, as described in Section 6.5, “Resource Groups”. There are some situations, however, where configuring the resources that need to start in a specified order as a resource group is not appropriate:
- You may need to configure resources to start in order and the resources are not necessarily colocated.
- You may have a resource C that must start after either resource A or B has started but there is no relationship between A and B.
- You may have resources C and D that must start after both resources A and B have started, but there is no relationship between A and B or between C and D.
In these situations, you can create an order constraint on a set or sets of resources with the
pcs constraint order set
command.
You can set the following options for a set of resources with the
pcs constraint order set
command.
sequential
, which can be set totrue
orfalse
to indicate whether the set of resources must be ordered relative to each other.Settingsequential
tofalse
allows a set to be ordered relative to other sets in the ordering constraint, without its members being ordered relative to each other. Therefore, this option makes sense only if multiple sets are listed in the constraint; otherwise, the constraint has no effect.require-all
, which can be set totrue
orfalse
to indicate whether all of the resources in the set must be active before continuing. Settingrequire-all
tofalse
means that only one resource in the set needs to be started before continuing on to the next set. Settingrequire-all
tofalse
has no effect unless used in conjunction with unordered sets, which are sets for whichsequential
is set tofalse
.action
, which can be set tostart
,promote
,demote
orstop
, as described in Table 7.3, “Properties of an Order Constraint”.
You can set the following constraint options for a set of resources following the
setoptions
parameter of the pcs constraint order set
command.
id
, to provide a name for the constraint you are defining.score
, to indicate the degree of preference for this constraint. For information on this option, see Table 7.4, “Properties of a Colocation Constraint”.
pcs constraint order set resource1 resource2 [resourceN]... [options] [set resourceX resourceY ... [options]] [setoptions [constraint_options]]
If you have three resources named
D1
, D2
, and D3
, the following command configures them as an ordered resource set.
# pcs constraint order set D1 D2 D3
7.2.4. Removing Resources From Ordering Constraints
Use the following command to remove resources from any ordering constraint.
pcs constraint order remove resource1 [resourceN]...