[ClusterLabs] Colocation by Node

Ken Gaillot kgaillot at redhat.com
Tue Oct 2 16:49:10 EDT 2018


On Tue, 2018-10-02 at 21:57 +0300, Andrei Borzenkov wrote:
> 01.10.2018 18:23, Ken Gaillot пишет:
> > On Mon, 2018-10-01 at 11:09 -0400, Marc Smith wrote:
> > > Hi,
> > > 
> > > I'm looking for the correct constraint setup to use for the
> > > following
> > > resource configuration:
> > > --snip--
> > > node 1: tgtnode2.parodyne.com
> > > node 2: tgtnode1.parodyne.com
> > > primitive p_iscsi_tgtnode1 iscsi \
> > >         params portal=172.16.0.12 target=tgtnode2_redirect
> > > udev=no
> > > try_recovery=true \
> > >         op start interval=0 timeout=120 \
> > >         op stop interval=0 timeout=120 \
> > >         op monitor interval=120 timeout=30
> > > primitive p_iscsi_tgtnode2 iscsi \
> > >         params portal=172.16.0.11 target=tgtnode1_redirect
> > > udev=no
> > > try_recovery=true \
> > >         op start interval=0 timeout=120 \
> > >         op stop interval=0 timeout=120 \
> > >         op monitor interval=120 timeout=30
> > > primitive p_scst ocf:esos:scst \
> > >         params alua=false \
> > >         op start interval=0 timeout=120 \
> > >         op stop interval=0 timeout=90 \
> > >         op monitor interval=30 timeout=60
> > > clone clone_scst p_scst \
> > >         meta interleave=true target-role=Started
> > > location l_iscsi_tgtnode1 p_iscsi_tgtnode1 role=Started -inf:
> > > tgtnode2.parodyne.com
> > > location l_iscsi_tgtnode2 p_iscsi_tgtnode2 role=Started -inf:
> > > tgtnode1.parodyne.com
> > > property cib-bootstrap-options: \
> > >         have-watchdog=false \
> > >         dc-version=1.1.16-94ff4df \
> > >         cluster-infrastructure=corosync \
> > >         stonith-enabled=false \
> > >         cluster-name=redirect_test \
> > >         last-lrm-refresh=1538405190
> > > --snip--
> > > 
> > > The gist of it is the 'ocf:esos:scst' provides an iSCSI target
> > > interface that each opposing node connects to (just a two node
> > > cluster) via 'ocf:heartbeat:iscsi' on each node. I have location
> > > constraints in the above configuration that force the
> > > "p_iscsi_tgtnode1" and "p_iscsi_tgtnode2" primitives to the
> > > correct
> > > node, but what I'm lacking is a colocation constraint that
> > > prevents
> > > "p_iscsi_tgtnode1" from starting unless "clone_scst" is running
> > > on
> > > the opposing node and vice versa.
> > > 
> > > Is a configuration like this possible? Without creating two
> > > primitives for 'ocf:esos:scst' and ditching the clone rule? Or is
> > > the
> > 
> > No, there's no way to constrain against a particular clone
> > instance.
> 
> Hmm ...
> 
> commit 6ebb25aaa749903b77ad810c8b100745bb3f2a5f
> Author: Andrew Beekhof <andrew at beekhof.net>
> Date:   Fri Apr 30 15:01:25 2010 +0200
> 
>     Medium: PE: Bug lf#2169 - Allow constraints to apply to specific
> instances of clones (regression tests)
> 
> It does not appear to be documented anywhere and I am not even sure
> whether it is enabled by default, but code appears to be there.

Ah, I remember now running across that when pulling out old code from
2.0.

It's in the testing-ground "pacemaker-next" schema, so someone would
have to mess with the validate-with property explicitly to try it. I
doubt it would work reliably with the current clone code. The
originally proposed use case was colocating different IPs with
different clone instances.

> > Using separate primitives would be your best bet.
> > 
> > > best route creating two separate primitives for 'ocf:esos:scst'
> > > and
> > > then adding more constraints to prevent these from running on the
> > > same node and forcing their node "ownership"?
> > > 
> > > Any help / guidance / advice would be greatly appreciated.
> > > 
> > > 
> > > Thanks,
> > > 
> > > Marc
-- 
Ken Gaillot <kgaillot at redhat.com>



More information about the Users mailing list