[ClusterLabs] Singleton resource not being migrated

Nikita Koshikov koshikov at gmail.com
Wed Aug 17 21:52:41 UTC 2016


Thanks Ken,

I have figure out root cause. There was race condition while adding
resource and creating constrain(location).

When resource was added to cluster, all nodes trying to 'probe' resource
via ocf - and because ocf didn't exist on 2/3 nodes at that time -
pacemaker mark them as -INFINITY and even updating constrains(adding
locations) - doesn't automatically reprobe/clean resource. It was hard to
debug - because there were no errors/failed action for this resource, when
you run cli commands.


On Tue, Aug 16, 2016 at 1:29 PM, Ken Gaillot <kgaillot at redhat.com> wrote:

> On 08/05/2016 05:12 PM, Nikita Koshikov wrote:
> > Thanks, Ken,
> >
> > On Fri, Aug 5, 2016 at 7:21 AM, Ken Gaillot <kgaillot at redhat.com
> > <mailto:kgaillot at redhat.com>> wrote:
> >
> >     On 08/05/2016 03:48 AM, Andreas Kurz wrote:
> >     > Hi,
> >     >
> >     > On Fri, Aug 5, 2016 at 2:08 AM, Nikita Koshikov <
> koshikov at gmail.com <mailto:koshikov at gmail.com>
> >     > <mailto:koshikov at gmail.com <mailto:koshikov at gmail.com>>> wrote:
> >     >
> >     >     Hello list,
> >     >
> >     >     Can you, please, help me in debugging 1 resource not being
> started
> >     >     after node failover ?
> >     >
> >     >     Here is configuration that I'm testing:
> >     >     3 nodes(kvm VM) cluster, that have:
> >     >
> >     >     node 10: aic-controller-58055.test.domain.local
> >     >     node 6: aic-controller-50186.test.domain.local
> >     >     node 9: aic-controller-12993.test.domain.local
> >     >     primitive cmha cmha \
> >     >             params conffile="/etc/cmha/cmha.conf"
> >     >     daemon="/usr/bin/cmhad" pidfile="/var/run/cmha/cmha.pid"
> >     user=cmha \
> >     >             meta failure-timeout=30 resource-stickiness=1
> >     >     target-role=Started migration-threshold=3 \
> >     >             op monitor interval=10 on-fail=restart timeout=20 \
> >     >             op start interval=0 on-fail=restart timeout=60 \
> >     >             op stop interval=0 on-fail=block timeout=90
> >     >
> >     >
> >     > What is the output of crm_mon -1frA once a node is down ... any
> failed
> >     > actions?
> >     >
> >     >
> >     >     primitive sysinfo_aic-controller-12993.test.domain.local
> >     >     ocf:pacemaker:SysInfo \
> >     >             params disk_unit=M disks="/ /var/log"
> min_disk_free=512M \
> >     >             op monitor interval=15s
> >     >     primitive sysinfo_aic-controller-50186.test.domain.local
> >     >     ocf:pacemaker:SysInfo \
> >     >             params disk_unit=M disks="/ /var/log"
> min_disk_free=512M \
> >     >             op monitor interval=15s
> >     >     primitive sysinfo_aic-controller-58055.test.domain.local
> >     >     ocf:pacemaker:SysInfo \
> >     >             params disk_unit=M disks="/ /var/log"
> min_disk_free=512M \
> >     >             op monitor interval=15s
> >     >
> >     >
> >     > You can use a clone for this sysinfo resource and a symmetric
> cluster
> >     > for a more compact configuration .... then you can skip all these
> >     > location constraints.
> >     >
> >     >
> >     >     location cmha-on-aic-controller-12993.test.domain.local cmha
> 100:
> >     >     aic-controller-12993.test.domain.local
> >     >     location cmha-on-aic-controller-50186.test.domain.local cmha
> 100:
> >     >     aic-controller-50186.test.domain.local
> >     >     location cmha-on-aic-controller-58055.test.domain.local cmha
> 100:
> >     >     aic-controller-58055.test.domain.local
> >     >     location sysinfo-on-aic-controller-12993.test.domain.local
> >     >     sysinfo_aic-controller-12993.test.domain.local inf:
> >     >     aic-controller-12993.test.domain.local
> >     >     location sysinfo-on-aic-controller-50186.test.domain.local
> >     >     sysinfo_aic-controller-50186.test.domain.local inf:
> >     >     aic-controller-50186.test.domain.local
> >     >     location sysinfo-on-aic-controller-58055.test.domain.local
> >     >     sysinfo_aic-controller-58055.test.domain.local inf:
> >     >     aic-controller-58055.test.domain.local
> >     >     property cib-bootstrap-options: \
> >     >             have-watchdog=false \
> >     >             dc-version=1.1.14-70404b0 \
> >     >             cluster-infrastructure=corosync \
> >     >             cluster-recheck-interval=15s \
> >     >
> >     >
> >     > Never tried such a low cluster-recheck-interval ... wouldn't do
> >     that. I
> >     > saw setups with low intervals burning a lot of cpu cycles in bigger
> >     > cluster setups and side-effects from aborted transitions. If you
> >     do this
> >     > for "cleanup" the cluster state because you see resource-agent
> errors
> >     > you should better fix the resource agent.
> >
> >     Strongly agree -- your recheck interval is lower than the various
> action
> >     timeouts. The only reason recheck interval should ever be set less
> than
> >     about 5 minutes is if you have time-based rules that you want to
> trigger
> >     with a finer granularity.
> >
> >     Your issue does not appear to be coming from recheck interval,
> otherwise
> >     it would go away after the recheck interval passed.
> >
> >
> > As of small cluster-recheck-interval - this was only for testing.
> >
> >
> >     > Regards,
> >     > Andreas
> >     >
> >     >
> >     >             no-quorum-policy=stop \
> >     >             stonith-enabled=false \
> >     >             start-failure-is-fatal=false \
> >     >             symmetric-cluster=false \
> >     >             node-health-strategy=migrate-on-red \
> >     >             last-lrm-refresh=1470334410
> >     >
> >     >     When 3 nodes online, everything seemed OK, this is output of
> >     >     scoreshow.sh:
> >     >     Resource                                                Score
> >     >     Node                                   Stickiness #Fail
> >     >      Migration-Threshold
> >     >     cmha
> -INFINITY
> >     >     aic-controller-12993.test.domain.local 1          0
> >     >     cmha
> >     >      101 aic-controller-50186.test.domain.local 1          0
> >     >     cmha
> -INFINITY
> >
> >     Everything is not OK; cmha has -INFINITY scores on two nodes,
> meaning it
> >     won't be allowed to run on them. This is why it won't start after the
> >     one allowed node goes down, and why cleanup gets it working again
> >     (cleanup removes bans caused by resource failures).
> >
> >     It's likely the resource previously failed the maximum allowed times
> >     (migration-threshold=3) on those two nodes.
> >
> >     The next step would be to figure out why the resource is failing. The
> >     pacemaker logs will show any output from the resource agent.
> >
> >
> > Resource was never started on these nodes. Maybe problem is in flow ? We
> > deploy:
> >
> > 1) 1 node with all 3 IPs in corosync.conf
> > 2) set no-quorum policy = ignore
> > 3) add 2 nodes to corosync cluster
> > 4) create resource + 1 location constrain
> > 5) add 2 additional constrains
> > 6) set no-quorum policy = stop
> >
> > The time between 4-5 is about 1 minute. And it's clear why 2 nodes were
> > -INFINITY in this period. But why when we add 2 more constrains - they
> > are not updating scores and cam this be changed ?
>
> The resource may have never started on those nodes, but are you sure a
> start wasn't attempted and failed? If the start failed, the -INFINITY
> score would come from the failure, rather than only the cluster being
> asymmetric.
>
> >
> >
> >
> >     >     aic-controller-58055.test.domain.local 1          0
> >     >     sysinfo_aic-controller-12993.test.domain.local
> INFINITY
> >     >      aic-controller-12993.test.domain.local 0          0
> >     >     sysinfo_aic-controller-50186.test.domain.local
> -INFINITY
> >     >     aic-controller-50186.test.domain.local 0          0
> >     >     sysinfo_aic-controller-58055.test.domain.local
> INFINITY
> >     >      aic-controller-58055.test.domain.local 0          0
> >     >
> >     >     The problem starts when 1 node, goes offline
> >     (aic-controller-50186).
> >     >     The resource cmha is stocked in stopped state.
> >     >     Here is the showscores:
> >     >     Resource                                                Score
> >     >     Node                                   Stickiness #Fail
> >     >      Migration-Threshold
> >     >     cmha
> -INFINITY
> >     >     aic-controller-12993.test.domain.local 1          0
> >     >     cmha
> -INFINITY
> >     >     aic-controller-50186.test.domain.local 1          0
> >     >     cmha
> -INFINITY
> >     >     aic-controller-58055.test.domain.local 1          0
> >     >
> >     >     Even it has target-role=Started pacemaker skipping this
> resource.
> >     >     And in logs I see:
> >     >     pengine:     info: native_print:      cmha
> >     (ocf::heartbeat:cmha):
> >     >      Stopped
> >     >     pengine:     info: native_color:      Resource cmha cannot run
> >     anywhere
> >     >     pengine:     info: LogActions:        Leave   cmha    (Stopped)
> >     >
> >     >     To recover cmha resource I need to run either:
> >     >     1) crm resource cleanup cmha
> >     >     2) crm resource reprobe
> >     >
> >     >     After any of the above commands, resource began to be picked
> up be
> >     >     pacemaker and I see valid scores:
> >     >     Resource                                                Score
> >     >     Node                                   Stickiness #Fail
> >     >      Migration-Threshold
> >     >     cmha                                                    100
> >     >     aic-controller-58055.test.domain.local 1          0        3
> >     >     cmha                                                    101
> >     >     aic-controller-12993.test.domain.local 1          0        3
> >     >     cmha
> -INFINITY
> >     >     aic-controller-50186.test.domain.local 1          0        3
> >     >
> >     >     So the questions here - why cluster-recheck doesn't work, and
> >     should
> >     >     it do reprobing ?
> >     >     How to make migration work or what I missed in configuration
> that
> >     >     prevents migration?
> >     >
> >     >     corosync  2.3.4
> >     >     pacemaker 1.1.14
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.clusterlabs.org/pipermail/users/attachments/20160817/8126ef42/attachment-0002.html>


More information about the Users mailing list