PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : DRBD und Heartbeat



Kevin26
09.02.05, 15:05
Ich hab mel etwas gebastelt. Wollte 2 REchner per HEartbeat und DRBD zu nem Cluster zusammenbasteln. Funktioniert auch soweit, nur wie kriege ich DRBD beim Ausfall vom Primärserver dazu aktiv zu werden? Es gab wohl mal ein Script "datadisk" das auf /etc/ha.d/resources liegen sollte. Tuts aber nicht. Gibts da jetzt was vergleichbares?

Danke

Kevin

Kevin26
09.02.05, 16:09
Ok, habs gefunden. Da lief beim installieren von drbd was schief so das die Dateien nicht da waren. Es funktioniert jetzt alles, zumindest denke ich das. Das Szenario, das der Primäre nach nem Ausfall wieder hochkommt und auch wieder Primär wird habe ich noch nicht probiert.

Kevin26
14.02.05, 12:45
Ok, jetzt hab ich weitere Probs, Beiträge im Forum hab ich schon gelesen, kam damit abernicht wirklich weiter.

Eingerichtet ist jetzt alles, heartbeat tut perfekt, nur mit dem Steuern des DRBD hat er so seine Probs.

Hier mal die Conf-Files:

drbd.conf:


resource drbd0 {

protocol = C
fsckcmd = fsck.ext3 -p -y

on praxisserver {
device = /dev/nb0
disk = /dev/hda4
address = 10.0.0.1
port = 7788
}

on praxisserver2 {
device = /dev/nb0
disk = /dev/hda4
address = 10.0.0.2
port = 7788
}

net {
sync-rate=100M
}
}

hier die ha.cf


# /etc/ha.d/ha.cf

debugfile /var/log/ha-debug
logfile /var/log/ha-log
keepalive 1
deadtime 10
warntime 5
initdead 120
nice_failback off
udpport 694
bcast eth1
node praxisserver
node praxisserver2#




Hier die haresources:


# /etc/ha.d/haresources
#
# praxisserver ist der primäre Server
praxisserver 192.168.128.1 drbd-control::drbd0 Filesystem::/dev/nb0::/home::ext3 smb nmb inetd xdm xfs


Wenn ich jetzt den Primären neu starte übernimmt heartbeat und startet die Dienste, das ha-log sieht gut aus.
Wenn dann der Primäre
wieder oben ist steht in /proc/drbd folgendes:



version: 0.6.2 (api:61/proto:62)

0: cs:Unconfigured st:Secondary/Unknown ns:0 nr:0 dw:0 dr:0 pe:0 ua:0
1: cs:Unconfigured st:Secondary/Unknown ns:0 nr:0 dw:0 dr:0 pe:0 ua:0


Sieht jemand den Fehler? Ich seh wohl den Wald vor Bäumen nicht.

Danke

Kevin

anquijix
07.03.05, 16:34
haste drbd gestartet und auf die synchronisation gewartet, bevor du heartbeat gestartet hast?

