From: adilger Date: Tue, 21 May 2002 21:36:23 +0000 (+0000) Subject: Add LDLM setup/cleanup to subsystems set up via new configuration scripts. X-Git-Tag: v1_7_100~5650 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=b0f1caa291c44fd313973bd5b107517dde5a1111;p=fs%2Flustre-release.git Add LDLM setup/cleanup to subsystems set up via new configuration scripts. 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. --- diff --git a/lustre/tests/common.sh b/lustre/tests/common.sh index 9843989..df65a1d 100644 --- a/lustre/tests/common.sh +++ b/lustre/tests/common.sh @@ -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 " [ -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 index 0000000..054f983 --- /dev/null +++ b/lustre/tests/ldlm.cfg @@ -0,0 +1,3 @@ +#!/bin/sh +# Config file for setting up the lock manager +SETUP_LDLM=y diff --git a/lustre/tests/llcleanup.sh b/lustre/tests/llcleanup.sh index 4cf2879..ace40b7 100755 --- a/lustre/tests/llcleanup.sh +++ b/lustre/tests/llcleanup.sh @@ -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 diff --git a/lustre/tests/llrsetup.sh b/lustre/tests/llrsetup.sh index 026619e..cfcd7b3 100644 --- a/lustre/tests/llrsetup.sh +++ b/lustre/tests/llrsetup.sh @@ -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 diff --git a/lustre/tests/llsetup.sh b/lustre/tests/llsetup.sh index 0b1fc4a..2e9e9a4 100644 --- a/lustre/tests/llsetup.sh +++ b/lustre/tests/llsetup.sh @@ -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