Quoting Riaan van Niekerk <riaan obsidian co za>:
Hi Stephen, We've build a very similar HA Cluster with multiple network RAID1 block devices some month ago with RHES 4U3 / RHCS 6.1 and DRBD. After some fight with the start scripts of RHCS we're now in production with a postgresql DB, some application servers and also a huge NFS share exported to a front end RHCS cluster. All the 'services' use its ownblock devices mirrored by DRBD to a second machine. Till now everything is running very well and speedy.There is only one thing to mention, if you have multiple DRBD block devices to replicate you should have different mirror groups for the replication in the DRBD config. Otherwise it is very easy to saturate even a gig eth. Greetings Andreashi AndreasWould you care to share you startup scripts? I have looked at drbd as a shared storage replacement in RHCS 4. However the fact that drbd expects promote and demote as script/service parameters (for the heartbeat package drbd resource scripts) and RHCS only understands stop/start, some scripting will need to happen. Please let us others interested in this combination not have the same fight.If there is anyone else using drbd with RHCS 4, I would really appreciate it if you could post the relevant scripts which will make rgmanager play nice with drbd.To anyone that knows LVM mirroring: if LVM mirroring becomes stable, will it negate the need for drbd?To anoyone familiar with Fedora and the inclusion of new features / packages. What would it take to make drbd part of FC and the new cluster middleware in FC (and potentially RHEL). Or (again), will LVM mirroring negate that requirement?thank you in advance Riaan
Hi,
I use this script
#!/bin/bash
DRBDADM="/sbin/drbdadm"
if [ -f $DEFAULTFILE ]; then
. $DEFAULTFILE
fi
CMD=$1
NUM=0
RES=r${NUM}
case "$CMD" in
start)
# Nicht Starten, wenn aktuell SyncTarget
cat /proc/drbd|grep "^ ${NUM}: cs:SyncTarget" && exit 1
# try several times, in case heartbeat deadtime
# was smaller than drbd ping time
try=6
while true; do
$DRBDADM primary $RES && break
let "--try" || exit 1
sleep 1
done
;;
stop)
# Nicht Stoppen, wenn aktuelle SyncSource
cat /proc/drbd|grep "^ ${NUM}: cs:SyncSource" && exit 0
# exec, so the exit code of drbdadm propagates
$DRBDADM secondary $RES
RET=$?
if [ $RET = "0" ]; then
exit 0
else
exit 1
fi
;;
status)
if [ "$RES" = "all" ]; then
echo "A resource name is required for status inquiries."
exit 10
fi
ST=$( $DRBDADM state $RES 2> /dev/null )
ST=${ST%/*}
if [ "$ST" = "Primary" ]; then
echo "running"
exit 0
else
echo "stopped"
exit 3
fi
;;
*)
echo "Usage: drbddisk [resource] {start|stop|status}"
exit 1
;;
esac
exit 0
Greetings
Werner
----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.