cancel
Showing results for 
Search instead for 
Did you mean: 

case

tanislavm
Level 6
hi, please be kind and give me your comment. We have here 2 node vcs cluster. -case a)the vcs is running only one node a.service group a runs on node a and service group b runs on node b. are there some constraints to start vcs on node b without having split brain? -case b)vcs runs on node a.on node a run application that normally runs on node a and application that normally runs on node b. are there some constraints to start vcs on node b without having split brain? -case)vcs runs on node a and an application running here.on node b vcs is not started.in this case I could not failover the application from a to node b. tnx a lot, marius
1 ACCEPTED SOLUTION

Accepted Solutions

mikebounds
Level 6
Partner Accredited

When a 2nd node starts in VCS, 2 things happen in relevance to your questions:

  1. It communicates with existing node to see what service groups it is running
  2. It probes service groups that could run on itself

So when VCS starts if an application is already running on the same host, VCS will aways know because of 2 and if an application is running on other nodes, it will know so long as at least one heartbeat is running.

In the case where a node boots and all the heartbeats are down - this is called pre-existing split-brain and there are mechisms to prevent service group being started on more than one node:

  1. Gab seeding: In a 2 node cluster, the default seeding is 2 (/etc/gabtab contains "-n 2") which means if 2 nodes cannot be seen on the heartbeats, GAB won't seed which means VCS will not even start.
  2. Autodisable: When VCS starts it probes service groups on both nodes and if it can't probe service group on another node (because heartbeats are down, or node is down, or probe is failing), then as VCS does not know state of service group on other node, VCS will NOT start it on its own node

In your last point you seem to be saying you couldn't switch service group from nodeA to nodeB, when VCS was not running on nodeB - this is normal - VCS cannot start application on nodeB if VCS is not running on nodeB

Mike

View solution in original post

6 REPLIES 6

mikebounds
Level 6
Partner Accredited

When a 2nd node starts in VCS, 2 things happen in relevance to your questions:

  1. It communicates with existing node to see what service groups it is running
  2. It probes service groups that could run on itself

So when VCS starts if an application is already running on the same host, VCS will aways know because of 2 and if an application is running on other nodes, it will know so long as at least one heartbeat is running.

In the case where a node boots and all the heartbeats are down - this is called pre-existing split-brain and there are mechisms to prevent service group being started on more than one node:

  1. Gab seeding: In a 2 node cluster, the default seeding is 2 (/etc/gabtab contains "-n 2") which means if 2 nodes cannot be seen on the heartbeats, GAB won't seed which means VCS will not even start.
  2. Autodisable: When VCS starts it probes service groups on both nodes and if it can't probe service group on another node (because heartbeats are down, or node is down, or probe is failing), then as VCS does not know state of service group on other node, VCS will NOT start it on its own node

In your last point you seem to be saying you couldn't switch service group from nodeA to nodeB, when VCS was not running on nodeB - this is normal - VCS cannot start application on nodeB if VCS is not running on nodeB

Mike

tanislavm
Level 6
Hi Mike, First tnx a lot. fine. please give me your comment on bellow. On 2 node cluster we have vcs running on node a and also application who normally runs node a and application who runs on b normally. if I start vcs on node b,then application who normally runs on b will start on node b? tnx, marius

mikebounds
Level 6
Partner Accredited

Assuming service group "a" and "b" are failover service groups (not parallel which are designed to run on both at the same time), then when VCS starts on node B, then as in previous email it communicates with existing node A to see what service groups it is running and if it is running service group B, then service group B will not start on node B.

Mike

tanislavm
Level 6
Hi Mike, Tnx so much. fine. Following this topic I like you to comment. -we have 2 parallel services groups(a and b)who normally run on node a and node b, and now only node a runs a single instance of parallel service group a and parallel service group b,and vcs in up and running this node. now vcs starts on node b,then the other instance of group a and group b will start on this node. Below is a part from an previous answer from you. "When a 2nd node starts in VCS, 2 things happen in relevance to your questions: It communicates with existing node to see what service groups it is running It probes service groups that could run on itself" Please what is the meaning of "probes" within sentence "It probes service groups that could run on itself". tnx, marius

mikebounds
Level 6
Partner Accredited

Probes mean it runs the monitor entry points, so for example a probe for Oracle might be to see if "pmon" process exists in "ps" listing.  Technically resouces are probed, not service groups, so by "probes service groups", I mean VCS probes all the resources in the service group.

Mike 

stinsong
Level 5

Hi marius,

MikeBounds explain it clearly with/without parallel ServiceGroup.

In generally speaking, starting the 2nd node B when node A is runinng with VCS and ServiceGroup, which contain application running, will not lead to split brain. Because as Mike said, the 2 nodes could communicate with each other to get status and ServiceGroups state known to each node (with probe, monitor, LLT).

Only if the first started node A started GAB with "gabconfig -x" which make GAB not communicating with other nodes. But this is only used in special situation to start single node at beginning. If this is not the picture for you, there is no concern about starting other nodes on any time.