[Pacemaker] Make 2 nodes failover to each other
Michael Schwartzkopff
misch at clusterbau.com
Wed Sep 1 10:30:50 UTC 2010
Am Mittwoch, den 01.09.2010, 16:18 +0800 schrieb Alister Wong:
> Hi, Michael. Thanks for reply.
>
> Actually, I want to setup to pass resource once any error occurred.
> Can the node always pass the resource to another node automatically even the
> node was encounter error before?
> For example:
>
> At the beginning all my resource is located at NodeA, then NodeA encounter
> error, it failover to NodeB. From crm_mon it should Fail Action in NodeA.
> When NodeB encounter error, it will pass the resource back to NodeA.
>
> I am not sure any configure can be set to achieve this.
>
> Or any command I can run to make NodeA to be ready to receive resource
> again?
> Currently, I know that I can't pass the resource to node that was failed
> before.
>
> Thank you.
>
> Alister
> -----Original Message-----
> From: Michael Schwartzkopff [mailto:misch at clusterbau.com]
> Sent: Tuesday, August 31, 2010 9:53 PM
> To: The Pacemaker cluster resource manager
> Subject: Re: [Pacemaker] Make 2 nodes failover to each other
>
> Am Dienstag, den 31.08.2010, 21:24 +0800 schrieb Alister Wong:
> > Hi,
> >
> >
> >
> > I am new to Linux cluster, I have a question for 2 nodes cluster.
> >
> > I want to make cluster with jakarta tomcat, the node will failover to
> > each other if error detected (e.g. gateway failed to ping)
> >
> > However, in my current setting, once the node (A) is encountered
> > error, it will failover to another (B). Then if B encounter failed, it
> > can't fail back to A.
> >
> > Can anyone help me to let the resource failover around once it
> > encountered error?
> >
> > Do I have to do something to make a failed node to be ready to use
> > again? If it is, can anyone tell me how?
> >
> >
> >
> > Below is my configure:
> >
> > [root at nmc01-a ~]# crm configure show
> >
> > node nmc01-a
> >
> > node nmc01-b
> >
> > primitive ClusterIP ocf:heartbeat:IPaddr2 \
> >
> > params ip="10.214.65.5" cidr_netmask="24" \
> >
> > op monitor interval="30s"
> >
> > primitive Tomcat ocf:heartbeat:tomcat \
> >
> > operations $id="Tomcat-operations" \
> >
> > op monitor interval="30" timeout="30" \
> >
> > op start interval="0" timeout="70" \
> >
> > op stop interval="0" timeout="120" \
> >
> > params catalina_home="/opt/apache-tomcat-6.0.26"
> > java_home="/usr/java/jdk1.6.0_21" tomcat_user="nmc" \
> >
> > meta target-role="Started"
> >
> > primitive pingd ocf:pacemaker:pingd \
> >
> > params host_list="10.214.65.254" multiplier="100" \
> >
> > op monitor interval="60s" timeout="50s" on_fail="restart" \
> >
> > op start interval="0" timeout="90" \
> >
> > op stop interval="0" timeout="100"
> >
> > group nmc_web ClusterIP Tomcat
> >
> > clone pingdclone pingd \
> >
> > meta globally-unique="false"
> >
> > location nmc_web_connected_node nmc_web \
> >
> > rule $id="nmc_web_connected_node-rule" -inf: pingd lte 0
> >
> > property $id="cib-bootstrap-options" \
> >
> > dc-version="1.0.9-89bd754939df5150de7cd76835f98fe90851b677" \
> >
> > cluster-infrastructure="openais" \
> >
> > expected-quorum-votes="2" \
> >
> > stonith-enabled="false" \
> >
> > no-quorum-policy="ignore" \
> >
> > last-lrm-refresh="1283167810"
> >
> > rsc_defaults $id="rsc-options" \
> >
> > resource-stickiness="100"
> >
> >
> >
> > By the way, from pingd example in clusterlab.org.
> >
> > What does "not_defined pingd" mean in below rule setting?
> >
> > crm(pingd)configure# location my_web_cluster_on_connected_node
> > my_web_cluster \
> >
> > rule -inf: not_defined pingd or pingd lte 0
>
>
> You have a resource stickiness defined. So after the first node becomes
> available again the resource stays there where it runs and does not fail
> back.
>
> >
> > When I included "not_defined pingd" in my cluster confgiure, if one of
> > the node hasn't started up. The pingd in that node won't be started
> > and caused
> >
> > my other resources (Virtual IP and tomcat) couldn't start up.
>
> Perhaps a syntay error because you forget the "or"?
>
> This "defined" also checks if the pingd attribute is defined at all on a
> node. So it prevents resources running on a node with the ping resource
> not running.
>
> Michael.
>
>
>
>
> _______________________________________________
> Pacemaker mailing list: Pacemaker at oss.clusterlabs.org
> http://oss.clusterlabs.org/mailman/listinfo/pacemaker
>
> Project Home: http://www.clusterlabs.org
> Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
> Bugs:
> http://developerbugs.linux-foundation.org/enter_bug.cgi?product=Pacemaker
>
> __________ Information from ESET NOD32 Antivirus, version of virus signature
> database 5413 (20100831) __________
>
> The message was checked by ESET NOD32 Antivirus.
>
> http://www.eset.com
>
>
>
>
> __________ Information from ESET NOD32 Antivirus, version of virus signature
> database 5413 (20100831) __________
>
> The message was checked by ESET NOD32 Antivirus.
>
> http://www.eset.com
>
>
>
> _______________________________________________
> Pacemaker mailing list: Pacemaker at oss.clusterlabs.org
> http://oss.clusterlabs.org/mailman/listinfo/pacemaker
>
> Project Home: http://www.clusterlabs.org
> Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
> Bugs: http://developerbugs.linux-foundation.org/enter_bug.cgi?product=Pacemaker
First of all:
http://www.caliburn.nl/topposting.html
You can acchieve this behaviour setting the migration-thrshold to 1. A
failure on node A would stop the resource on node A and start it on node
B. You would have to clear the fail-counter in node A manually. The
resource stickiness makes the resource stay on node B until this node is
not capable to run the reosurce.
More information about the Pacemaker
mailing list