Locations of visitors to this page

Tuesday, May 26, 2009

A simple example of deploying Tomcat failover cluster 部署Tomcat故障转移集群

A simple example of deploying Tomcat failover cluster

有关Red Hat Cluster Suite的基本概念和操作请见:
Cluster Suite Overview
Cluster Administration

下面介绍部署Tomcat故障转移集群(failover cluster)的简单例子

环境:
2台Dell 1850

节点1:Perf-LG-6.s3lab.mot.com 192.168.16.16
节点2:Perf-LG-7.s3lab.mot.com 192.168.16.17

打算部署一个2节点的集群, 浮动IP用192.168.16.31


1. 安装集群软件
yum -y groupinstall "Clustering"
[root@Perf-LG-6.s3lab.mot.com ~]# yum -y groupinstall "Clustering"
Loading "fastestmirror" plugin
Loading mirror speeds from cached hostfile
 * EPEL-base: 192.168.11.16
 * base: 192.168.11.16
 * update: 192.168.11.16
base                      100% |=========================| 1.1 kB    00:00
update                    100% |=========================|  951 B    00:00
primary.xml.gz            100% |=========================| 434 kB    00:00
update    : ################################################## 959/959
Setting up Group Process
Loading mirror speeds from cached hostfile
 * EPEL-base: 192.168.11.16
 * base: 192.168.11.16
 * update: 192.168.11.16
Resolving Dependencies
--> Running transaction check
---> Package piranha.x86_64 0:0.8.4-9.3.el5 set to be updated
---> Package modcluster.x86_64 0:0.12.0-7.el5.centos set to be updated
--> Processing Dependency: libcman.so.2()(64bit) for package: modcluster
---> Package system-config-cluster.noarch 0:1.0.52-1.1 set to be updated
---> Package cluster-cim.x86_64 0:0.12.0-7.el5.centos set to be updated
--> Processing Dependency: tog-pegasus for package: cluster-cim
---> Package luci.x86_64 0:0.12.0-7.el5.centos.3 set to be updated
--> Processing Dependency: python-imaging for package: luci
---> Package rgmanager.x86_64 0:2.0.38-2.el5_2.1 set to be updated
---> Package ricci.x86_64 0:0.12.0-7.el5.centos.3 set to be updated
---> Package ipvsadm.x86_64 0:1.24-8.1 set to be updated
---> Package cluster-snmp.x86_64 0:0.12.0-7.el5.centos set to be updated
--> Processing Dependency: net-snmp for package: cluster-snmp
--> Running transaction check
---> Package cman.x86_64 0:2.0.84-2.el5_2.3 set to be updated
--> Processing Dependency: libSaCkpt.so.2(OPENAIS_CKPT_B.01.01)(64bit) for package: cman
--> Processing Dependency: perl(XML::LibXML) for package: cman
--> Processing Dependency: openais for package: cman
--> Processing Dependency: libSaCkpt.so.2()(64bit) for package: cman
--> Processing Dependency: libcpg.so.2()(64bit) for package: cman
--> Processing Dependency: libcpg.so.2(OPENAIS_CPG_1.0)(64bit) for package: cman
--> Processing Dependency: perl(Net::Telnet) for package: cman
---> Package net-snmp.x86_64 1:5.3.1-24.el5_2.2 set to be updated
--> Processing Dependency: libsensors.so.3()(64bit) for package: net-snmp
---> Package tog-pegasus.x86_64 2:2.7.0-2.el5_2.1 set to be updated
---> Package python-imaging.x86_64 0:1.1.5-5.el5 set to be updated
--> Processing Dependency: tkinter for package: python-imaging
--> Processing Dependency: libtk8.4.so()(64bit) for package: python-imaging
--> Running transaction check
---> Package lm_sensors.x86_64 0:2.10.0-3.1 set to be updated
---> Package perl-XML-LibXML.x86_64 0:1.58-5 set to be updated
--> Processing Dependency: perl-XML-NamespaceSupport for package: perl-XML-LibXML
--> Processing Dependency: perl-XML-LibXML-Common for package: perl-XML-LibXML
--> Processing Dependency: perl(XML::SAX::Exception) for package: perl-XML-LibXML
--> Processing Dependency: perl(XML::LibXML::Common) for package: perl-XML-LibXML
--> Processing Dependency: perl-XML-SAX for package: perl-XML-LibXML
--> Processing Dependency: perl(XML::SAX::DocumentLocator) for package: perl-XML-LibXML
--> Processing Dependency: perl(XML::SAX::Base) for package: perl-XML-LibXML
--> Processing Dependency: perl(XML::NamespaceSupport) for package: perl-XML-LibXML
---> Package openais.x86_64 0:0.80.3-15.el5 set to be updated
---> Package tkinter.x86_64 0:2.4.3-21.el5 set to be updated
--> Processing Dependency: libTix8.4.so()(64bit) for package: tkinter
---> Package perl-Net-Telnet.noarch 0:3.03-7.el5 set to be updated
---> Package tk.x86_64 0:8.4.13-5.el5_1.1 set to be updated
--> Running transaction check
---> Package perl-XML-NamespaceSupport.noarch 0:1.09-1.2.1 set to be updated
---> Package perl-XML-LibXML-Common.x86_64 0:0.13-8.2.2 set to be updated
---> Package perl-XML-SAX.noarch 0:0.14-5 set to be updated
---> Package tix.x86_64 1:8.4.0-11.fc6 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 cluster-cim             x86_64     0.12.0-7.el5.centos  base              142 k
 cluster-snmp            x86_64     0.12.0-7.el5.centos  base              139 k
 luci                    x86_64     0.12.0-7.el5.centos.3  base               27 M
 piranha                 x86_64     0.8.4-9.3.el5    base              714 k
 rgmanager               x86_64     2.0.38-2.el5_2.1  update            294 k
 ricci                   x86_64     0.12.0-7.el5.centos.3  base              1.1 M
 system-config-cluster   noarch     1.0.52-1.1       base              290 k
