[ClusterLabs] question about dc-deadtime

Ken Gaillot kgaillot at redhat.com
Tue Jan 10 19:41:04 CET 2017


On 01/10/2017 11:59 AM, Chris Walker wrote:
> 
> 
> On Mon, Jan 9, 2017 at 6:55 PM, Andrew Beekhof <abeekhof at redhat.com
> <mailto:abeekhof at redhat.com>> wrote:
> 
>     On Fri, Dec 16, 2016 at 8:52 AM, Chris Walker
>     <christopher.walker at gmail.com <mailto:christopher.walker at gmail.com>>
>     wrote:
>     > Thanks for your response Ken.  I'm puzzled ... in my case node remain
>     > UNCLEAN (offline) until dc-deadtime expires, even when both nodes are up and
>     > corosync is quorate.
> 
>     I'm guessing you're starting both nodes at the same time?
> 
> 
> The nodes power on at the same time, but hardware discovery can vary by
> minutes.
> 
>  
> 
>     The behaviour you're seeing is arguably a hangover from the multicast
>     days (in which case corosync wouldn't have had a node list).
> 
> 
> That makes sense. 
> 
> 
>     But since that's not the common case anymore, we could probably
>     shortcut the timeout if we know the complete node list and see that
>     they are all online.
> 
> 
> That would be ideal.  It's easy enough to work around this in systemd,
> but it seems like the HA stack should be the authority on node status.

I've open a feature request:
http://bugs.clusterlabs.org/show_bug.cgi?id=5310

FYI the priority list is long at this point, so no idea when it might be
addressed.

> Thanks!
> Chris
> 
> 
>     >
>     > I see the following from crmd when I have dc-deadtime=2min
>     >
>     > Dec 15 21:34:33 max04 crmd[13791]:   notice: Quorum acquired
>     > Dec 15 21:34:33 max04 crmd[13791]:   notice:
>     pcmk_quorum_notification: Node
>     > max04[2886730248] - state is now member (was (null))
>     > Dec 15 21:34:33 max04 crmd[13791]:   notice:
>     pcmk_quorum_notification: Node
>     > (null)[2886730249] - state is now member (was (null))
>     > Dec 15 21:34:33 max04 crmd[13791]:   notice: Notifications disabled
>     > Dec 15 21:34:33 max04 crmd[13791]:   notice: The local CRM is
>     operational
>     > Dec 15 21:34:33 max04 crmd[13791]:   notice: State transition
>     S_STARTING ->
>     > S_PENDING [ input=I_PENDING cause=C_FSA_INTERNAL origin=do_started ]
>     > ...
>     > Dec 15 21:36:33 max05 crmd[10365]:  warning: FSA: Input
>     I_DC_TIMEOUT from
>     > crm_timer_popped() received in state S_PENDING
>     > Dec 15 21:36:33 max05 crmd[10365]:   notice: State transition
>     S_ELECTION ->
>     > S_INTEGRATION [ input=I_ELECTION_DC cause=C_TIMER_POPPED
>     > origin=election_timeout_popped ]
>     > Dec 15 21:36:33 max05 crmd[10365]:  warning: FSA: Input
>     I_ELECTION_DC from
>     > do_election_check() received in state S_INTEGRATION
>     > Dec 15 21:36:33 max05 crmd[10365]:   notice: Notifications disabled
>     > Dec 15 21:36:33 max04 crmd[13791]:   notice: State transition
>     S_PENDING ->
>     > S_NOT_DC [ input=I_NOT_DC cause=C_HA_MESSAGE
>     > origin=do_cl_join_finalize_respond ]
>     >
>     > only after this do the nodes transition to Online.  This is using the
>     > vanilla RHEL7.2 cluster stack and the following options:
>     >
>     > property cib-bootstrap-options: \
>     >         no-quorum-policy=ignore \
>     >         default-action-timeout=120s \
>     >         pe-warn-series-max=1500 \
>     >         pe-input-series-max=1500 \
>     >         pe-error-series-max=1500 \
>     >         stonith-action=poweroff \
>     >         stonith-timeout=900 \
>     >         dc-deadtime=2min \
>     >         maintenance-mode=false \
>     >         have-watchdog=false \
>     >         dc-version=1.1.13-10.el7-44eb2dd \
>     >         cluster-infrastructure=corosync
>     >
>     > Thanks again,
>     > Chris
>     >
>     > On Thu, Dec 15, 2016 at 3:26 PM, Ken Gaillot <kgaillot at redhat.com
>     <mailto:kgaillot at redhat.com>> wrote:
>     >>
>     >> On 12/15/2016 02:00 PM, Chris Walker wrote:
>     >> > Hello,
>     >> >
>     >> > I have a quick question about dc-deadtime.  I believe that
>     Digimer and
>     >> > others on this list might have already addressed this, but I
>     want to
>     >> > make sure I'm not missing something.
>     >> >
>     >> > If my understanding is correct, dc-deadtime sets the amount of
>     time that
>     >> > must elapse before a cluster is formed (DC is elected, etc),
>     regardless
>     >> > of which nodes have joined the cluster.  In other words, even
>     if all
>     >> > nodes that are explicitly enumerated in the nodelist section have
>     >> > started Pacemaker, they will still wait dc-deadtime before
>     forming a
>     >> > cluster.
>     >> >
>     >> > In my case, I have a two-node cluster on which I'd like to allow a
>     >> > pretty long time (~5 minutes) for both nodes to join before
>     giving up on
>     >> > them.  However, if they both join quickly, I'd like to proceed
>     to form a
>     >> > cluster immediately; I don't want to wait for the full five
>     minutes to
>     >> > elapse before forming a cluster.  Further, if a node doesn't
>     respond
>     >> > within five minutes, I want to fence it and start resources on
>     the node
>     >> > that is up.
>     >>
>     >> Pacemaker+corosync behaves as you describe by default.
>     >>
>     >> dc-deadtime is how long to wait for an election to finish, but if the
>     >> election finishes sooner than that (i.e. a DC is elected), it stops
>     >> waiting. It doesn't even wait for all nodes, just a quorum.
>     >>
>     >> Also, with startup-fencing=true (the default), any unseen nodes
>     will be
>     >> fenced, and the remaining nodes will proceed to host resources. Of
>     >> course, it needs quorum for this, too.
>     >>
>     >> With two nodes, quorum is handled specially, but that's a
>     different topic.
>     >>
>     >> > With Pacemaker/Heartbeat, the initdead parameter did exactly what I
>     >> > want, but I don't see any way to do this with
>     Pacemaker/Corosync.  From
>     >> > reading other posts, it looks like people use an external agent
>     to start
>     >> > HA daemons once nodes are up ... is this a correct understanding?
>     >> >
>     >> > Thanks very much,
>     >> > Chris



More information about the Users mailing list