cancel
Showing results for 
Search instead for 
Did you mean: 

what is gab seeding ?

shiv124
Level 4

Hi ALL ,

Can somebody explain me the GAB seeding

1.As per GAB seeding i understand that once the node is seeded only we can run VCS on that node.

GAB automatically seeds nodes under the following conditions:

  • An unseeded node communicates with a seeded node

  • All nodes in the cluster are unseeded but can communicate with each other

 

2.How to determine a node is seeded oor not ? gabconfig -a ?

3.so if we have the llt links working on nodes we will never face a problem of node being unseeded ?

4.why do we require a manual seeding ?

5.Hastart and stating VCS service is same ? or there is any diffrence

 

Regards,

siva

 

 

1 ACCEPTED SOLUTION

Accepted Solutions

mikebounds
Level 6
Partner Accredited

Seeding is to protect against pre-existing split-brain, when a node comes up, as oppose to I/O fencing which is to protect against split-brain that happens when cluster is running.

So seeding is only applicable when a node starts and it is to stop 2 or more sub-clusters starting which can't "see" each other.  So when a node starts if it can see a seeded cluster, then it seeds and joins the cluster and if it can't see any nodes then it waits.  Unseeded nodes wait together until the number of nodes defined by the

gabconfig -c -n number_of_nodes_required_to_seed

line in /etc/gabtab.  

So suppose you have 3 nodes and you reboot all 3 together and one does not start and you have "gabconfig -c -n 3" in /etc/gabtab, then the 2 nodes that come up will wait together for the 3rd node because it could be the case that the 3rd node is a seeded cluster that they cannot see and is running the application and therefore if the 2 nodes were to form a cluster and start the same application, you would get split-brain.

If you know 3rd node is down, then you need to manually seed (regardless of whether llt is working on all nodes), and then you run "gabconfig -cx" on one of the two nodes and this seeds the cluster.  Suppose in, this scenario, you later reboot one of the 2 nodes in the seeded cluster and the 3rd node is still down, then when the rebooted node comes up, in joins the cluster because the remaining 1 node it can see is a seeded cluster, so it doesn't matter there are only 2 nodes in the cluster.

You don't have to define the total number of nodes for "-n" flag in /etc/gabtab, but this is the safest option, but you should specify at least more than half, so example, "-n 2" for a 3-node cluster and -n 3" for a 4 node cluster)

Mike 

View solution in original post

3 REPLIES 3

mikebounds
Level 6
Partner Accredited

Seeding is to protect against pre-existing split-brain, when a node comes up, as oppose to I/O fencing which is to protect against split-brain that happens when cluster is running.

So seeding is only applicable when a node starts and it is to stop 2 or more sub-clusters starting which can't "see" each other.  So when a node starts if it can see a seeded cluster, then it seeds and joins the cluster and if it can't see any nodes then it waits.  Unseeded nodes wait together until the number of nodes defined by the

gabconfig -c -n number_of_nodes_required_to_seed

line in /etc/gabtab.  

So suppose you have 3 nodes and you reboot all 3 together and one does not start and you have "gabconfig -c -n 3" in /etc/gabtab, then the 2 nodes that come up will wait together for the 3rd node because it could be the case that the 3rd node is a seeded cluster that they cannot see and is running the application and therefore if the 2 nodes were to form a cluster and start the same application, you would get split-brain.

If you know 3rd node is down, then you need to manually seed (regardless of whether llt is working on all nodes), and then you run "gabconfig -cx" on one of the two nodes and this seeds the cluster.  Suppose in, this scenario, you later reboot one of the 2 nodes in the seeded cluster and the 3rd node is still down, then when the rebooted node comes up, in joins the cluster because the remaining 1 node it can see is a seeded cluster, so it doesn't matter there are only 2 nodes in the cluster.

You don't have to define the total number of nodes for "-n" flag in /etc/gabtab, but this is the safest option, but you should specify at least more than half, so example, "-n 2" for a 3-node cluster and -n 3" for a 4 node cluster)

Mike 

james_lobo
Level 2
Employee

Hi Shiv,

 1.) Seeding ensures a new cluster will start with an accurate membership count of the number of systems in the cluster. This prevents the possibility of one cluster splitting into multiple subclusters upon initial startup.  When GAB detects that the number of systems required in the cluster as specified in the /etc/gabtab are running it seeds.

2.) If a node is seeded you would see the GAB port (port A ) is up.

3.) If the LLT links are working on all nodes then when gab starts it would seed all the nodes automatically

4.) Manual seeding is required if you are aware that a node in the cluster is down and you want to start the cluster. i.e the number of nodes in /etc/gabtab is greater the number of nodes runnning currently. Use gabconfig -cx.

5.)  There is a difference. Eg. In solaris you can either start vcs using "svcadm enable vcs" or "hastart". If you do an hastart you will see that HAD starts but vcs service is disabled (svcs -a | grep vcs). Now when the node reboots vcs wont start automatically.

I hope this answers your questions.

Regards,

James

shiv124
Level 4

Mike and john Thanks for the replies.Thanks for the detailed explaination .

 

That cleared my doubts about VCS seeding

 

Thanks

 

siva