Whamcloud - gitweb
Add LDLM setup/cleanup to subsystems set up via new configuration scripts.
authoradilger <adilger>
Tue, 21 May 2002 21:36:23 +0000 (21:36 +0000)
committeradilger <adilger>
Tue, 21 May 2002 21:36:23 +0000 (21:36 +0000)
It is also now possible to do "incremental" setup of subsystems (e.g.
"llcleanup.sh client-mount.cfg; llsetup.sh client-mount.cfg" or similar
without shutting everything else down).

*** NOTE:
*** You need to have a line "SETUP_LDLM=y" in your .cfg file (or add
*** ldlm.cfg to your command-line) in order for the CVS HEAD to be usable.

lustre/tests/common.sh
lustre/tests/ldlm.cfg [new file with mode: 0644]
lustre/tests/llcleanup.sh
lustre/tests/llrsetup.sh
lustre/tests/llsetup.sh

index 9843989..df65a1d 100644 (file)
@@ -3,8 +3,8 @@ export PATH=$PATH:/sbin:/usr/sbin
 
 [ -d /r ] && R=/r
 
-PORTALS=$SRCDIR/../../portals
-LUSTRE=$SRCDIR/../../obd
+PORTALS=$SRCDIR../../portals
+LUSTRE=$SRCDIR../../obd
 
 PTLCTL=$PORTALS/linux/utils/ptlctl
 DBGCTL=$PORTALS/linux/utils/debugctl
@@ -22,12 +22,13 @@ else
 fi
 
 do_insmod() {
-       MODULE=$LUSTRE/$1
+       MODULE=$1
+       BASE=`echo $MODULE | sed -e "s^.*/^^" -e "s/\.o$//"`
 
        [ "$MODULE" ] || fail "usage: $0 <module>"
        [ -f $MODULE ] || fail "$0: module '$MODULE' not found"
-
-       lsmod | grep -q `basename $MODULE` || insmod $MODULE || exit -1
+       lsmod | grep -q "\<$BASE\>" && return 1
+       insmod $MODULE || exit -1
 }
 
 # Return the next unused loop device on stdout and in the $LOOPDEV