Installing for dependencies:
 cman                    x86_64     2.0.84-2.el5_2.3  update            649 k
 ipvsadm                 x86_64     1.24-8.1         base               31 k
 lm_sensors              x86_64     2.10.0-3.1       base              504 k
 modcluster              x86_64     0.12.0-7.el5.centos  base              331 k
 net-snmp                x86_64     1:5.3.1-24.el5_2.2  update            702 k
 openais                 x86_64     0.80.3-15.el5    base              374 k
 perl-Net-Telnet         noarch     3.03-7.el5       EPEL-base          56 k
 perl-XML-LibXML         x86_64     1.58-5           base              230 k
 perl-XML-LibXML-Common  x86_64     0.13-8.2.2       base               16 k
 perl-XML-NamespaceSupport  noarch     1.09-1.2.1       base               15 k
 perl-XML-SAX            noarch     0.14-5           base               75 k
 python-imaging          x86_64     1.1.5-5.el5      base              408 k
 tix                     x86_64     1:8.4.0-11.fc6   base              333 k
 tk                      x86_64     8.4.13-5.el5_1.1  base              901 k
 tkinter                 x86_64     2.4.3-21.el5     base              281 k
 tog-pegasus             x86_64     2:2.7.0-2.el5_2.1  update            6.8 M

Transaction Summary
=============================================================================
Install     23 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 41 M
Downloading Packages:
(1/23): ricci-0.12.0-7.el 100% |=========================| 1.1 MB    00:00
(2/23): cman-2.0.84-2.el5 100% |=========================| 649 kB    00:00
(3/23): lm_sensors-2.10.0 100% |=========================| 504 kB    00:00
(4/23): tix-8.4.0-11.fc6. 100% |=========================| 333 kB    00:00
(5/23): piranha-0.8.4-9.3 100% |=========================| 714 kB    00:00
(6/23): python-imaging-1. 100% |=========================| 408 kB    00:00
(7/23): cluster-cim-0.12. 100% |=========================| 142 kB    00:00
(8/23): perl-XML-SAX-0.14 100% |=========================|  75 kB    00:00
(9/23): tkinter-2.4.3-21. 100% |=========================| 281 kB    00:00
(10/23): net-snmp-5.3.1-2 100% |=========================| 702 kB    00:00
(11/23): tk-8.4.13-5.el5_ 100% |=========================| 901 kB    00:00
(12/23): modcluster-0.12. 100% |=========================| 331 kB    00:00
(13/23): system-config-cl 100% |=========================| 290 kB    00:00
(14/23): perl-XML-LibXML- 100% |=========================| 230 kB    00:00
(15/23): rgmanager-2.0.38 100% |=========================| 294 kB    00:00
(16/23): luci-0.12.0-7.el 100% |=========================|  27 MB    00:02
(17/23): cluster-snmp-0.1 100% |=========================| 139 kB    00:00
(18/23): perl-XML-LibXML- 100% |=========================|  16 kB    00:00
(19/23): perl-XML-Namespa 100% |=========================|  15 kB    00:00
(20/23): perl-Net-Telnet- 100% |=========================|  56 kB    00:00
(21/23): tog-pegasus-2.7. 100% |=========================| 6.8 MB    00:00
(22/23): ipvsadm-1.24-8.1 100% |=========================|  31 kB    00:00
(23/23): openais-0.80.3-1 100% |=========================| 374 kB    00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: tk                           ####################### [ 1/23]
  Installing: tix                          ####################### [ 2/23]
  Installing: tkinter                      ####################### [ 3/23]
  Installing: python-imaging               ####################### [ 4/23]
  Installing: lm_sensors                   ####################### [ 5/23]
  Installing: net-snmp                     ####################### [ 6/23]
  Installing: tog-pegasus                  ####################### [ 7/23]
  Installing: perl-XML-LibXML-Common       ####################### [ 8/23]
  Installing: ipvsadm                      ####################### [ 9/23]
  Installing: openais                      ####################### [10/23]
  Installing: perl-XML-NamespaceSupport    ####################### [11/23]
  Installing: perl-XML-SAX                 ####################### [12/23]
  Installing: perl-XML-LibXML              ####################### [13/23]
