Hi all,
I have to use Heartbeat with Pacemaker for High Availability between 2 Tomcat
5.5 servers under Linux RedHat 5.4.
The first server is active, the other one is passive. The master is called
servappli01, with IP address 186.20.100.81, the slave is called servappli02,
with IP address 186.20.100.82.
I configured a virtual IP 186.20.100.83. Each Tomcat is not launched when
server is started, this is Heartbeat which starts Tomcat when it's running.
All seem to be OK, each server see the other as active, and the crm_mon command
shows this below :
============
Last updated: Thu Nov 17 19:03:34 2011
Stack: Heartbeat
Current DC: servappli01 (bf8e9a46-8691-4838-82d9-942a13aeedca) - partition with
quorum
Version: 1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87
2 Nodes configured, 2 expected votes
2 Resources configured.
============
Online: [ servappli01 servappli02 ]
Clone Set: ClusterIPClone (unique)
ClusterIP:0 (ocf::heartbeat:IPaddr2): Started servappli01
ClusterIP:1 (ocf::heartbeat:IPaddr2): Started servappli02
Clone Set: TomcatClone (unique)
Tomcat:0 (ocf::heartbeat:tomcat): Started servappli01
Tomcat:1 (ocf::heartbeat:tomcat): Started servappli02
The 2 Tomcat servers as identical, and the same webapps are deployed on each
server in order to be able to access webapps on the other server if one is down.
By default, requests from clients are processed by the first server because
it's the master.
My problem is that when I crash the Tomcat on the first server, requests from
clients are not redirected to the second server. For a while, requests are not
processed, then Heartbeat restarts Tomcat itself and requests are processed
again by the first server.
Requests are never forwarded to the second Tomcat if the first is down.
Here is my configuration :
ha.cf file (the same on each server) :
crm respawn
logfacility local0
logfile /var/log/ha-log
debugfile /var/log/ha-debug
warntime 10
deadtime 20
initdead 120
keepalive 2
autojoin none
node servappli01
node servappli02
ucast eth0 186.20.100.81 # ignored by node1 (owner of ip)
ucast eth0 186.20.100.82 # ignored by node2 (owner of ip)
cib.xml file (the same on each server) :
<?xml version="1.0" ?>
<cib admin_epoch="0" crm_feature_set="3.0.1"
dc-uuid="bf8e9a46-8691-4838-82d9-942a13aeedca" epoch="127" have-quorum="1"
num_updates="51" validate-with="pacemaker-1.0">
<configuration>
<crm_config>
<cluster_property_set id="cib-bootstrap-options">
<nvpair id="cib-bootstrap-options-dc-version" name="dc-version"
value="1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87"/>
<nvpair id="cib-bootstrap-options-cluster-infrastructure"
name="cluster-infrastructure" value="Heartbeat"/>
<nvpair id="cib-bootstrap-options-expected-quorum-votes"
name="expected-quorum-votes" value="2"/>
<nvpair id="cib-bootstrap-options-no-quorum-policy"
name="no-quorum-policy" value="ignore"/>
<nvpair id="cib-bootstrap-options-stonith-enabled"
name="stonith-enabled" value="false"/>
</cluster_property_set>
</crm_config>
<nodes>
<node id="489a0305-862a-4280-bce5-6defa329df3f" type="normal"
uname="servappli01"/>
<node id="bf8e9a46-8691-4838-82d9-942a13aeedca" type="normal"
uname="servappli02"/>
</nodes>
<resources>
<clone id="TomcatClone">
<meta_attributes id="TomcatClone-meta_attributes">
<nvpair id="TomcatClone-meta_attributes-globally-unique"
name="globally-unique" value="true"/>
</meta_attributes>
<primitive class="ocf" id="Tomcat" provider="heartbeat" type="tomcat">
<instance_attributes id="Tomcat-instance_attributes">
<nvpair id="Tomcat-instance_attributes-tomcat_name"
name="tomcat_name" value="TomcatSBNG"/>
<nvpair id="Tomcat-instance_attributes-tomcat_user"
name="tomcat_user" value="tomcat"/>
<nvpair id="Tomcat-instance_attributes-statusurl" name="statusurl"
value="http://127.0.0.1:8080/mas-security/Security"/>
<nvpair id="Tomcat-instance_attributes-java_home" name="java_home"
value="/usr/java/default"/>
<nvpair id="Tomcat-instance_attributes-catalina_home"
name="catalina_home" value="/usr/share/tomcat55"/>
</instance_attributes>
<operations>
<op id="Tomcat-monitor-30s" interval="30s" name="monitor"
timeout="60s"/>
<op id="Tomcat-start-0" interval="0" name="start" timeout="120s"/>
<op id="Tomcat-stop-0" interval="0" name="stop" timeout="120s"/>
</operations>
</primitive>
</clone>
<clone id="ClusterIPClone">
<meta_attributes id="ClusterIPClone-meta_attributes">
<nvpair id="ClusterIPClone-meta_attributes-globally-unique"
name="globally-unique" value="true"/>
</meta_attributes>
<primitive class="ocf" id="ClusterIP" provider="heartbeat"
type="IPaddr2">
<instance_attributes id="ClusterIP-instance_attributes">
<nvpair id="ClusterIP-instance_attributes-ip" name="ip"
value="186.20.100.83"/>
<nvpair id="ClusterIP-instance_attributes-cidr_netmask"
name="cidr_netmask" value="24"/>
<nvpair id="ClusterIP-instance_attributes-clusterip_hash"
name="clusterip_hash" value="sourceip"/>
</instance_attributes>
<operations>
<op id="ClusterIP-monitor-30s" interval="30s" name="monitor"/>
</operations>
</primitive>
</clone>
</resources>
<constraints>
<rsc_colocation id="ip-with-tomcat" rsc="ClusterIPClone" score="INFINITY"
with-rsc="TomcatClone"/>
<rsc_order first="TomcatClone" id="ip-after-tomcat" score="INFINITY"
then="ClusterIPClone"/>
</constraints>
<rsc_defaults>
<meta_attributes id="rsc-options">
<nvpair id="rsc-options-resource-stickiness" name="resource-stickiness"
value="100"/>
</meta_attributes>
</rsc_defaults>
</configuration>
</cib>
Another strange thing is that the VIP never appears in the result of ifconfig
command...
Can somebody help me please ?
I guess there's is something wrong but I don't know what !
Thanx
Mathieu
_______________________________________________
Linux-HA mailing list
[email protected]
http://lists.linux-ha.org/mailman/listinfo/linux-ha
See also: http://linux-ha.org/ReportingProblems