Hi All,

I have a two-node cluster with no-quorum-policy=ignore and an external
ping responder to try to determine if a node has its network down (it's
the dead one), or if the other node is really dead..

The ping helps to determine who the master is.

I have realised in the situation where the ping responder goes down,
both stop being the master.

Code can be seen here: https://github.com/greemo/vagrant-fabric

I currently have the following rule which prevents a node becoming a
master unless it can access the ping resource. (I may add more ping
resources later):

    <constraints>
      <rsc_colocation id="c_mysql_on_drbd" score="INFINITY"
rsc="g_mysql" with-rsc="ms_drbd_mysql" with-rsc-role="Master"/>
      <rsc_location id="l_drbd_master_on_ping" rsc="ms_drbd_mysql">
        <rule role="Master" score="-INFINITY" boolean-op="or"
id="l_drbd_master_on_ping-rule">
          <expression attribute="ping" operation="not_defined"
id="l_drbd_master_on_ping-rule-expression"/>
          <expression attribute="ping" operation="lte" value="1000"
type="number" id="l_drbd_master_on_ping-rule-expression-0"/>
        </rule>
      </rsc_location>
      <rsc_order id="o_drbd_before_mysql" score="INFINITY"
first="ms_drbd_mysql" first-action="promote" then="g_mysql"
then-action="start"/>
    </constraints>


I want to create a rule that says "if I am not in a quorum AND I cannot
access all the ping resources, do not become the master". I can sort out
the ping part, but how can I determine within a Pacemaker rule if I am
part of a quorum?

I have thought to set up a cron job using shell tools to query the CIB
and populate an attribute, but surely there has to be an easier way...

Hopefully, Les

_______________________________________________
Users mailing list: Users@clusterlabs.org
http://clusterlabs.org/mailman/listinfo/users

Project Home: http://www.clusterlabs.org
Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
Bugs: http://bugs.clusterlabs.org

Reply via email to