<div dir="ltr"><div>You can try the following and see if it works, replacing the items in angle brackets (<>).<br></div><div><br></div><div>    # pcs constraint colocation add <IPaddr2_rsc> with Master <SAPHanaController_rsc> INFINITY node-attribute=hana_<sid>_site</div><div><br></div><div> However, `pcs constraint colocation add --help` gives no information about what options it accepts. It just says "[options]".<br></div><div><br></div><div>Usage: pcs constraint [constraints]...<br>    colocation add [<role>] <source resource id> with [<role>]<br>                   <target resource id> [score] [options] [id=constraint-id]<br>        Request <source resource> to run on the same node where pacemaker has<br>        determined <target resource> should run.  Positive values of score<br>        mean the resources should be run on the same node, negative values<br>        mean the resources should not be run on the same node.  Specifying<br>        'INFINITY' (or '-INFINITY') for the score forces <source resource> to<br>        run (or not run) with <target resource> (score defaults to "INFINITY").<br>        A role can be: 'Master', 'Slave', 'Started', 'Stopped' (if no role is<br>        specified, it defaults to 'Started').</div><div><br></div><div>So it's entirely possible that pcs doesn't support creating colocation constraints with node attributes. If not, then you could edit the CIB manually and add a constraint like this:</div><div><br></div><div>    <rsc_colocation id="colocate" rsc="<IPaddr2_rsc>" with-rsc="<SAPHanaController_rsc>" score="INFINITY" with-rsc-role="Master" node-attribute="hana_<sid>_site"/></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Mar 29, 2021 at 9:07 PM Strahil Nikolov <<a href="mailto:hunter86_bg@yahoo.com">hunter86_bg@yahoo.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Ken, can you provide a prototype code example.<div id="gmail-m_6866584967223492689yMail_cursorElementTracker_1617077128717"><br></div><div id="gmail-m_6866584967223492689yMail_cursorElementTracker_1617077128959">Currently,I'm making a script that will be used in a systemd service managed by the cluster.</div><div id="gmail-m_6866584967223492689yMail_cursorElementTracker_1617077179372">Yet, I would like to avoid non-pacemaker solutions.</div><div id="gmail-m_6866584967223492689yMail_cursorElementTracker_1617077207573"><br></div><div id="gmail-m_6866584967223492689yMail_cursorElementTracker_1617077207835">Best Regards,</div><div id="gmail-m_6866584967223492689yMail_cursorElementTracker_1617077213952">Strahil Nikolov</div><div id="gmail-m_6866584967223492689yMail_cursorElementTracker_1617077134044"> <br> <blockquote style="margin:0px 0px 20px"> <div style="font-family:Roboto,sans-serif;color:rgb(109,0,246)"> <div>On Mon, Mar 29, 2021 at 20:12, Ken Gaillot</div><div><<a href="mailto:kgaillot@redhat.com" target="_blank">kgaillot@redhat.com</a>> wrote:</div> </div> <div style="padding:10px 0px 0px 20px;margin:10px 0px 0px;border-left:1px solid rgb(109,0,246)"> On Sun, 2021-03-28 at 09:20 +0300, Andrei Borzenkov wrote:<br clear="none">> On 28.03.2021 07:16, Strahil Nikolov wrote:<br clear="none">> > I didn't mean DC as a designated coordinator, but as a physical<br clear="none">> > Datecenter location.<br clear="none">> > Last time I checked, the node attributes for all nodes seemed the<br clear="none">> > same.I will verify that tomorrow (Monday).<br clear="none">> > <br clear="none">> <br clear="none">> Yes, I was probably mistaken. It is different with scale-out, agent<br clear="none">> puts<br clear="none">> information in global property section of CIB.<br clear="none">> <br clear="none">> Ideally we'd need expression that says "on node where site attribute<br clear="none">> is<br clear="none">> the same as on node where clone master is active" but I guess there<br clear="none">> is<br clear="none">> no way to express it in pacemaker.<br clear="none"><br clear="none">Yep, colocation by node attribute (combined with colocation with<br clear="none">promoted role)<br clear="none"><br clear="none"><a shape="rect" href="https://clusterlabs.org/pacemaker/doc/en-US/Pacemaker/2.0/html-single/Pacemaker_Explained/index.html#_colocation_properties" target="_blank">https://clusterlabs.org/pacemaker/doc/en-US/Pacemaker/2.0/html-single/Pacemaker_Explained/index.html#_colocation_properties</a><div id="gmail-m_6866584967223492689yqtfd26131"><br clear="none"><br clear="none"><br clear="none">> <br clear="none">> I do not see any easy way to implement it without essentially<br clear="none">> duplicating SAPHanaTopology. There are some attributes that are<br clear="none">> defined<br clear="none">> but never set so far, you may try to open service request to<br clear="none">> implement<br clear="none">> consistent attribute for all nodes on current primary site.<br clear="none">> <br clear="none">> ...<br clear="none">> <br clear="none">> Hmm ... agent sets (at least, should set) hana_${SID}_vhost attribute<br clear="none">> for each node and this attribute must be unique and different between<br clear="none">> two sites. May be worth to look into it.<br clear="none">> <br clear="none">> <br clear="none">> > Best Regards,Strahil Nikolov<br clear="none">> >  <br clear="none">> >  <br clear="none">> >   On Fri, Feb 19, 2021 at 16:51, Andrei Borzenkov<<br clear="none">> > <a shape="rect" href="mailto:arvidjaar@gmail.com" target="_blank">arvidjaar@gmail.com</a>> wrote:   On Fri, Feb 19, 2021 at 2:44 PM<br clear="none">> > Strahil Nikolov <<a shape="rect" href="mailto:hunter86_bg@yahoo.com" target="_blank">hunter86_bg@yahoo.com</a>> wrote:<br clear="none">> > > <br clear="none">> > > <br clear="none">> > > > Do you have a fixed relation between node >pairs and VIPs? I.e.<br clear="none">> > > > must<br clear="none">> > > > A/D always get VIP1, B/E - VIP2 etc?<br clear="none">> > > <br clear="none">> > > I have to verify it again, but generally speaking - yes , VIP1 is<br clear="none">> > > always on nodeA/D (master), VIP2 on nodeB/E (worker1) , etc.<br clear="none">> > > <br clear="none">> > > I guess I can set negative constraints (-inf) -> VIP1 on node B/E<br clear="none">> > > + nodeC/F, but the stuff with the 'same DC as master' is the<br clear="none">> > > tricky part.<br clear="none">> > > <br clear="none">> > <br clear="none">> > I am not sure I understand what DC has to do with it. You have two<br clear="none">> > scale-out SAP HANA instances, one is primary, another is secondary.<br clear="none">> > If<br clear="none">> > I understand correctly your requirements, your backup application<br clear="none">> > needs to contact the primary instance which may failover to another<br clear="none">> > site. You must be using some resource agent for it, to manage<br clear="none">> > failover. The only one I am aware of is SAPHanaSR-ScaleOut. It<br clear="none">> > already<br clear="none">> > sets different node properties for primary and secondary sites.<br clear="none">> > Just<br clear="none">> > use them. If you use something else, just look at what attributes<br clear="none">> > your<br clear="none">> > RA sets. Otherwise you will be essentially duplicating your RA<br clear="none">> > functionality because you will somehow need to find out which site<br clear="none">> > is<br clear="none">> > currently primary.<br clear="none">> > <br clear="none">> > There is no guarantee that pacemaker DC wil be on the same site as<br clear="none">> > SAP<br clear="none">> > HANA primary system.</div><br clear="none">> >   <br clear="none">> > <br clear="none">> <br clear="none">> _______________________________________________<br clear="none">> Manage your subscription:<br clear="none">> <a shape="rect" href="https://lists.clusterlabs.org/mailman/listinfo/users" target="_blank">https://lists.clusterlabs.org/mailman/listinfo/users</a><br clear="none">> <br clear="none">> ClusterLabs home: <a shape="rect" href="https://www.clusterlabs.org/" target="_blank">https://www.clusterlabs.org/</a><br clear="none">> <br clear="none">-- <br clear="none">Ken Gaillot <<a shape="rect" href="mailto:kgaillot@redhat.com" target="_blank">kgaillot@redhat.com</a><div id="gmail-m_6866584967223492689yqtfd76753">><br clear="none"><br clear="none"></div> </div> </blockquote></div>_______________________________________________<br>
Manage your subscription:<br>
<a href="https://lists.clusterlabs.org/mailman/listinfo/users" rel="noreferrer" target="_blank">https://lists.clusterlabs.org/mailman/listinfo/users</a><br>
<br>
ClusterLabs home: <a href="https://www.clusterlabs.org/" rel="noreferrer" target="_blank">https://www.clusterlabs.org/</a><br>
</blockquote></div><br clear="all"><br>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div>Regards,<br><br></div>Reid Wahl, RHCA<br></div><div>Senior Software Maintenance Engineer, Red Hat<br></div>CEE - Platform Support Delivery - ClusterHA</div></div></div></div></div></div></div></div></div></div></div></div></div></div>