Pacemaker – stop a resource which was started on another node

pacemaker

I have a running setup of pacemaker-corosync on several ubuntu12.04 hosts. Several clone resources and a primitive. Primitive – which is an upstart job, is called "dummy". Dummy can run on only one node at any given moment, and the constraints allow it to migrate between machines.

I would like pacemaker to monitor every node that it can possibly run on and shut down "excess" instances – keep only one running.

primitive dummy upstart:dummy \
op monitor interval="15s" \
meta target-role="Started"

How should the above definition look like then?

In 5.4 of http://clusterlabs.org/doc/en-US/Pacemaker/1.1-pcs/html-single/Pacemaker_Explained/index.html
There is a multiple_active with default start_stop. That would be the second best thing – stop all the instances, fire up only one on the highest score node.

Best Answer

If I understand you correctly, you want to keep the oldest instance running if pacemaker detects that more than one is running. This is not possible with pacemaker and I'm not sure if you could detect reliably "the oldest process" at all, think about service restarts for example. So the closest you can implement with current pacemaker is the "multiple_active" option you already mentioned.