[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: RHCS and drbd integration (was Re: [Linux-cluster] High Availability option)



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 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.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]