could not find ParserDetails.ini in /usr/lib/perl5/vendor_perl/5.8.8/XML/SAX
  Installing: perl-Net-Telnet              ####################### [14/23]
  Installing: piranha                      ####################### [15/23]
  Installing: luci                         ####################### [16/23]
  Installing: cman                         ####################### [17/23]
  Installing: modcluster                   ####################### [18/23]
  Installing: cluster-snmp                 ####################### [19/23]
  Installing: rgmanager                    ####################### [20/23]
  Installing: system-config-cluster        ####################### [21/23]
  Installing: cluster-cim                  ####################### [22/23]
  Installing: ricci                        ####################### [23/23]

Installed: cluster-cim.x86_64 0:0.12.0-7.el5.centos cluster-snmp.x86_64 0:0.12.0-7.el5.centos luci.x86_64 0:0.12.0-7.el5.centos.3 piranha.x86_64 0:0.8.4-9.3.el5 rgmanager.x86_64 0:2.0.38-2.el5_2.1 ricci.x86_64 0:0.12.0-7.el5.centos.3 system-config-cluster.noarch 0:1.0.52-1.1
Dependency Installed: cman.x86_64 0:2.0.84-2.el5_2.3 ipvsadm.x86_64 0:1.24-8.1 lm_sensors.x86_64 0:2.10.0-3.1 modcluster.x86_64 0:0.12.0-7.el5.centos net-snmp.x86_64 1:5.3.1-24.el5_2.2 openais.x86_64 0:0.80.3-15.el5 perl-Net-Telnet.noarch 0:3.03-7.el5 perl-XML-LibXML.x86_64 0:1.58-5 perl-XML-LibXML-Common.x86_64 0:0.13-8.2.2 perl-XML-NamespaceSupport.noarch 0:1.09-1.2.1 perl-XML-SAX.noarch 0:0.14-5 python-imaging.x86_64 0:1.1.5-5.el5 tix.x86_64 1:8.4.0-11.fc6 tk.x86_64 0:8.4.13-5.el5_1.1 tkinter.x86_64 0:2.4.3-21.el5 tog-pegasus.x86_64 2:2.7.0-2.el5_2.1
Complete!
[root@Perf-LG-6.s3lab.mot.com ~]#



2. 安装Tomcat 6
useradd tomcat
tar -C /home/tomcat -zxf /u01/software/blur/apache-tomcat-6.0.18.blur.tar.gz
chown -R tomcat:tomcat /home/tomcat/apache-tomcat-6.0.18.blur
mkdir -p /usr/java
tar -C /usr/java -xf /u01/software/blur/jdk1.6.0_11.tar
cat >/etc/profile.d/java.sh <<'EOF'
#
# Automatically generated file, check puppet master to make changes
#
export JAVA_HOME=/usr/java/jdk1.6.0_11
export PATH=$JAVA_HOME/bin:$PATH
export CATALINA_OPTS="-Xms512m -Xmx512m -XX:MaxPermSize=256M"
# perhaps pass the tc version as a param
export CATALINA_PID=/home/tomcat/apache-tomcat-6.0.18.blur/bin/tomcat.pid
export LD_LIBRARY_PATH=/usr/local/apr/lib
EOF
chmod +x /etc/profile.d/java.sh


