Il 17/10/2019 16:47, Raffaele Pantaleoni ha scritto:
Il 17/10/2019 14:51, Jan Pokorný ha scritto:
On 17/10/19 08:22 +0200, Raffaele Pantaleoni wrote:
I'm rather new to Pacemaker, I'm performing early tests on a set of
three virtual machines.

I am configuring the cluster in the following way:

3 nodes configured
4 resources configured

Online: [ SRVDRSW01 SRVDRSW02 SRVDRSW03 ]

  ClusterIP      (ocf::heartbeat:IPaddr2):       Started SRVDRSW01
  CouchIP        (ocf::heartbeat:IPaddr2):       Started SRVDRSW03
  FrontEnd       (ocf::heartbeat:nginx): Started SRVDRSW01
  ITATESTSERVER-DIP      (ocf::nodejs:pm2):      Started SRVDRSW01

with the following constraints:

Location Constraints:
   Resource: ClusterIP
     Enabled on: SRVRDSW01 (score:200)
     Enabled on: SRVRDSW02 (score:100)
   Resource: CouchIP
     Enabled on: SRVRDSW02 (score:10)
     Enabled on: SRVRDSW03 (score:100)
     Disabled on: SRVRDSW01 (score:-INFINITY)
   Resource: FrontEnd
     Enabled on: SRVRDSW01 (score:200)
     Enabled on: SRVRDSW02 (score:100)
   Resource: ITATESTSERVER-DIP
     Enabled on: SRVRDSW01 (score:200)
     Enabled on: SRVRDSW02 (score:100)
Ordering Constraints:
   start ClusterIP then start FrontEnd (kind:Mandatory)
   start ClusterIP then start ITATESTSERVER-DIP (kind:Mandatory)
Colocation Constraints:
   FrontEnd with ClusterIP (score:INFINITY)
   FrontEnd with ITATESTSERVER-DIP (score:INFINITY)

I've configured the cluster with an opt in strategy using the following
commands:

crm_attribute --name symmectric-cluster --update false

pcs resource create ClusterIP ocf:heartbeat:IPaddr2 ip=172.16.10.126
cidr_netmask=16 op monitor interval=30s
pcs resource create CouchIP ocf:heartbeat:IPaddr2 ip=172.16.10.128
cidr_netmask=16 op monitor interval=30s
pcs resource create FrontEnd ocf:heartbeat:nginx
configfile=/etc/nginx/nginx.conf
pcs resource create ITATESTSERVER-DIP ocf:nodejs:pm2 user=ITATESTSERVER
--force

pcs constraint colocation add FrontEnd with ClusterIP INFINITY
pcs constraint colocation add FrontEnd with ITATESTSERVER-DIP INFINITY

pcs constraint order ClusterIP then FrontEnd
pcs constraint order ClusterIP then ITATESTSERVER-DIP

pcs constraint location ClusterIP prefers SRVRDSW01=200
pcs constraint location ClusterIP prefers SRVRDSW02=100

pcs constraint location CouchIP prefers SRVRDSW02=10
pcs constraint location CouchIP prefers SRVRDSW03=100

pcs constraint location FrontEnd prefers SRVRDSW01=200
pcs constraint location FrontEnd prefers SRVRDSW02=100

pcs constraint location ITATESTSERVER-DIP prefers SRVRDSW01=200
pcs constraint location ITATESTSERVER-DIP prefers SRVRDSW02=100

Everything seems to be ok but when I put vm 02 and 03 in standby I'd expect
CouchIP not be assigned to vm 01 beacuse of the constraint.

The IPaddr2 resource gets assigned to vm 01 no matter what.

Node SRVDRSW02: standby
Node SRVDRSW03: standby
Online: [ SRVDRSW01 ]

Full list of resources:

  ClusterIP      (ocf::heartbeat:IPaddr2):       Started SRVDRSW01
  CouchIP        (ocf::heartbeat:IPaddr2):       Started SRVDRSW01
  FrontEnd       (ocf::heartbeat:nginx): Started SRVDRSW01
  ITATESTSERVER-DIP      (ocf::nodejs:pm2):      Started SRVDRSW01

