[Pacemaker] cloned IPaddr2 on 4 nodes

Vladimir Legeza vladimir.legeza at gmail.com
Thu Oct 28 10:00:39 EDT 2010


*Hello folks.

I try to setup four ip balanced nodes but,  I didn't found the right way to
balance load between nodes when some of them are filed.

I've done:*

[root at node1 ~]# crm configure show
node node1
node node2
node node3
node node4
primitive ClusterIP ocf:heartbeat:IPaddr2 \
    params ip="10.138.10.252" cidr_netmask="32"
clusterip_hash="sourceip-sourceport" \
    op monitor interval="30s"
clone StreamIP ClusterIP \
    meta globally-unique="true" *clone-max="8"
clone-node-max="2"*target-role="Started" notify="true" ordered="true"
interleave="true"
property $id="cib-bootstrap-options" \
    dc-version="1.0.9-0a40fd0cb9f2fcedef9d1967115c912314c57438" \
    cluster-infrastructure="openais" \
    expected-quorum-votes="4" \
    no-quorum-policy="ignore" \
    stonith-enabled="false"

*When all the nodes are up and running:*

 [root at node1 ~]# crm status
============
Last updated: Thu Oct 28 17:26:13 2010
Stack: openais
Current DC: node2 - partition with quorum
Version: 1.0.9-0a40fd0cb9f2fcedef9d1967115c912314c57438
4 Nodes configured, 4 expected votes
2 Resources configured.
============

Online: [ node1 node2 node3 node4 ]

 Clone Set: StreamIP (unique)
     ClusterIP:0    (ocf::heartbeat:IPaddr2):    Started node1
     ClusterIP:1    (ocf::heartbeat:IPaddr2):    Started node1
     ClusterIP:2    (ocf::heartbeat:IPaddr2):    Started node2
     ClusterIP:3    (ocf::heartbeat:IPaddr2):    Started node2
     ClusterIP:4    (ocf::heartbeat:IPaddr2):    Started node3
     ClusterIP:5    (ocf::heartbeat:IPaddr2):    Started node3
     ClusterIP:6    (ocf::heartbeat:IPaddr2):    Started node4
     ClusterIP:7    (ocf::heartbeat:IPaddr2):    Started node4
*
Everything is OK and each node takes 1/4 of all traffic - wonderfull.
But we become to 25% traffic loss if one of them goes down:
*
[root at node1 ~]# crm node standby node1
[root at node1 ~]# crm status
============
Last updated: Thu Oct 28 17:30:01 2010
Stack: openais
Current DC: node2 - partition with quorum
Version: 1.0.9-0a40fd0cb9f2fcedef9d1967115c912314c57438
4 Nodes configured, 4 expected votes
2 Resources configured.
============

Node node1: standby
Online: [ node2 node3 node4 ]

 Clone Set: StreamIP (unique)
*     ClusterIP:0    (ocf::heartbeat:IPaddr2):    Stopped
     ClusterIP:1    (ocf::heartbeat:IPaddr2):    Stopped *
     ClusterIP:2    (ocf::heartbeat:IPaddr2):    Started node2
     ClusterIP:3    (ocf::heartbeat:IPaddr2):    Started node2
     ClusterIP:4    (ocf::heartbeat:IPaddr2):    Started node3
     ClusterIP:5    (ocf::heartbeat:IPaddr2):    Started node3
     ClusterIP:6    (ocf::heartbeat:IPaddr2):    Started node4
     ClusterIP:7    (ocf::heartbeat:IPaddr2):    Started node4

*I found the solution (to prevent loosing) by set clone-node-max to 3*

[root at node1 ~]# crm resource meta StreamIP set clone-node-max 3
[root at node1 ~]# crm status
============
Last updated: Thu Oct 28 17:35:05 2010
Stack: openais
Current DC: node2 - partition with quorum
Version: 1.0.9-0a40fd0cb9f2fcedef9d1967115c912314c57438
4 Nodes configured, 4 expected votes
2 Resources configured.
============

*Node node1: standby*
Online: [ node2 node3 node4 ]

 Clone Set: StreamIP (unique)
*     ClusterIP:0    (ocf::heartbeat:IPaddr2):    Started node2
     ClusterIP:1    (ocf::heartbeat:IPaddr2):    Started node3*
     ClusterIP:2    (ocf::heartbeat:IPaddr2):    Started node2
     ClusterIP:3    (ocf::heartbeat:IPaddr2):    Started node2
     ClusterIP:4    (ocf::heartbeat:IPaddr2):    Started node3
     ClusterIP:5    (ocf::heartbeat:IPaddr2):    Started node3
     ClusterIP:6    (ocf::heartbeat:IPaddr2):    Started node4
     ClusterIP:7    (ocf::heartbeat:IPaddr2):    Started node4

*The problem is that nothing gonna changed when node1 back online.*

[root at node1 ~]# crm node online node1
[root at node1 ~]# crm status
============
Last updated: Thu Oct 28 17:37:43 2010
Stack: openais
Current DC: node2 - partition with quorum
Version: 1.0.9-0a40fd0cb9f2fcedef9d1967115c912314c57438
4 Nodes configured, 4 expected votes
2 Resources configured.
============

Online: [ *node1* node2 node3 node4 ]

 Clone Set: StreamIP (unique)
*     ClusterIP:0    (ocf::heartbeat:IPaddr2):    Started node2
     ClusterIP:1    (ocf::heartbeat:IPaddr2):    Started node3*
     ClusterIP:2    (ocf::heartbeat:IPaddr2):    Started node2
     ClusterIP:3    (ocf::heartbeat:IPaddr2):    Started node2
     ClusterIP:4    (ocf::heartbeat:IPaddr2):    Started node3
     ClusterIP:5    (ocf::heartbeat:IPaddr2):    Started node3
     ClusterIP:6    (ocf::heartbeat:IPaddr2):    Started node4
     ClusterIP:7    (ocf::heartbeat:IPaddr2):    Started node4
*
There are NO TRAFFIC on node1.
If I back clone-node-max to 2  - all nodes revert to the original state.*



So, My question is How to avoid such "hand-made" changes ( or is it possible
to automate* clone-node-max* adjustments)?

Thanks!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.clusterlabs.org/pipermail/pacemaker/attachments/20101028/fee2e980/attachment.html>


More information about the Pacemaker mailing list