[Pacemaker] colocation and ordering

Xzarth xzarth at gmail.com
Thu Jun 26 09:27:25 EDT 2014

I have a pacemaker cluster with following config:

    crm(live)configure# show
    node node1
    node node2
    primitive ClusterIP ocf:heartbeat:IPaddr2 \
            params ip="" cidr_netmask="32" nic="eth1"
    iflabel="1" \
            op monitor interval="30s"
    primitive apache2 lsb:apache2 \
            meta priority="1000" failure-timeout="60s"
    migration-threshold="3" \
            op start interval="0" timeout="20s" \
            op stop interval="0" timeout="20s" \
            op monitor interval="1s" timeout="20s" start-delay="10"
    primitive drbd ocf:linbit:drbd \
            params drbd_resource="r0" \
            op monitor interval="29s" role="Master" \
            op monitor interval="31s" role="Slave"
    primitive fs_drbd ocf:heartbeat:Filesystem \
            params device="/dev/drbd0" directory="/mnt/drbd0"
    fstype="ext3" \
            meta failure-timeout="60s"
    primitive sym_apache2 ocf:heartbeat:symlink \
            params target="/mnt/drbd0/var/www" link="/var/www"
    group services sym_apache2 apache2 \
            meta migration-threshold="1"
    ms ms_drbd drbd \
            meta master-max="1" master-node-max="1" clone-max="2"
    clone-node-max="1" notify="true"
    colocation fs_colocation inf: ms_drbd:Master fs_drbd
    colocation ip_loc inf: fs_drbd ClusterIP
    colocation service_loc inf: ClusterIP services
    order fs_order inf: ms_drbd:promote fs_drbd:start
    order ip_ord inf: fs_drbd:start ClusterIP:start
    order service_ord inf: ClusterIP:start services:start
    property $id="cib-bootstrap-options" \
            dc-version="1.1.10-42f2063" \
            cluster-infrastructure="classic openais (with plugin)" \
            no-quorum-policy="ignore" \
            stonith-enabled="false" \
            stonith-action="poweroff" \
            expected-quorum-votes="2" \

This cluster works as expected. If apache fails, everything is migrated
to another node. But i would expect the colocation statements to be
different. As far as i understand "colocation loc inf: X Y" puts Y
somewhere then puts X in the same place. And "order ord inf: X Y" starts
X and then Y. So when i have both i would expect them to look like this:
colocation loc inf: Y X
order ord inf: X Y
So start X and then Y, and put X somewhere and then Y on the same node.

But in my config it's clearly the oposite of that:
colocation fs_colocation inf: ms_drbd:Master fs_drbd
order fs_order inf: ms_drbd:promote fs_drbd:start
So promote drbd then start fs, and promote master where fs is (which
makes no sense to me).

I can reverse the colocation and do:
colocation fs_colocation inf: fs_drbd ms_drbd:Master
colocation ip_loc inf: ClusterIP fs_drbd
colocation service_loc inf: services ClusterIP

But then when apache fails on one node it's just stopped and nothing
else happens.

What part of ordering and colocation do i have wrong?

More information about the Pacemaker mailing list