RHCS and drbd integration (was Re: [Linux-cluster] High Availability option)
Werner Saar
saar at pop-dresden.de
Fri Jul 14 16:36:18 UTC 2006
Quoting Riaan van Niekerk <riaan at 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 own
>> block 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
>> Andreas
>
>
> hi Andreas
>
> Would 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.
More information about the Linux-cluster
mailing list