crm_simulate -sL returns the follwoing

---cut---

native_color: CouchIP allocation score on SRVDRSW01: 0
native_color: CouchIP allocation score on SRVDRSW02: 0
native_color: CouchIP allocation score on SRVDRSW03: 0

---cut---
Why is that? I have explicitly assigned -INFINITY to CouchIP resource
related to node SRVDRSW01 (as stated by pcs constraint: Disabled on:
SRVRDSW01 (score:-INFINITY) ).
What am I missing or doing wrong?

I am not that deep into these relationships, proper design
documentation with guided examples is non-existent[*].

But it occurs to me that the situation might be the inverse of what's
been confusing for typical opt-out clusters:

https://lists.clusterlabs.org/pipermail/users/2017-April/005463.html

Have you tried avoiding:

   Resource: CouchIP
     Disabled on: SRVRDSW01 (score:-INFINITY)
Yes, I already tried that, but I did it again nevertheless since I am a newbie. I deleted the whole set of resources and commented out the constraint from the creation script.
The cluster was running, then I put all the nodes in standby and brought
SRVRDSW01 back. The CouchIP resource has been bound to the "forbidden" node. crm_simulate -sL still gives a score of 0 to the three nodes when it should be something like -INFINITY 100 and 200 respectively.

Just to make the whole thing more confusing: I noticed that SRVRDSW03, that is (implicitly) not allowed to get the ClusterIP resource is marked  (correctly) as -INFINITY from crm_simulate. So the opt in configuration would seem to be correct, but for the CouchIP resource that is no special or different from the ClusterIP resource.

I am really disoriented.

Just another bit of information: I put the whole set in stand by then brought back SRVRDSW03... surprise surprise the ClusterIP resource has been bound to it even if it shouldn't.

What's wrong?

altogether, since when such explicit edge would be missing, implicit
"cannot" (for opt-in cluster) would apply anyway, and perhaps even
reliably, then?


[*] as far as I know, except for
https://wiki.clusterlabs.org/w/images/a/ae/Ordering_Explained_-_White.pdf https://wiki.clusterlabs.org/w/images/8/8a/Colocation_Explained_-_White.pdf      probably not revised for giving a truthful model in all details for years,      and not demonstrating the effect of symmetry requested or avoided within
     the cluster on those, amongst others
     (shameless plug: there will be such coverage for upcoming group based
     access control addition [those facilities haven't been terminated in
     back-end so far] as a first foray in this area -- also the correct
     understanding is rather important here)


_______________________________________________
Manage your subscription:
https://lists.clusterlabs.org/mailman/listinfo/users

ClusterLabs home: https://www.clusterlabs.org/

Thank you for your reply.

--


*Raffaele Pantaleoni*

*IOT Design R&D Unit*



Tel.     +39 0746 605885

Fax.    +39 0746 607072

Mail    *r.pantale...@seko.com <mailto:r.pantale...@seko.com>*

Skype  r.pantaleoni.seko

*www.seko.com* <https://www.seko.com/> **



/This e-mail (including attachments) is intended only for the
recipient(s) named above. It may contain confidential or privileged
information. If you are not the named addressee you should not
disseminate, distribute or copy this e-mail. Please notify the sender
immediately by e-mail if you have received this e-mail by mistake and
delete this e-mail from your system. E-mail transmission cannot be
guaranteed to be secure or error-free as information could be
intercepted, corrupted, lost, destroyed, arrive late or incomplete, or
contain viruses. The sender therefore does not accept liability for any
errors or omissions in the contents of this message, which arise as a
result of e-mail transmission. If verification is required please
request a hard-copy version. Your personal data will be processed in
compliance with the EU General Data Protection Regulation n. 2016/679
("GDPR"), applicable since May 25th, 2018. For further information,
please see our Privacy Policy <https://www.seko.com/page/privacy-policy>/

_______________________________________________
Manage your subscription:
https://lists.clusterlabs.org/mailman/listinfo/users

ClusterLabs home: https://www.clusterlabs.org/

Reply via email to