[ClusterLabs] Default resource stickiness issue with colocation constraint

Strahil Nikolov hunter86_bg at yahoo.com
Tue Mar 31 00:37:07 EDT 2020

On March 31, 2020 6:01:35 AM GMT+03:00, Ken Gaillot <kgaillot at redhat.com> wrote:
>On Sun, 2020-03-08 at 18:11 +0000, Strahil Nikolov wrote:
>> Hello All,
>> can someone help me figure something out.
>> I have a test cluster with 2 resource groups:
>> [root at node3 cluster]# pcs status
>> Cluster name: HACLUSTER16
>> Stack: corosync
>> Current DC: node3.localdomain (version 1.1.20-5.el7_7.2-3c4c782f70) -
>> partition with quorum
>> Last updated: Sun Mar  8 20:00:48 2020
>> Last change: Sun Mar  8 20:00:04 2020 by root via cibadmin on
>> node3.localdomain
>> 3 nodes configured
>> 14 resources configured
>> Node node2.localdomain: standby
>> Node node3.localdomain: standby
>> Online: [ node1.localdomain ]
>> Full list of resources:
>>  RHEVM  (stonith:fence_rhevm):  Started node1.localdomain
>>  MPATH  (stonith:fence_mpath):  Started node1.localdomain
>>  Resource Group: NFS
>>      NFS_LVM    (ocf::heartbeat:LVM):   Started node1.localdomain
>>      NFS_infodir        (ocf::heartbeat:Filesystem):    Started
>> node1.localdomain
>>      NFS_data   (ocf::heartbeat:Filesystem):    Started
>> node1.localdomain
>>      NFS_IP     (ocf::heartbeat:IPaddr2):       Started
>> node1.localdomain
>>      NFS_SRV    (ocf::heartbeat:nfsserver):     Started
>> node1.localdomain
>>      NFS_XPRT1  (ocf::heartbeat:exportfs):      Started
>> node1.localdomain
>>      NFS_NTFY   (ocf::heartbeat:nfsnotify):     Started
>> node1.localdomain
>>  Resource Group: APACHE
>>      APACHE_LVM (ocf::heartbeat:LVM):   Started node1.localdomain
>>      APACHE_cfg (ocf::heartbeat:Filesystem):    Started
>> node1.localdomain
>>      APACHE_data        (ocf::heartbeat:Filesystem):    Started
>> node1.localdomain
>>      APACHE_IP  (ocf::heartbeat:IPaddr2):       Started
>> node1.localdomain
>>      APACHE_SRV (ocf::heartbeat:apache):        Started
>> node1.localdomain
>> The constraints I have put are:
>> [root at node3 cluster]# pcs constraint
>> Location Constraints:
>>   Resource: APACHE
>>     Enabled on: node1.localdomain (score:3000)
>>     Enabled on: node2.localdomain (score:2000)
>>     Enabled on: node3.localdomain (score:1000)
>>   Resource: NFS
>>     Enabled on: node1.localdomain (score:1000)
>>     Enabled on: node2.localdomain (score:2000)
>>     Enabled on: node3.localdomain (score:3000)
>> Ordering Constraints:
>> Colocation Constraints:
>>   APACHE with NFS (score:-1000)
>> Ticket Constraints:
>> [root at node3 cluster]# pcs resource defaults
>> resource-stickiness=1000
>> As you can see the default stickiness is 1000 per resource or 7000
>> for the APACHE group.
>> The colocation rule score is just -1000 and as per my understanding
>> it should be ignored when the 2 nodes are removed from standby.
>> Can someone clarify why the APACHE group is moved , when the resource
>> stickiness score is higher than the colocation score.
>> I have attached a file with the crm_simulate output (the output is
>> correct, when the standby is removed - the group is moved).
>> Best Regards,
>> Strahil Nikolov
>Coincidentally I just fixed a bug last week that I believe is the
>culprit here. I expect if you test the current master branch it won't
>happen. The fix will be in 2.0.4 (the first release candidate is
>expected in a couple of weeks).
>The problem was in the code that incorporates colocation dependencies'
>node preferences. If a group was colocated with some resource, the
>resource would incorporate the scores from each member of the group in
>turn. However each member of the group would also incorporate its own
>dependencies' scores in its score -- which includes the internal group
>colocation of all members after it. So, the members of the colocated
>group were being counted multiple times, and therefore having a bigger
>impact than the configured colocation score. The fix was just to
>incorporate scores from the first group member since it would
>incorporate all the rest.

Hey Ken,

Thanks for the detailed  explanation and good job !
So, in latest upstream version the bug is fixed.What about RHEL - should I open a bugzilla ?

Best Regards,
Strahil Nikolov

More information about the Users mailing list