um nicht extra einen neuen thread aufzumachen, poste ich mein problem mal hier.. leider entstehen immer irgendwelche unerklärliche probleme :(

heartbeat und drbd funzen optimal. ich möchte vorläufig apache und tomcat hochverfügbar machen. mit apache habe ich keine probleme, aber mit tomcat.
wenn ich heartbeat stoppe, kann der tomcat prozess nicht gestoppt werden. nach 10 fehlgeschlagenen versuchen wird der pc automatisch neu gestartet. das kanns doch nicht sein.
wenn ich tomcat manuell starte und beende, funktioniert es einwandfrei, aber über heartbeat entsteht immer dieses problem.

in der ha-log steht folgendes..


heartbeat: 2005/03/07_14:51:30 info: Retrying failed stop operation [tomcat]
heartbeat: 2005/03/07_14:51:30 info: Running /etc/ha.d/resource.d/tomcat stop
heartbeat: 2005/03/07_14:51:30 ERROR: Return code 1 from /etc/ha.d/resource.d/tomcat
heartbeat: 2005/03/07_14:51:30 CRIT: Resource STOP failure. Reboot required!
heartbeat: 2005/03/07_14:51:30 CRIT: Killing heartbeat ungracefully!


was mache ich falsch? heartbeat läuft bei mir unter benutzer nobody, obwohl es einen benutzer hacluster und eine gruppe haclient gibt. tomcat sollte unter dem benutzer tomcat laufen, das tut es aber nicht, er läuft unter root, auch wenn ich ihn als user tomcat starte.
bin ich hier auf dem richtigen weg der problemsuche? oder habt ihr andere vorschläge?

ich bedanke mich im voraus

marce
07.03.05, 17:02
was steht denn in dem /etc/ha.d/resource.d/tomcat ?

anquijix
07.03.05, 19:00
folgendes:
was aber noch zu erwähnen ist. ich habe die installation auch schon unter suse 9.0 laufen gehabt, und da hat es mit dem gleichen startscript funktioniert. jetzt mache ich das ganze unter fedora core 3, da das auch das produktive system sein soll.


#!/bin/sh
#
# Startscript for Jakarta Tomcat
#
# chkconfig: - 87 15
# processname: tomcat

# Build Environment
. /etc/rc.d/init.d/functions
. /etc/sysconfig/network
. /etc/bashrc


# Check, if start/stop-scripts are available
[ -f ${CATALINA_HOME}/bin/startup.sh ] || exit 0
[ -f ${CATALINA_HOME}/bin/shutdown.sh ] || exit 0

# Do the requested Work...
case "$1" in
start)
# Starting Tomcat
if [ -f /var/lock/subsys/tomcat ] ; then
echo "Tomcat already started!"
exit 1
fi
echo "Starting Tomcat: "
${CATALINA_HOME}/bin/startup.sh
RETVAL=$?
echo
[ ${RETVAL} = 0 ] && touch /var/lock/subsys/tomcat
;;
stop)
# Stopping Tomcat
if [ ! -f /var/lock/subsys/tomcat ] ; then
echo "Tomcat already stopped!"
exit 1
fi
echo "Shutdown Tomcat: "
${CATALINA_HOME}/bin/shutdown.sh
RETVAL=$?
echo
[ ${RETVAL} = 0 ] && rm -f /var/lock/subsys/tomcat
;;
restart)
# Call this script 2 Times...
$0 stop
$0 start
;;
killjava)
# Force Stopping of Tomcat...
echo "Killing all Java Processes: "
killall -9 ${JAVA_HOME}/bin/java
if [ -f /var/lock/subsys/tomcat ] ; then
rm -f /var/lock/subsys/tomcat
fi
;;
status)
if [ -f /var/lock/subsys/tomcat ] ; then
echo "Tomcat running..."
exit 0
else
echo "Tomcat NOT running..."
exit 0
fi
;;
*)
echo "Usage: $0 {start|stop|restart|status|killjava}"
exit 1
esac
exit ${RETVAL}

anquijix
08.03.05, 09:28
ich muss noch was korrigieren.
das problem ist nicht, dass tomcat nicht gestoppt werden kann, sondern dass er nicht gestartet wird aus irgendeinem grund. daher wird es mit dem stoppen auch nicht funktionieren.

marce
08.03.05, 09:35
wo wird denn das CATALINA_HOME definiert? Ist das zu dem Zeitpunkt bekannt?

anquijix
08.03.05, 09:39
catalina_home ist in der /etc/bashrc eingetragen. und die wird beim ausführen des scripts eingelesen.


ps. vergiss meine pm, die ich gerade geschrieben hab ;)

anquijix
09.03.05, 15:07
das problem ist gelöst, obwohl ich immer noch nicht verstehe, warum es nicht funktioniert hat.
nach langem pingpong mit einem mitarbeiter hat er mich dann auf die spur gebracht. er hat ein anderes startscript verwendet. im prinzip macht das genau das gleiche, es ist einfach ein bisschen schlanker (tomcat status kann es zb nicht). und syntaxmässig gibt es minime unterschiede. jetzt scheint das ganze ohne probleme zu funzen.