[Pacemaker] fence_legacy, stonith and apcmastersnmp
Kadlecsik József
kadlecsik.jozsef at wigner.mta.hu
Mon Mar 5 13:40:15 CET 2012
On Mon, 5 Mar 2012, Andrew Beekhof wrote:
> 2012/3/2 Kadlecsik József <kadlecsik.jozsef at wigner.mta.hu>:
> > On Fri, 2 Mar 2012, Andrew Beekhof wrote:
> >
> >> 2012/3/2 Kadlecsik József <kadlecsik.jozsef at wigner.mta.hu>:
> >> >
> >> > After upgrading to pacemaker 1.1.6, cluster-glue 1.0.8 on Debian, our
> >> > working apcmastersnmp resources stopped to work:
> >> >
> >> > Feb 29 14:22:03 atlas0 stonith: [35438]: ERROR: apcmastersnmp device not
> >> > accessible.
> >> > Feb 29 14:22:03 atlas0 stonith-ng: [32972]: notice: log_operation:
> >> > Operation 'monitor' [35404] for device 'stonith-atlas6' returned: -2
> >> > Feb 29 14:22:03 atlas0 stonith-ng: [32972]: ERROR: log_operation:
> >> > stonith-atlas6: Performing: stonith -t apcmastersnmp -S 161
> >> > Feb 29 14:22:03 atlas0 stonith-ng: [32972]: ERROR: log_operation:
> >> > stonith-atlas6: Invalid config info for apcmastersnmp device
> >> >
> >> > Please note the strange "161" argument of stonith.
> >> >
> >> > After checking the source code and stracing stonithd, as far as I see, the
> >> > following happens:
> >> >
> >> > - stonithd calls fence_legacy, which steals the "port=161" parameter from
> >> > apcmastersnmp. This produces the error message
> >> > "Invalid config info for apcmastersnmp device"
> >>
> >> You keep saying steals, what do you mean by that? Where is it stolen from?
> >
> > fence_legacy passes the parameters to the stonith drivers via environment
> > variables, except the "port".
>
> I had totally forgotten we do that. Everything you've done makes
> complete sense now.
>
> The second part is already pushed as:
> https://github.com/beekhof/pacemaker/commit/797d740
>
> I'll add the first part that adds the port as an environment variable now.
The patches I suggested makes possible for the agents to start up, but
fencing still doesn't work. Digging into it a little deeper, we found the
following: the node to be fenced is passed to fence_legacy via stdin as
"nodename=xxxx", however it's not coverted to $opt_n anywhere in the
script. The following patch fixes the startup and fencing issues:
--- fence_legacy.orig 2012-03-02 11:10:11.911369622 +0100
+++ fence_legacy 2012-03-05 10:33:30.081345464 +0100
@@ -102,7 +102,11 @@
{
$opt_o = $val;
}
- elsif ($name eq "port" )
+ # elsif ($name eq "port" )
+ # {
+ # $opt_n = $val;
+ # }
+ elsif ($name eq "nodename" )
{
$opt_n = $val;
}
@@ -176,8 +180,8 @@
}
elsif ( $opt_o eq "monitor" || $opt_o eq "stat" || $opt_o eq "status" )
{
- print "Performing: $opt_s -t $opt_t -S $opt_n\n" unless defined $opt_q;
- exec "$opt_s -t $opt_t $extra_args -S $opt_n" or die "failed to exec \"$opt_s\"\n";
+ print "Performing: $opt_s -t $opt_t -S\n" unless defined $opt_q;
+ exec "$opt_s -t $opt_t $extra_args -S" or die "failed to exec \"$opt_s\"\n";
}
else
{
With the modified fence_legacy ipmilan works again. However apcmastersnmp
still doesn't work, the parameters
pcmk_host_list="nodename" pcmk_host_check="static-list"
must be added to the original ones in order to make it work again.
Best regards,
Jozsef
--
E-mail : kadlecsik.jozsef at wigner.mta.hu
PGP key: http://www.kfki.hu/~kadlec/pgp_public_key.txt
Address: Wigner Research Centre for Physics, Hungarian Academy of Sciences
H-1525 Budapest 114, POB. 49, Hungary
More information about the Pacemaker
mailing list