3. 将Tomcat服务的监听地址指定为浮动IP地址
vi /home/tomcat/apache-tomcat-6.0.18.blur/conf/server.xml
    <!-- A "Connector" represents an endpoint by which requests are received
         and responses are returned. Documentation at :
         Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
         Java AJP  Connector: /docs/config/ajp.html
         APR (HTTP/AJP) Connector: /docs/apr.html
         Define a non-SSL HTTP/1.1 Connector on port 8080
    -->
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" address="192.168.16.31" />


4. 为Tomcat增加一种资源类型
cat >/usr/share/cluster/tomcat6.sh <<'EOFEOFEOF'
#!/bin/sh
#
# Startup script for Tomcat Servlet Engine
#
# (Automatically generated file, check puppet master to make changes)
#
# chkconfig: 345 86 14
# description: Tomcat Servlet Engine
# processname: tomcat
# pidfile: /home/tomcat/apache-tomcat-6.0.16/bin/tomcat.pid
#
export LC_ALL=C
export LANG=C
export PATH=/bin:/sbin:/usr/bin:/usr/sbin

#. $(dirname $0)/ocf-shellfuncs
#. $(dirname $0)/utils/config-utils.sh
#. $(dirname $0)/utils/messages.sh
#. $(dirname $0)/utils/ra-skelet.sh

. /etc/init.d/functions


# User under which tomcat will run
TOMCAT_USER=tomcat
TOMCAT_HOMELOC=/home/tomcat/apache-tomcat-6.0.18.blur

RETVAL=0
prog=tomcat6.0.18.blur

# start, debug, stop, and status functions
meta_data() {
cat <<'EOF'
<?xml version="1.0"?>
<resource-agent version="rgmanager 2.0" name="tomcat6">
    <version>1.0</version>

    <longdesc lang="en">
        This defines an instance of Tomcat 6 server
    </longdesc>
    <shortdesc lang="en">
        Defines a Tomcat 6 server
    </shortdesc>

    <parameters>
        <parameter name="name" primary="1">
            <longdesc lang="en">
                Specifies a service name for logging and other purposes
            </longdesc>
            <shortdesc lang="en">
                Name
            </shortdesc>
            <content type="string"/>
        </parameter>
        <parameter name="service_name" inherit="service%name">
            <longdesc lang="en">
                Inherit the service name.  We need to know
                the service name in order to determine file
                systems and IPs for this service.
            </longdesc>
            <shortdesc lang="en">
                Inherit the service name.
            </shortdesc>
            <content type="string"/>
        </parameter>
    </parameters>

    <actions>
        <action name="start" timeout="60"/>
        <action name="stop" timeout="60"/>

        <!-- Checks to see if it''s mounted in the right place -->
        <action name="status" interval="10" timeout="10"/>
        <action name="monitor" interval="10" timeout="10"/>

        <!--
        <action name="status" depth="*" timeout="120" interval="5m"/>
        <action name="monitor" depth="*" timeout="120" interval="5m"/>
        -->

        <action name="meta-data" timeout="10"/>
        <action name="verify-all" timeout="10"/>

    </actions>

    <special tag="rgmanager">
    </special>
</resource-agent>
EOF
}

verify_all()
{
        return 0
}

