this is obsolete doc -- see instead

Setting up a cluster base with redhat/centos Cluster suite (RHCS) 

on Centos 6.7 


System Preparation 

(Optional) Proceed as usual with system post-installation and network configuration, but with one additional interface the the heartbeat, 

mv /etc/sysconfig/network-scripts/ifcfg-eth1 /etc/sysconfig/network-scripts/DIST.ifcfg-eth1
vi /etc/sysconfig/network-scripts/ifcfg-eth1


service network restart


Then add the nodes and the manager to hosts (heartbeat seperated network is only optional), 

vi /etc/hosts
10.0.0.X       cnode1 rhcs-cnode1 rhcs-cnode1.example.local
10.0.0.X       cnode2 rhcs-cnode2 rhcs-cnode2.example.local
10.0.0.X       cnode3 rhcs-cnode3 rhcs-cnode3.example.local
#10.0.0.X       manage rhcs-manage rhcs-manage.example.local       hbnode1       hbnode2       hbnode3


RHCS installation 

On the cluster nodes, 

yum -y groupinstall "High Availability"
#yum -y install ricci
#yum -y install ccs
chkconfig iptables off
chkconfig ip6tables off
service iptables stop
service ip6tables stop
passwd ricci


RHCS Configuration 

On one node, configure the cluster, either from the command line, 

ls -l /etc/cluster/cluster.conf # should not exist
ccs -h localhost --createcluster centosha
cat /etc/cluster/cluster.conf
ccs -h localhost --addnode hbnode1
ccs -h localhost --addnode hbnode2
ccs -h localhost --addnode hbnode3
cat /etc/cluster/cluster.conf

copy/paste the configuration on all the nodes, 

ls -l /etc/cluster/cluster.conf # should not exist
cat > /etc/cluster/cluster.conf <<EOF9
<?xml version="1.0"?>
<cluster config_version="4" name="centosha">
                <clusternode name="hbnode1" nodeid="1"/>
                <clusternode name="hbnode2" nodeid="2"/>
                <clusternode name="hbnode3" nodeid="3"/>
chmod 640 /etc/cluster/cluster.conf 


Ready to go 

Start the services on all the nodes, 

chkconfig ricci on
chkconfig cman on
chkconfig rgmanager on
chkconfig modclusterd on
service ricci start
service cman start
service rgmanager start
service modclusterd start


Creating fencing device (fence_soap) 

See available fencing device possibles, 

ccs -h localhost --lsfenceopts

more details on france_vmware_soap, 

ccs -h localhost --lsfenceopts fence_vmware_soap


On a cluster node, try to fence a node manually, before you configure fencing, 

fence_vmware_soap -a vcenter_address -l ADDOMAIN\\short -p 'AD_PASSWORD' -o list -z | grep -i rhcs
fence_vmware_soap -a vcenter_address -l shortlogin@addomain.tld -p 'AD_PASSWORD' -o status -n VM-rhcs-cnode2 -z
fence_vmware_soap -a vcenter_address -l shortlogin@addomain.tld -p 'AD_PASSWORD' -o off -n VM-rhcs-cnode2 -z
fence_vmware_soap -a vcenter_address -l shortlogin@addomain.tld -p 'AD_PASSWORD' -o on -n VM-rhcs-cnode2 -z
(and rejoin the cluster)

Note. both ADDOMAIN\\ or @addomain.tld works 


If it works for you, you are ready to configure the fencing device, 

ccs -h localhost --addfencedev fence_soap agent=fence_vmware_soap ipaddr="vcenter_address" login="short@addomain.tld" passwd="AD_PASSWORD"

or manually (increment the config version), 

vi /etc/cluster/cluster.conf
<cluster config_version="5" name="centosha">
                <fencedevice agent="fence_vmware_soap" ipaddr="vcenter_address" login="short@addomain.tld" name="fence_soap" passwd="AD_PASSWORD" ssl="1"/>

check and populate the changes, 

ccs -h localhost --lsfencedev
cat /etc/cluster/cluster.conf
cman_tool version -r


Setting up fencing for every node 

Now that a fence device agent is configured (fence_soap), enable fence methods for the nodes. 


Get the name and UUID of the cluster nodes from the vcenter, 

fence_vmware_soap -a vcenter_address -l ADDOMAIN\\short -p 'AD_PASSWORD' -o list -z | grep -i rhcs


Then on e.g. cnode1, 

grep name= /etc/cluster/cluster.conf | grep fence
ccs -h localhost --addmethod soap cnode1
ccs -h localhost --addmethod soap cnode2
ccs -h localhost --addmethod soap cnode3

link the methods to the device agent, 

ccs -h localhost --addfenceinst fence_soap cnode1 soap port="VM_NAME" uuid="UUID"
ccs -h localhost --addfenceinst fence_soap cnode2 soap port="VM_NAME" uuid="UUID"
ccs -h localhost --addfenceinst fence_soap cnode3 soap port="VM_NAME" uuid="UUID"

check and populate the changes, 

cman_tool version -r


Now check that fencing status responds on every node, 




Enable debugging, 

ccs -h localhost --setlogging debug=on


If you get this error trying to add fence_vmware_soap using css, 

"Validation Failure, unable to modify configuration file"

then proceed manually as show above, step by step. 

Ref. (unrelated) Bug 725722 - cluster.rng from ccs needs to match cluster.rng from cman: 


Troubleshooting -- Start from scratch 

If you ever need to start from scratch, on every cluster node, 

chkconfig ricci off
chkconfig cman off
chkconfig rgmanager off
chkconfig modclusterd off
rm -f /etc/cluster/cluster.conf


Optional -- RHCS web interface 

On the manager, 

yum -y groupinstall "High Availability Management"
yum -y install ricci
service ip6tables stop
service luci start
service ricci start

you can now access the management node web interface, 




RedHat Cluster Suite And Conga - Linux Clustering: 

Red Hat Enterprise Linux 6 Cluster Administration: 


More refs general!Cluster_Tutorial_2#Node_Host_Names 


References about Fencing 

How to configure fence_vmware_soap using the Red Hat Enterprise Linux 6 tool ccs: 

Appendix A. Fence Device Parameters: 


4.26. VMWare over SOAP API: 

How to test fence devices and fencing configuration in a RHEL 5, 6, or 7 High Availability cluster?: 

fence_vmware_soap agent fails with error 'Unable to connect/login to fencing device': 

9.4. Updating a Configuration: