| #!/bin/bash | |
| # | |
| # This script is inteded to be used as resource script by heartbeat | |
| # | |
| # Dec 2005 by Philipp Reisner. | |
| # | |
| # In heartbeat's haresources you should have: | |
| # IPAddr::XXX drbdupper::resource Filesystem::XXX | |
| # in other words, you have to allocate the service IP before you | |
| # try to activate the upper DRBD resource. | |
| ### | |
| DEFAULTFILE="/etc/default/drbd" | |
| DRBDADM="/sbin/drbdadm" | |
| if [ -f $DEFAULTFILE ]; then | |
| . $DEFAULTFILE | |
| fi | |
| if [ "$#" -eq 2 ]; then | |
| RES="$1" | |
| CMD="$2" | |
| else | |
| echo "A resource name is required." | |
| exit 10 | |
| fi | |
| if [ "$RES" = "all" ]; then | |
| echo "A resource name is required." | |
| exit 10 | |
| fi | |
| case "$CMD" in | |
| start) | |
| set -e # exit if one of these fails | |
| $DRBDADM primary `$DRBDADM -S sh-lr-of $RES` | |
| $DRBDADM -S check-resize $RES || true # may fail | |
| $DRBDADM -S adjust $RES | |
| $DRBDADM -S wait-connect $RES || true # may fail | |
| $DRBDADM -S primary $RES | |
| ;; | |
| stop) | |
| $DRBDADM -S down $RES | |
| $DRBDADM secondary `$DRBDADM -S sh-lr-of $RES` | |
| ;; | |
| status) | |
| if $DRBDADM -S role $RES | grep -q "Primary/"; then | |
| echo "running" | |
| else | |
| echo "stopped" | |
| fi | |
| ;; | |
| *) | |
| echo "Usage: drbdupper {resource} {start|stop|status}" | |
| exit 1 | |
| ;; | |
| esac | |
| exit 0 | |