D.2. Sibling Start Ordering and Resource Child Ordering
The Service resource determines the start order and the stop order of a child resource according to whether it designates a child-type attribute for a child resource as follows:
- Designates child-type attribute (typed child resource) — If the Service resource designates a child-type attribute for a child resource, the child resource is typed. The child-type attribute explicitly determines the start and the stop order of the child resource.
- Does not designate child-type attribute (non-typed child resource) — If the Service resource does not designate a child-type attribute for a child resource, the child resource is non-typed. The Service resource does not explicitly control the starting order and stopping order of a non-typed child resource. However, a non-typed child resource is started and stopped according to its order in
/etc/cluster/cluster.conf
In addition, non-typed child resources are started after all typed child resources have started and are stopped before any typed child resources have stopped.
Note
The only resource to implement defined child resource type ordering is the Service resource.
For more information about typed child resource start and stop ordering, refer to Section D.2.1, “Typed Child Resource Start and Stop Ordering”. For more information about non-typed child resource start and stop ordering, refer to Section D.2.2, “Non-typed Child Resource Start and Stop Ordering”.
D.2.1. Typed Child Resource Start and Stop Ordering
For a typed child resource, the type attribute for the child resource defines the start order and the stop order of each resource type with a number ranging from 1 to 100; one value for start, and one value for stop. The lower the number, the earlier a resource type starts or stops. For example, Table D.1, “Child Resource Type Start and Stop Order” shows the start and stop values for each resource type; Example D.2, “Resource Start and Stop Values: Excerpt from Service Resource Agent,
service.sh
” shows the start and stop values as they appear in the Service resource agent, service.sh
. For the Service resource, all LVM children are started first, followed by all File System children, followed by all Script children, and so forth.
Resource | Child Type | Start-order Value | Stop-order Value |
---|---|---|---|
LVM | lvm | 1 | 9 |
File System | fs | 2 | 8 |
GFS File System | clusterfs | 3 | 7 |
NFS Mount | netfs | 4 | 6 |
NFS Export | nfsexport | 5 | 5 |
NFS Client | nfsclient | 6 | 4 |
IP Address | ip | 7 | 2 |
Samba | smb | 8 | 3 |
Script | script | 9 | 1 |
Example D.2. Resource Start and Stop Values: Excerpt from Service Resource Agent, service.sh
<special tag="rgmanager"> <attributes root="1" maxinstances="1"/> <child type="lvm" start="1" stop="9"/> <child type="fs" start="2" stop="8"/> <child type="clusterfs" start="3" stop="7"/> <child type="netfs" start="4" stop="6"/> <child type="nfsexport" start="5" stop="5"/> <child type="nfsclient" start="6" stop="4"/> <child type="ip" start="7" stop="2"/> <child type="smb" start="8" stop="3"/> <child type="script" start="9" stop="1"/> </special>
Ordering within a resource type is preserved as it exists in the cluster configuration file,
/etc/cluster/cluster.conf
. For example, consider the starting order and stopping order of the typed child resources in Example D.3, “Ordering Within a Resource Type”.
Example D.3. Ordering Within a Resource Type
<service name="foo"> <script name="1" .../> <lvm name="1" .../> <ip address="10.1.1.1" .../> <fs name="1" .../> <lvm name="2" .../> </service>
Typed Child Resource Starting Order
In Example D.3, “Ordering Within a Resource Type”, the resources are started in the following order:
lvm:1
— This is an LVM resource. All LVM resources are started first.lvm:1
(<lvm name="1" .../>
) is the first LVM resource started among LVM resources because it is the first LVM resource listed in the Service foo portion of/etc/cluster/cluster.conf
.lvm:2
— This is an LVM resource. All LVM resources are started first.lvm:2
(<lvm name="2" .../>
) is started afterlvm:1
because it is listed afterlvm:1
in the Service foo portion of/etc/cluster/cluster.conf
.fs:1
— This is a File System resource. If there were other File System resources in Service foo, they would start in the order listed in the Service foo portion of/etc/cluster/cluster.conf
.ip:10.1.1.1
— This is an IP Address resource. If there were other IP Address resources in Service foo, they would start in the order listed in the Service foo portion of/etc/cluster/cluster.conf
.script:1
— This is a Script resource. If there were other Script resources in Service foo, they would start in the order listed in the Service foo portion of/etc/cluster/cluster.conf
.
Typed Child Resource Stopping Order
In Example D.3, “Ordering Within a Resource Type”, the resources are stopped in the following order:
script:1
— This is a Script resource. If there were other Script resources in Service foo, they would stop in the reverse order listed in the Service foo portion of/etc/cluster/cluster.conf
.ip:10.1.1.1
— This is an IP Address resource. If there were other IP Address resources in Service foo, they would stop in the reverse order listed in the Service foo portion of/etc/cluster/cluster.conf
.fs:1
— This is a File System resource. If there were other File System resources in Service foo, they would stop in the reverse order listed in the Service foo portion of/etc/cluster/cluster.conf
.lvm:2
— This is an LVM resource. All LVM resources are stopped last.lvm:2
(<lvm name="2" .../>
) is stopped beforelvm:1
; resources within a group of a resource type are stopped in the reverse order listed in the Service foo portion of/etc/cluster/cluster.conf
.lvm:1
— This is an LVM resource. All LVM resources are stopped last.lvm:1
(<lvm name="1" .../>
) is stopped afterlvm:2
; resources within a group of a resource type are stopped in the reverse order listed in the Service foo portion of/etc/cluster/cluster.conf
.
D.2.2. Non-typed Child Resource Start and Stop Ordering
Additional considerations are required for non-typed child resources. For a non-typed child resource, starting order and stopping order are not explicitly specified by the Service resource. Instead, starting order and stopping order are determined according to the order of the child resource in
/etc/cluster/cluster.conf
. Additionally, non-typed child resources are started after all typed child resources and stopped before any typed child resources.
For example, consider the starting order and stopping order of the non-typed child resources in Example D.4, “Non-typed and Typed Child Resource in a Service”.
Example D.4. Non-typed and Typed Child Resource in a Service
<service name="foo"> <script name="1" .../> <nontypedresource name="foo"/> <lvm name="1" .../> <nontypedresourcetwo name="bar"/> <ip address="10.1.1.1" .../> <fs name="1" .../> <lvm name="2" .../> </service>
Non-typed Child Resource Starting Order
In Example D.4, “Non-typed and Typed Child Resource in a Service”, the child resources are started in the following order:
lvm:1
— This is an LVM resource. All LVM resources are started first.lvm:1
(<lvm name="1" .../>
) is the first LVM resource started among LVM resources because it is the first LVM resource listed in the Service foo portion of/etc/cluster/cluster.conf
.lvm:2
— This is an LVM resource. All LVM resources are started first.lvm:2
(<lvm name="2" .../>
) is started afterlvm:1
because it is listed afterlvm:1
in the Service foo portion of/etc/cluster/cluster.conf
.fs:1
— This is a File System resource. If there were other File System resources in Service foo, they would start in the order listed in the Service foo portion of/etc/cluster/cluster.conf
.ip:10.1.1.1
— This is an IP Address resource. If there were other IP Address resources in Service foo, they would start in the order listed in the Service foo portion of/etc/cluster/cluster.conf
.script:1
— This is a Script resource. If there were other Script resources in Service foo, they would start in the order listed in the Service foo portion of/etc/cluster/cluster.conf
.nontypedresource:foo
— This is a non-typed resource. Because it is a non-typed resource, it is started after the typed resources start. In addition, its order in the Service resource is before the other non-typed resource,nontypedresourcetwo:bar
; therefore, it is started beforenontypedresourcetwo:bar
. (Non-typed resources are started in the order that they appear in the Service resource.)nontypedresourcetwo:bar
— This is a non-typed resource. Because it is a non-typed resource, it is started after the typed resources start. In addition, its order in the Service resource is after the other non-typed resource,nontypedresource:foo
; therefore, it is started afternontypedresource:foo
. (Non-typed resources are started in the order that they appear in the Service resource.)
Non-typed Child Resource Stopping Order
In Example D.4, “Non-typed and Typed Child Resource in a Service”, the child resources are stopped in the following order:
nontypedresourcetwo:bar
— This is a non-typed resource. Because it is a non-typed resource, it is stopped before the typed resources are stopped. In addition, its order in the Service resource is after the other non-typed resource,nontypedresource:foo
; therefore, it is stopped beforenontypedresource:foo
. (Non-typed resources are stopped in the reverse order that they appear in the Service resource.)nontypedresource:foo
— This is a non-typed resource. Because it is a non-typed resource, it is stopped before the typed resources are stopped. In addition, its order in the Service resource is before the other non-typed resource,nontypedresourcetwo:bar
; therefore, it is stopped afternontypedresourcetwo:bar
. (Non-typed resources are stopped in the reverse order that they appear in the Service resource.)script:1
— This is a Script resource. If there were other Script resources in Service foo, they would stop in the reverse order listed in the Service foo portion of/etc/cluster/cluster.conf
.ip:10.1.1.1
— This is an IP Address resource. If there were other IP Address resources in Service foo, they would stop in the reverse order listed in the Service foo portion of/etc/cluster/cluster.conf
.fs:1
— This is a File System resource. If there were other File System resources in Service foo, they would stop in the reverse order listed in the Service foo portion of/etc/cluster/cluster.conf
.lvm:2
— This is an LVM resource. All LVM resources are stopped last.lvm:2
(<lvm name="2" .../>
) is stopped beforelvm:1
; resources within a group of a resource type are stopped in the reverse order listed in the Service foo portion of/etc/cluster/cluster.conf
.lvm:1
— This is an LVM resource. All LVM resources are stopped last.lvm:1
(<lvm name="1" .../>
) is stopped afterlvm:2
; resources within a group of a resource type are stopped in the reverse order listed in the Service foo portion of/etc/cluster/cluster.conf
.