Configuring failover domains with the redhat cluster manager
This page describes the steps to configure failover domains with the redhat cluster manager
Concept (derived from the rgmanager README):
A failover domain is an ordered subset of cluster members to which a resource group may be bound. The following is a list of semantics governing the options as to how the different configuration options affect the behavior of a resource group which is bound to a particular failover domain:
- restricted domain
Resource groups bound to the domain may only run on cluster members which are also members of the failover domain. If no members of the failover domain are available, the resource group is placed in the stopped state.
Configuration of a failoverdomain consisting of exactly two nodes.:
<rm> <failoverdomain name="restricted" restricted="1"> <failoverdomainnode name="node1"/> <failoverdomainnode name="node2"/> </failoverdomain> </rm>- unrestricted domain:
Resource groups bound to this domain may run on all cluster members members, but will run on a member of the domain whenever one is available. This means that if a resource group is running outside of the domain and a member of the domain transitions online, the resource group will migrate to that cluster member.
Configuration of a failoverdomain consisting of all nodes in the cluster.:
<rm> <failoverdomain name="unrestricted" restricted="0"/> </rm>
- ordered domain
Nodes in an ordered domain are assigned a priority level from 1-100, priority 1 being the highest and 100 being the lowest. A member of the highest priority group will run a resource group bound to a given domain whenever one is online. This means that if member A has a higher priority than member B, the resource group will migrate to A if it was running on B if A transitions from offline to online.
Configuration of the restricted failoverdomain from above with node1 being the default node.:
<failoverdomain name="restricted" restricted="1"> <failoverdomainnode name="node1" priority="1"/> <failoverdomainnode name="node2" priority="2"/> </failoverdomain>
- unordered domain
- Members of the domain have no order of preference; any member may run the resource group. Resource groups will always migrate to members of their failover domain whenever possible, however, in an unordered domain.
All examples from above without the priority one are unordered.
Ordering and restriction are flags and may be combined in any way (ie, ordered+restricted, unordered+unrestricted, etc.). These combinations affect both where resource groups start after initial quorum formation and which cluster members will take over resource groups in the event that the resource group or the member running it has failed (without being recoverable on that member).
Failover Domains (Examples)
Ordered, restricted failover domain {A(1), B(2), C(3)}. A resource group 'S' will always run on member 'A' whenever member 'A' is online and there is a quorum. If all members of {A, B, C} are offline, the resource group will be stopped. If the resource group is running on 'C' and 'A' transitions online, the resource group will migrate to 'A'.
<rm>
<failoverdomain name="ordered_restricted" ordered="1" restricted="1">
<failoverdomainnode name="A" priority="1"/>
<failoverdomainnode name="B" priority="2"/>
<failoverdomainname name="C" priority="3"/>
</failoverdomain>
<service name="S" domain="ordered_restricted">
..
</service>
</rm>
Unordered, restricted failover domain {A, B, C}. A service 'S' will only run if there is a quorum and at least one member of {A, B, C} is online. If another member of the domain transitions online, the service does not relocate.
<rm>
<failoverdomain name="ordered_unrestricted" ordered="0" restricted="1">
<failoverdomainnode name="A"/>
<failoverdomainnode name="B"/>
<failoverdomainname name="C"/>
</failoverdomain>
<service name="S" domain="unordered_restricted">
..
</service>
</rm>
Ordered, unrestricted failover domain {A(1), B(2), C(3)}. A resource group 'S' will run whenever there is a quorum. If a member of the failover domain is online, the resource group will run on the highest ranking member. That is, if 'A' is online, the resource group will run on 'A'.
<rm>
<failoverdomain name="ordered_unrestricted" ordered="1" restricted="0">
<failoverdomainnode name="A" priority="1"/>
</failoverdomain>
<service name="S" domain="ordered_restricted">
..
</service>
</rm>
Unordered, unrestricted failover domain {A, B, C}. This is also called a "Set of Preferred Members". When one or more members of the failover domain are online, the service will run on a nonspecific online member of the failover domain. If another member of the failover domain transitions online, the service does not relocate.
<rm>
<failoverdomain name="ordered_restricted" ordered="0" restricted="0"/>
<service name="S" domain="unordered_unrestricted">
..
</service>
</rm>