[Pacemaker] Clone Set does not start its lsb service on all nodes
Andrew Martin
amartin at xes-inc.com
Wed Feb 22 22:02:38 UTC 2012
Hi Andreas,
You are correct, the /etc/init.d/libvirt-bin pseudo-LSB script did not adhere to the LSB specification (e.g. returning exit code 3 when the "status" parameter is passed and the service is stopped) since it is just a legacy alias for the upstart job. I have upgraded to the version of pacemaker in the Ubuntu-HA ppa, which includes the upstart resource agent that I am using now. However, for anyone who does not have access to a version of pacemaker with the upstart resource agent, I developed this modification that could be added to the /etc/init.d script to make it LSB compliant:
@@ -42,7 +42,13 @@
$ECHO
$ECHO "Since the script you are attempting to invoke has been converted to an"
$ECHO "Upstart job, you may also use the $COMMAND(8) utility, e.g. $COMMAND $JOB"
- $COMMAND "$JOB"
+ ### modification start - makes the output LSB compliant (if stopped exit code is 3) ###
+ TEMPSTATUS=`mktemp`
+ $COMMAND "$JOB" | tee $TEMPSTATUS
+ if [ "`grep -q stop $TEMPSTATUS ; echo $?`" = "0" ]; then
+ exit 3
+ fi
+ ### modification stop ###
;;
start|stop|restart)
$ECHO
Thanks,
Andrew
----- Original Message -----
From: "Andreas Ntaflos" <daff at pseudoterminal.org>
To: "The Pacemaker cluster resource manager" <pacemaker at oss.clusterlabs.org>, amartin at xes-inc.com
Sent: Wednesday, February 15, 2012 4:09:53 PM
Subject: Re: [Pacemaker] Clone Set does not start its lsb service on all nodes
On 2012-02-13 23:29, Andrew Martin wrote:
> However, often the libvirt-bin daemon is not actually running (and thus
> the VMs fail to migrate):
> # service libvirt-bin status
> libvirt-bin stop/waiting
It seems the libvirt init script (which is actually an upstart job)
either starts the daemon successfully and at some later point the daemon
itself fails, or the init script doesn't actually start the libvirt
daemon, even though it reports that it did.
What happens when you start libvirt manually by means of the init script
(after disabling the cluster or putting it into maintenance mode)? What
does /var/log/libvirt/libvirtd.log say?
Please also do the tests described in [1] to determine whether the
libvirt init script/upstart job behaves according to LSB specifications.
Also, to avoid any interferenc, you have to take care that only
pacemaker and not upstart has full control over starting and stopping
the libvirt daemon, i.e. making sure libvirt isn't started on system
startup. Usually this is done by means of update-rc.d, but this doesn't
work with upstart jobs. For Ubuntu 10.04 it means commenting the "start
on ..." and possibly "stop on ..." lines at the beginning of
/etc/init/libvirt-bin.conf.
> This does not seem like the correct behavior for the clone - my
> understanding is that a clone requires the resource to be running at all
> nodes at all times. What can I try to ensure that libvirt-bin remains
> running on all nodes?
I don't think pacemaker is the problem here. It seems more like your
libvirt daemons are misbehaving.
Andreas
[1]
http://www.clusterlabs.org/doc/en-US/Pacemaker/1.0/html/Pacemaker_Explained/ap-lsb.html
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.clusterlabs.org/pipermail/pacemaker/attachments/20120222/3ec5d52a/attachment.htm>
More information about the Pacemaker
mailing list