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 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/