start() {
    # Start Tomcat in normal mode
    SHUTDOWN_PORT=`netstat -vatn|grep LISTEN|grep 8005|wc -l`
    if [ $SHUTDOWN_PORT -ne 0 ]; then
        echo -n "Tomcat already started"
        echo_success
        echo
    else
        echo "Starting tomcat..."
        chown -R $TOMCAT_USER:$TOMCAT_USER $TOMCAT_HOMELOC/*
        su -l $TOMCAT_USER -c "$TOMCAT_HOMELOC/bin/startup.sh"
        SHUTDOWN_PORT=`netstat -vatn|grep LISTEN|grep 8005|wc -l`
        while [ $SHUTDOWN_PORT -eq 0 ]; do
            sleep 1
        #    echo -n "."
            SHUTDOWN_PORT=`netstat -vatn|grep LISTEN|grep 8005|wc -l`
        done
        RETVAL=$?
        echo
        echo -n "Tomcat started in normal mode"
        echo_success
        echo
        [ $RETVAL=0 ] && touch /var/lock/subsys/tomcat6
    fi
}

debug() {
    # Start Tomcat in debug mode
    SHUTDOWN_PORT=`netstat -vatn|grep LISTEN|grep 8005|wc -l`
    if [ $SHUTDOWN_PORT -ne 0 ]; then
        echo -n "Tomcat already started"
        echo_success
        echo
    else
        echo "Starting tomcat in debug mode..."
        chown -R $TOMCAT_USER:$TOMCAT_USER $TOMCAT_HOMELOC/*
        su -l $TOMCAT_USER -c "$TOMCAT_HOMELOC/bin/catalina.sh jpda start"
        SHUTDOWN_PORT=`netstat -vatn|grep LISTEN|grep 8005|wc -l`
        while [ $SHUTDOWN_PORT -eq 0 ]; do
            sleep 1
        #    echo -n "."
            SHUTDOWN_PORT=`netstat -vatn|grep LISTEN|grep 8005|wc -l`
        done
        RETVAL=$?
        echo
        echo -n "Tomcat started in debug mode"
        echo_success
        echo
        [ $RETVAL=0 ] && touch /var/lock/subsys/tomcat6
    fi
}

stop() {
    SHUTDOWN_PORT=`netstat -vatn|grep LISTEN|grep 8005|wc -l`
    if [ $SHUTDOWN_PORT -eq 0 ]; then
        echo -n "Tomcat already stopped"
        echo_success
        echo
    else
        echo "Stopping tomcat..."
        su -l $TOMCAT_USER -c "$TOMCAT_HOMELOC/bin/shutdown.sh -force"
        RETVAL=$?
        sleep 5
        echo_success
        echo -n "Tomcat stopped"
        # tomcat smackdown
        #kill -9 `ps -ef |grep tomcat | grep -v grep | awk '{print $2}'` 2> /dev/null
        echo
        [ $RETVAL=0 ] && rm -f /var/lock/subsys/tomcat6 $TOMCAT_HOMELOC/bin/tomcat.pid
    fi
}

status() {
    SHUTDOWN_PORT=`netstat -vatn|grep LISTEN|grep 8005|wc -l`
    if [ $SHUTDOWN_PORT -eq 0 ]; then
        echo -n "Tomcat stopped"
        echo_success
        echo
        return $OCF_ERR_GENERIC
    else
        MODE="normal"
        JPDA_PORT=`netstat -vatn|grep LISTEN|grep 8000|wc -l`
        if [ $JPDA_PORT -ne 0 ]; then
            MODE="debug"
        fi
        echo "Tomcat running in $MODE mode"
    fi
}

case "$1" in
  start)
        verify_all && start
        exit $?
        ;;
  debug)
        debug
        ;;
  stop)
        verify_all && stop
        exit $?
        ;;
  restart)
        verify_all
        stop
        start
        exit $?
        ;;
  redebug)
        stop
        debug
        ;;
  status|monitor)
        verify_all
        status
        RETVAL=$?
        ;;
  meta-data)
        meta_data
        exit 0
        ;;
  verify-all)
        verify_all
        exit $?
        ;;
  *)
        echo "Usage: $0 {start|debug|stop|restart|redebug|status|meta-data}"
        exit $OCF_ERR_GENERIC
esac

exit $RETVAL

EOFEOFEOF

chmod +x /usr/share/cluster/tomcat6.sh


5. 配置集群

cat >/etc/cluster/cluster.conf<<EOF
<?xml version="1.0" ?>
<cluster alias="new_cluster" config_version="17" name="new_cluster">
        <fence_daemon post_fail_delay="0" post_join_delay="3"/>
        <clusternodes>
                <clusternode name="192.168.16.16" nodeid="1" votes="1">
                        <fence>
                                <method name="1">
                                        <device name="testFence" nodename="192.168.16.16"/>
                                </method>
                        </fence>
                </clusternode>
                <clusternode name="192.168.16.17" nodeid="2" votes="1">
                        <fence>
                                <method name="1">
                                        <device name="testFence" nodename="192.168.16.17"/>
                                </method>
                        </fence>
                </clusternode>
        </clusternodes>
        <cman expected_votes="1" two_node="1"/>
        <fencedevices>
                <fencedevice agent="fence_manual" name="testFence"/>
        </fencedevices>
        <rm>
                <failoverdomains>
                        <failoverdomain name="testFailoverDom" ordered="0" restricted="0">
                                <failoverdomainnode name="192.168.16.16" priority="1"/>
                                <failoverdomainnode name="192.168.16.17" priority="1"/>
                        </failoverdomain>
                </failoverdomains>
                <resources>
                        <ip address="192.168.16.31" monitor_link="1"/>
                        <tomcat6 name="tc6test"/>
                </resources>
                <service autostart="1" domain="testFailoverDom" name="tc6svc" recovery="relocate">
                        <ip ref="192.168.16.31">
                                <tomcat6 ref="tc6test"/>
                        </ip>
                </service>
        </rm>
</cluster>
EOF


6. 启动集群服务
service rgmanager stop
service cman stop
service cman start
service rgmanager start
[root@Perf-LG-6.s3lab.mot.com ~]# service rgmanager stop
Cluster Service Manager is stopped.
[root@Perf-LG-6.s3lab.mot.com ~]# service cman stop
Stopping cluster:
   Stopping fencing... done
   Stopping cman... done
   Stopping ccsd... done
   Unmounting configfs... done
                                                           [  OK  ]
[root@Perf-LG-6.s3lab.mot.com ~]# service cman start
Starting cluster:
   Loading modules... done
   Mounting configfs... done
   Starting ccsd... done
   Starting cman... done
   Starting daemons... done
   Starting fencing... done
                                                           [  OK  ]
[root@Perf-LG-6.s3lab.mot.com ~]# service rgmanager start
Starting Cluster Service Manager:                          [  OK  ]

root     30617    35  0 03:03 ?        00:00:00 [gfs2_scand]
root     30619    35  0 03:03 ?        00:00:00 [glock_workqueue]
root     30620    35  0 03:03 ?        00:00:00 [glock_workqueue]
root     30637     1  0 03:03 ?        00:00:00 /sbin/ccsd
root     30643     1  0 03:03 ?        00:00:00 aisexec
root     30653     1  0 03:03 ?        00:00:00 /sbin/groupd
root     30661     1  0 03:03 ?        00:00:00 /sbin/fenced
root     30667     1  0 03:03 ?        00:00:00 /sbin/dlm_controld
root     30673     1  0 03:03 ?        00:00:00 /sbin/gfs_controld
root     30703     1  0 03:04 ?        00:00:00 clurgmgrd
root     30704 30703  0 03:04 ?        00:00:00 clurgmgrd
root     30705    35  0 03:04 ?        00:00:00 [dlm_astd]
root     30706    35  0 03:04 ?        00:00:00 [dlm_scand]
root     30707    35  0 03:04 ?        00:00:00 [dlm_recv]
root     30708    35  0 03:04 ?        00:00:00 [dlm_send]
root     30709    35  0 03:04 ?        00:00:00 [dlm_recoverd]
root     31125 28541  0 03:04 pts/7    00:00:00 ps -ef

停止cman服务如果停不掉, 可用
cman_tool leave force
cman_tool leave force remove
然后再停

服务rgmanager起来之后,tomcat6被自动启动
[root@Perf-LG-6.s3lab.mot.com ~]# ps -ef|grep java
tomcat    4542     1 97 04:50 ?        00:00:06 /usr/java/jdk1.6.0_11/bin/java -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/home/tomcat/apache-tomcat-6.0.18.blur/conf/logging.properties -Xms512m -Xmx512m -XX:MaxPermSize=256M -Djava.endorsed.dirs=/home/tomcat/apache-tomcat-6.0.18.blur/endorsed -classpath :/home/tomcat/apache-tomcat-6.0.18.blur/bin/bootstrap.jar -Dcatalina.base=/home/tomcat/apache-tomcat-6.0.18.blur -Dcatalina.home=/home/tomcat/apache-tomcat-6.0.18.blur -Djava.io.tmpdir=/home/tomcat/apache-tomcat-6.0.18.blur/temp org.apache.catalina.startup.Bootstrap start
root      4679 28541  0 04:50 pts/7    00:00:00 grep java


7. 测试
如果在节点1上杀掉tomcat进程, 大约过10秒钟后, 在节点2上重启



-fin-

1 comment:

zdric83 said...

I'm french so sorry for my english.
Good job! You help me for my cluster under CentOS 5 for 2 nodes with IP, Tomcat and Postgres.
Thanks :)

Website Analytics

Followers