@@ -58,7 +59,7 @@ new_fs () {
        if [ "$1" = "extN" ]; then
                MKFS="mkfs.ext2 -j"
                EFILE="$1_ext3.gz"
-               do_insmod extN/extN.o
+               do_insmod $LUSTRE/extN/extN.o
        fi
 
        if [ -b "$2" ]; then
@@ -96,7 +97,7 @@ new_fs () {
 old_fs () {
        [ -e $2 ] || exit -1
 
-       [ "$1" = "extN" ] && do_insmod extN/extN.o
+       [ "$1" = "extN" ] && do_insmod $LUSTRE/extN/extN.o
 
        if [ -b "$2" ]; then
                LOOPDEV=$2      # Not really a loop device
@@ -137,31 +138,36 @@ setup_opts() {
 }
 
 setup_portals() {
+       if grep -q portals /proc/modules; then
+               echo "$0: portals already appears to be set up, skipping"
+               return 0
+       fi
+
        if [ -z "$NETWORK" -o -z "$LOCALHOST" -o -z "$SERVER" ]; then
                echo "$0: NETWORK or LOCALHOST or SERVER is not set" 1>&2
                exit -1
        fi
 
-       if [ -z "$OSTNODE" ]; then 
-               OSTNODE=$SERVER
-        fi 
+       [ -z "$OSTNODE" ] && OSTNODE=$SERVER
 
-       if [ "$LOCALHOST" == "$SERVER" ]; then
-               DLM=localhost
-       else
-               DLM=$SERVER
+       if [ -z "$DLM" ]; then
+               if [ "$LOCALHOST" == "$SERVER" ]; then
+                       DLM=localhost
+               else
+                       DLM=$SERVER
+               fi
        fi
 
        [ -c /dev/portals ] || mknod /dev/portals c 10 240
 
-       insmod $PORTALS/linux/oslib/portals.o || exit -1
+       do_insmod $PORTALS/linux/oslib/portals.o
 
        case $NETWORK in
        elan)   [ "$PORT" ] && fail "$0: NETWORK is elan but PORT is set"
-               insmod $PORTALS/linux/qswnal/kqswnal.o
+               do_insmod $PORTALS/linux/qswnal/kqswnal.o
                ;;
        tcp)    [ "$PORT" ] || fail "$0: NETWORK is tcp but PORT is not set"
-               insmod $PORTALS/linux/socknal/ksocknal.o || exit -1
+               do_insmod $PORTALS/linux/socknal/ksocknal.o
                $ACCEPTOR $PORT
                ;;
        *)      fail "$0: unknown NETWORK '$NETWORK'" ;;
@@ -184,20 +190,26 @@ setup_portals() {
 setup_lustre() {
        [ -c /dev/obd ] || mknod /dev/obd c 10 241
 
-       do_insmod class/obdclass.o
-       do_insmod rpc/ptlrpc.o
-       do_insmod ldlm/ldlm.o
-       do_insmod mds/mds.o
-       do_insmod obdecho/obdecho.o
-       do_insmod ext2obd/obdext2.o
-       do_insmod filterobd/obdfilter.o
-       do_insmod ost/ost.o
-       do_insmod osc/osc.o
-       do_insmod mdc/mdc.o
-       do_insmod llight/llite.o
+       do_insmod $LUSTRE/class/obdclass.o
+       do_insmod $LUSTRE/rpc/ptlrpc.o
+       do_insmod $LUSTRE/ldlm/ldlm.o
+       do_insmod $LUSTRE/extN/extN.o
+       do_insmod $LUSTRE/mds/mds.o
+       do_insmod $LUSTRE/obdecho/obdecho.o
+       do_insmod $LUSTRE/ext2obd/obdext2.o
+       do_insmod $LUSTRE/filterobd/obdfilter.o
+       do_insmod $LUSTRE/ost/ost.o
+       do_insmod $LUSTRE/osc/osc.o
+       do_insmod $LUSTRE/mdc/mdc.o
+       do_insmod $LUSTRE/llight/llite.o
 
        list_mods
 
+       if $OBDCTL name2dev RPCDEV > /dev/null 2>&1; then
+               echo "$0: RPCDEV is already configured, skipping"
+               return 0
+       fi
+
        $OBDCTL <<- EOF || return $rc
        newdev
        attach ptlrpc RPCDEV
@@ -209,16 +221,17 @@ setup_lustre() {
 }
 
 setup_ldlm() {
-       [ -c /dev/portals ] || mknod /dev/portals c 10 240
+       [ "$SETUP_LDLM" = "y" ] || return 0
 
-       insmod $PORTALS/linux/oslib/portals.o || exit -1
+       [ -c /dev/portals ] || mknod /dev/portals c 10 240
 
-       do_insmod class/obdclass.o
-       do_insmod rpc/ptlrpc.o
-       do_insmod ldlm/ldlm.o
+       $OBDCTL <<- EOF || return $rc
+       newdev
+       attach ldlm LDLMDEV
+       setup
+       quit
+       EOF
 
-       DEBUG_WAIT=yes
-       list_mods
 }
 
 find_devno() {
@@ -244,10 +257,15 @@ setup_mds() {
                return -1
        fi
 
+       if $OBDCTL name2dev MDSDEV > /dev/null 2>&1; then
+               echo "$0: MDSDEV is already configured"
+               return 0
+       fi
+
        $DO_FS ${MDSFS} ${MDSDEV} ${MDSSIZE}
        MDS=${LOOPDEV}
 
-       $OBDCTL <<- EOF
+       $OBDCTL <<- EOF || return $rc
        newdev
        attach mds MDSDEV
        setup ${MDS} ${MDSFS}
@@ -279,6 +297,11 @@ setup_ost() {
                ;;
        esac
 
+       if $OBDCTL name2dev OBDDEV > /dev/null 2>&1; then
+               echo "$0: OBDDEV is already configured"
+               return 0
+       fi
+
        if [ "$NEED_FS" = "y" ]; then
                [ "$1" ] && DO_FS=$1
                if [ -z "$OSTFS" -o -z "$OSTDEV" ]; then
@@ -295,7 +318,7 @@ setup_ost() {
                OBD=${LOOPDEV}
        fi
 
-       $OBDCTL <<- EOF
+       $OBDCTL <<- EOF || return $rc
        newdev
        attach ${OSTTYPE} OBDDEV
        setup ${OBD} ${OBDARG}
@@ -313,6 +336,11 @@ setup_server() {
 setup_osc() {
        [ "$SETUP_OSC" != "y" ] && return 0
 
+       if $OBDCTL name2dev OSCDEV > /dev/null 2>&1; then
+               echo "$0: OSCDEV is already configured"
+               return 0
+       fi
+
        $OBDCTL <<- EOF || return $rc
        newdev
        attach osc OSCDEV
@@ -326,6 +354,11 @@ setup_mount() {
 
        [ "$OSCMT" ] || fail "error: $0: OSCMT unset"
 
+       if mount | grep -q $OSCMT; then
+               echo "$0: $OSCMT is already mounted"
+               return 0
+       fi
+
        [ ! -d $OSCMT ] && mkdir $OSCMT
        mount -t lustre_lite -o device=`find_devno OSCDEV` none $OSCMT
 }
@@ -387,12 +420,27 @@ cleanup_lustre() {
        rmmod obdecho
        rmmod obdfilter
        rmmod obdext2
+       rmmod extN
 
        rmmod ldlm
        rmmod ptlrpc
        rmmod obdclass
 }
 
+cleanup_ldlm() {
+       [ "$SETUP" -a -z "$SETUP_LDLM" ] && return 0
+
+       LDLMDEVNO=`find_devno LDLMDEV`
+       if [ "$LDLMDEVNO" ]; then
+               $OBDCTL <<- EOF
+               device $LDLMDEVNO
+               cleanup
+               detach
+               quit
+               EOF
+       fi
+}
+
 cleanup_mds() {
        [ "$SETUP" -a -z "$SETUP_MDS" ] && return 0
 
diff --git a/lustre/tests/ldlm.cfg b/lustre/tests/ldlm.cfg
new file mode 100644 (file)
index 0000000..054f983
--- /dev/null
@@ -0,0 +1,3 @@
+#!/bin/sh
+# Config file for setting up the lock manager
+SETUP_LDLM=y
index 4cf2879..ace40b7 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-SRCDIR="`dirname $0`"
+SRCDIR="`dirname $0`/"
 . $SRCDIR/common.sh
 
 setup_opts "$@"
@@ -11,6 +11,8 @@ $DBGCTL get_debug > /tmp/debug.2
 cleanup_server
 
 $DBGCTL get_debug > /tmp/debug.3
-cleanup_lustre
+cleanup_ldlm
 $DBGCTL get_debug > /tmp/debug.4
+cleanup_lustre
+$DBGCTL get_debug > /tmp/debug.5
 cleanup_portals
index 026619e..cfcd7b3 100644 (file)
@@ -1,12 +1,13 @@
 #!/bin/sh
 
-SRCDIR="`dirname $0`"
+SRCDIR="`dirname $0`/"
 . $SRCDIR/common.sh
 
 setup_opts "$@"
 
 setup_portals
 setup_lustre
+setup_ldlm
 
 setup_server old_fs
 setup_client
index 0b1fc4a..2e9e9a4 100644 (file)
@@ -1,12 +1,13 @@
 #!/bin/sh
 
-SRCDIR="`dirname $0`"
+SRCDIR="`dirname $0`/"
 . $SRCDIR/common.sh
 
 setup_opts "$@"
 
 setup_portals
 setup_lustre
+setup_ldlm
 
 setup_server new_fs
 setup_client