Hi,

On Thu, Nov 15, 2012 at 11:52:48AM +0100, Stefan Botter wrote:
> Hi all,
> 
> recently I tried to use the STONITH plugin external/vcenter along with 
> vCenter 5 (I doubt, that the version is significant).
> While using the stonith resource for each node separately, I had no 
> problems, but using it in a clone resulted in failures like that one:
> 
> ====
> Nov 14 08:53:57 shermcl1 external/vcenter(vfencing:0)[23236]: [23257]:
>    ERROR: [reset shermcl2] Invalid target specified
> ====
> where the cluster consists of virtual machines SHERMCL1, SHERMCL2 and 
> SHERMCL3, with their unames shermcl1, shermcl2 and shermcl3, 
> accordingly. shermcl2 should be fenced, but the remaining cluster 
> members were unable to kill that machine.
> 
> The relevant portion of the cluster configuration is here:
> 
> ====
> node shermcl1
> node shermcl2
> node shermcl3
> 
> primitive vfencing stonith:external/vcenter \
>         params VI_SERVER="virtualcenter.dom.ain"
>   VI_CREDSTORE="/root/.vmware/credstore/vicredentials.xml"
>   HOSTLIST="shermcl1=SHERMCL1;shermcl2=SHERMCL2;shermcl3=SHERMCL3"
>   RESETPOWERON="0" \
>         op monitor interval="3600s"
> clone Fencing vfencing

It could be that the issue comes from the bug in fence_legacy,
which has been resolved in the meantime. Can you try to edit that
and replace the split command (line 86) with the following (i.e.
just append ", 2"):

         ($name,$val)=split /\s*=\s*/, $opt, 2;

The file location should be /usr/sbin/fence_legacy.

Can you please see if that helps?

Cheers,

Dejan

> location l-Fencing_shermcl1 Fencing 0: shermcl1
> location l-Fencing_shermcl2 Fencing 0: shermcl2
> location l-Fencing_shermcl3 Fencing 0: shermcl3
> ====
> 
> The location statements are needed, as the cluster itself is no 
> symmetric.
> 
> All machines are plain openSUSE 12.2 with corosync 1.4.3 and pacemaker 
> 1.1.6.
> 
> While running perfectly on the commandline with
> ====
> stonith -t external/vcenter VI_SERVER="virtualcenter.dom.ain" \
>  VI_CREDSTORE="/root/.vmware/credstore/vicredentials.xml" \
>  HOSTLIST="shermcl1=SHERMCL1;shermcl2=SHERMCL2;shermcl3=SHERMCL3" \
>  RESETPOWERON="0" -l
> ====
> and showing the names of the three virtual machines, I found, that 
> called as resource inside the cluster only the first hostname until the 
> first "=" is visible, perhaps caused by the handover as environment 
> variable.
> 
> Applying the attached trivial patch to use a colon (":") instead of the 
> equal sign ("=") the command line test
> ====
> stonith -t external/vcenter VI_SERVER="virtualcenter.dom.ain" \
>  VI_CREDSTORE="/root/.vmware/credstore/vicredentials.xml" \
>  HOSTLIST="shermcl1:SHERMCL1;shermcl2:SHERMCL2;shermcl3:SHERMCL3" \
>  RESETPOWERON="0" -l
> ====
> as well as fencing inside the cluster with
> ====
> primitive vfencing stonith:external/vcenter \
>         params VI_SERVER="virtualcenter.dom.ain"
>   VI_CREDSTORE="/root/.vmware/credstore/vicredentials.xml"
>   HOSTLIST="shermcl1:SHERMCL1;shermcl2:SHERMCL2;shermcl3:SHERMCL3"
>   RESETPOWERON="0" \
>         op monitor interval="3600s"
> ====
> succeeds.
> 
> 
> So a question around: Is anyone using the external/vcenter with the 
> cloned resource successfully with the original syntax?
> If so, where is my problem?
> 
> If not, the attached patch changes the syntax in the above described 
> way. If there is no objection can it be applied?
> 
> Greetings,
> 
> Stefan
> 
> PS: sorry for the line breaks in the code
> -- 
> Stefan Botter          listrea...@jsj.dyndns.org

> # HG changeset patch
> # User Stefan Botter <j...@jsj.dyndns.org>
> # Date 1352974761 -3600
> # Node ID 3429be9596a95127e04706c38c5c4d82fb67e206
> # Parent  0809ed6abeb7289f3a8f4229f537df8d509c0854
> - trivial change to use ":" as hostname delimiter in HOSTLIST instead of "="
> 
> diff -r 0809ed6abeb7 -r 3429be9596a9 lib/plugins/stonith/external/vcenter
> --- a/lib/plugins/stonith/external/vcenter    Mon Oct 22 17:35:17 2012 +0200
> +++ b/lib/plugins/stonith/external/vcenter    Thu Nov 15 11:19:21 2012 +0100
> @@ -55,12 +55,12 @@
>  <longdesc lang="en">
>  The list of hosts that the VMware vCenter STONITH device controls.
>  Syntax is:
> -  hostname1[=VirtualMachineName1];hostname2[=VirtualMachineName2]
> +  hostname1[:VirtualMachineName1];hostname2[:VirtualMachineName2]
>  
> -NOTE: omit =VirtualMachineName if hostname and virtual machine names are 
> identical
> +NOTE: omit :VirtualMachineName if hostname and virtual machine names are 
> identical
>  
>  Example:
> -  cluster1=VMCL1;cluster2=VMCL2
> +  cluster1:VMCL1;cluster2:VMCL2
>  </longdesc>
>  </parameter>
>  <parameter name="VI_SERVER">
> @@ -128,7 +128,7 @@
>       my %host_to_vm = ();
>       my %vm_to_host = ();
>       foreach my $host (@hostlist) {
> -             my @config = split(/=/, $host);
> +             my @config = split(/:/, $host);
>               my $key = $config[0]; my $value = $config[1];
>               if (!defined($value)) { $value = $config[0]; }
>               $host_to_vm{$key} = $value;

> _______________________________________________________
> Linux-HA-Dev: Linux-HA-Dev@lists.linux-ha.org
> http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
> Home Page: http://linux-ha.org/

_______________________________________________________
Linux-HA-Dev: Linux-HA-Dev@lists.linux-ha.org
http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
Home Page: http://linux-ha.org/

Reply via email to