cancel
Showing results for 
Search instead for 
Did you mean: 

N-to-1 configuration

ryan
Level 3
Our cluster has 4 nodes, 3 active and 1 standby nodes.  There are parallel service groups which obviously run all nodes and failover service groups can run on any node (preferably by priority) but must failover to the standby node only.  The documentation that I have "VCS User Guide" does not have enough information.  Any example or tips are greatly appreciated.

3 REPLIES 3

Gaurav_S
Moderator
Moderator
   VIP    Certified
Hello Ryan,

VCS users guide explains there terminologies (n -to 1 OR n-to-n) just as a concept, I don't think you would be able to find any example configuration, however I will try to find more...

 In the mean time can you elaborate on what specific information you are looking for ?


Gaurav

ryan
Level 3
We have a 4 nodes cluster with 3 active nodes and 1 standby node.  There are N servers in our system and each server can run on any node but can only failover to the standby node.

The information that I need is how to setup such an environment.  Ideally, there would be a way to specified all the active nodes so that the server can run on and there would be a way to specify the failover node where the server cans failover to.

The basic requirement is that a running server cannot failover to another active node which may negatively affect the active node.

Currently, the server service group has a SystemList with just the active node and standby node.  The service group has the active node with higher priority than the standby node so the service group will normally online on the active the active node and failover to the standby node.  This is fine but everytime we want to the server to another node, we need to reconfigure VCS which is a real pain.

 

Roger_Zimmerman
Level 4
Hi, ryan,
you can configure things like this with Limits and Prerequisites, where Limits is an attribute to a node and Prerequisites is an attribute to a service group. Limits are hard borders what must not crossed, so you cannot "overcommit" any node by use of Limits and Prerequisites.
Looks like this:

system node1 (
Limits = { Applications=1 }
)
system node2 (
Limits = { Applications=1 }
)
...
system noden (
Limits = { Applications=1 }
)

group app1 (
SystemList = { node1, node2,... noden }
AutoStartList = { node1 }
Prerequisites = { Applications=1 }
)
group app2 (
SystemList = { node2, node3,...node1, noden }
AutoStartList = { node2 }
Prerequisites = { Applications=1 }
)
.....
group appn-1 (
SystemList = { noden-1, node1, node2, ... noden }
AutoStartList = { noden-1 }
Prerequisites = { Applications=1 }
)

You have n nodes and n-1 applications (service groups). Now in start time all service groups can start as long as you have at least that many nodes as you have service groups.

If one node is left this node is the failover target to the first failover. Then also the Limits for that node are fully used, so if now another failover should take place it cannot, because there is no node left with any Limits called Applications but the service group need 1 Applications free on a possible failover target. The failover will fail, this service will not failover until there is another node with 1 Applications free.

And here all nodes with no active service group on it can be the next failover taget, you don't need to reconfigure the cluster.

You can refine this strategy with service group dependencies so that your more important servie groups can push aside some not that important ones...

Weak point in this solution: if all your "free failover targets" are eaten up by failures no failover will occur until you bring back the target nodes back into the cluster. (Or, as i said, you use service group dependencies.)

Is that what you want to do? Pls. let me know....

Best regards
Roger