Whamcloud - gitweb
Branch: HEAD
authorwangdi <wangdi>
Wed, 29 Jun 2005 13:51:44 +0000 (13:51 +0000)
committerwangdi <wangdi>
Wed, 29 Jun 2005 13:51:44 +0000 (13:51 +0000)
some fix and cleanup for WB test script

lustre/tests/cfg/smfs.sh [new file with mode: 0644]
lustre/tests/sanity-cmobd.sh
lustre/tests/test-framework.sh

diff --git a/lustre/tests/cfg/smfs.sh b/lustre/tests/cfg/smfs.sh
new file mode 100644 (file)
index 0000000..97d7d0e
--- /dev/null
@@ -0,0 +1,50 @@
+# oldstyle
+MDSNODE=${MDSNODE:-`hostname`}
+OSTNODE=${OSTNODE:-`hostname`}
+CLIENT=${CLIENT:-client}
+
+MDSCOUNT=1
+mds_HOST=${mds_HOST:-$MDSNODE}
+mds1_HOST=${mds1_HOST:-$MDSNODE}
+mds2_HOST=$mds1_HOST
+mdsfailover_HOST=${mdsfailover_HOST}
+#cache_mds_HOST=${mds1_HOST:-$MDSNODE}
+#master1_mds_HOST=$mds1_HOST
+#master2_mds_HOST=$mds1_HOST
+
+mds1failover_HOST=${mds1failover_HOST}
+ost_HOST=${ost_HOST:-$OSTNODE}
+client_HOST=${client_HOST:-$CLIENT}
+NETTYPE=${NETTYPE:-tcp}
+
+MOUNT=${MOUNT:-"/mnt/lustre"}
+MOUNT1=${MOUNT1:-$MOUNT}
+DIR=${DIR:-$MOUNT}
+PTLDEBUG=${PTLDEBUG:-0x3f0400}
+SUBSYSTEM=${SUBSYSTEM:- 0xffb7e3ff}
+PDSH=${PDSH:-no_dsh}
+
+MDS_CACHE_DEV=${MDS_CACHE_DEV:-$ROOT/tmp/mds1-`hostname`}
+MDS_MASTER1_DEV=${MDS_MASTER1_DEV:-$ROOT/tmp/mds2-`hostname`}
+MDS_MASTER2_DEV=${MDS_MASTER1_DEV:-$ROOT/tmp/mds3-`hostname`}
+
+MDSSIZE=${MDSSIZE:-10000}
+OSTDEV=${OSTDEV:-$ROOT/tmp/ost1-`hostname`}
+OSTSIZE=${OSTSIZE:-50000}
+FSTYPE=${FSTYPE:-smfs}
+MDS_MOUNT_OPS=${MDS_MOUNT_OPS:-"kml"}
+TIMEOUT=${TIMEOUT:-20}
+UPCALL=${UPCALL:-DEFAULT}
+
+CACHE_MDS=${CACHE_MDS:-"mds1"}
+MASTER1_MDS=${MASTER1_MDS:-"mds2"}
+MASTER2_MDS=${MASTER2_MDS:-"mds3"}
+CMOBD_NAME=${CMOBD_NAME:-"cmobd_mds_svc"}
+
+STRIPE_BYTES=${STRIPE_BYTES:-524288}
+STRIPES_PER_OBJ=${STRIPES_PER_OBJ:-0}
+
+LCTL=${LCTL:-"../utils/lctl"}
+FAILURE_MODE=${FAILURE_MODE:-SOFT} # or HARD
+POWER_DOWN=${POWER_DOWN:-"powerman --off"}
+POWER_UP=${POWER_UP:-"powerman --on"}
index 3ad20ca..35818fe 100644 (file)
-#!/bin/bash
+#!/bin/sh
+
 set -e
 
-ONLY=${ONLY:-"$*"}
-# bug number for skipped test: 
-ALWAYS_EXCEPT=${ALWAYS_EXCEPT:-""}
-# UPDATE THE COMMENT ABOVE WITH BUG NUMBERS WHEN CHANGING ALWAYS_EXCEPT!
-
-[ "$ALWAYS_EXCEPT$EXCEPT" ] && echo "Skipping tests: $ALWAYS_EXCEPT $EXCEPT"
-
-SRCDIR=`dirname $0`
-export PATH=$PWD/$SRCDIR:$SRCDIR:$SRCDIR/../utils:$PATH
-
-TMP=${TMP:-/tmp}
-FSTYPE=${FSTYPE:-ext3}
-
-CHECKSTAT=${CHECKSTAT:-"checkstat -v"}
-CREATETEST=${CREATETEST:-createtest}
-LFS=${LFS:-lfs}
-LSTRIPE=${LSTRIPE:-"$LFS setstripe"}
-LFIND=${LFIND:-"$LFS find"}
-LVERIFY=${LVERIFY:-ll_dirstripe_verify}
-LCTL=${LCTL:-lctl}
-MCREATE=${MCREATE:-mcreate}
-OPENFILE=${OPENFILE:-openfile}
-OPENUNLINK=${OPENUNLINK:-openunlink}
-TOEXCL=${TOEXCL:-toexcl}
-TRUNCATE=${TRUNCATE:-truncate}
-MUNLINK=${MUNLINK:-munlink}
-SOCKETSERVER=${SOCKETSERVER:-socketserver}
-SOCKETCLIENT=${SOCKETCLIENT:-socketclient}
-IOPENTEST1=${IOPENTEST1:-iopentest1}
-IOPENTEST2=${IOPENTEST2:-iopentest2}
-PTLDEBUG=${PTLDEBUG:-0}
-MODE=${MODE:mds}
-
-if [ $UID -ne 0 ]; then
-       RUNAS_ID="$UID"
-       RUNAS=""
-else
-       RUNAS_ID=${RUNAS_ID:-500}
-       RUNAS=${RUNAS:-"runas -u $RUNAS_ID"}
-fi
+#
+# This test needs to be run on the client
+#
 
-export NAME=${NAME:-cmobd}
+LUSTRE=${LUSTRE:-`dirname $0`/..}
 
-SAVE_PWD=$PWD
+. ${CONFIG:=$LUSTRE/tests/cfg/smfs.sh}
 
-clean() {
-       echo -n "cln.."
-       sh llmountcleanup.sh > /dev/null || exit 20
-       I_MOUNTED=no
-}
-CLEAN=${CLEAN:-clean}
+. $LUSTRE/tests/test-framework.sh
 
-start() {
-       echo -n "mnt.."
-       sh llrmount.sh > /dev/null || exit 10
-       I_MOUNTED=yes
-       echo "done"
-}
-START=${START:-start}
+init_test_env $@
 
-log() {
-       echo "$*"
-       lctl mark "$*" 2> /dev/null || true
-}
 
-trace() {
-       log "STARTING: $*"
-       strace -o $TMP/$1.strace -ttt $*
-       RC=$?
-       log "FINISHED: $*: rc $RC"
-       return 1
-}
-TRACE=${TRACE:-""}
-
-check_kernel_version() {
-       VERSION_FILE=/proc/fs/lustre/kernel_version
-       WANT_VER=$1
-       [ ! -f $VERSION_FILE ] && echo "can't find kernel version" && return 1
-       GOT_VER=`cat $VERSION_FILE`
-       [ $GOT_VER -ge $WANT_VER ] && return 0
-       log "test needs at least kernel version $WANT_VER, running $GOT_VER"
-       return 1
-}
+build_test_filter
 
-run_one() {
-       if ! cat /proc/mounts | grep -q $DIR; then
-               $START
-       fi
-       echo $PTLDEBUG >/proc/sys/portals/debug 
-       log "== test $1: $2"
-       export TESTNAME=test_$1
-       test_$1 || error "test_$1: exit with rc=$?"
-       unset TESTNAME
-       pass
-       cd $SAVE_PWD
-       $CLEAN
-}
+assert_env MDSCOUNT
 
-build_test_filter() {
-        for O in $ONLY; do
-            eval ONLY_${O}=true
-        done
-        for E in $EXCEPT $ALWAYS_EXCEPT; do
-            eval EXCEPT_${E}=true
-        done
+lsync() {
+        name=$1
+        device=`$LCTL device_list | grep " $name " | awk '{print $1}'`
+        
+        [ -z $device ] && {
+                echo "Can't find device $name"
+                return 1
+        }
+${LCTL} << EOF
+device $device
+lsync
+EOF
+        return $?
 }
+gen_config() {
+       rm -f $XMLCONFIG
 
-_basetest() {
-    echo $*
-}
+       add_lmv cache_lmv_svc
+       set -vx 
+       add_mds $CACHE_MDS --dev $MDS_CACHE_DEV --size $MDSSIZE --lmv cache_lmv_svc \
+            --mountfsoptions $MDS_MOUNT_OPS  || exit 10
+       set -e
+       add_lmv master_lmv_svc
+       add_mds $MASTER1_MDS --dev $MDS_MASTER1_DEV --size $MDSSIZE --lmv master_lmv_svc
 
-basetest() {
-    IFS=abcdefghijklmnopqrstuvwxyz _basetest $1
-}
+       add_lov_to_cache_master_lmv lov1 cache_lmv_svc master_lmv_svc --stripe_sz $STRIPE_BYTES \
+                               --stripe_cnt $STRIPES_PER_OBJ --stripe_pattern 0
 
-run_test() {
-         base=`basetest $1`
-         if [ "$ONLY" ]; then
-                 testname=ONLY_$1
-                 if [ ${!testname}x != x ]; then
-                       run_one $1 "$2"
-                       return $?
-                 fi
-                 testname=ONLY_$base
-                 if [ ${!testname}x != x ]; then
-                         run_one $1 "$2"
-                         return $?
-                 fi
-                 echo -n "."
-                 return 0
-       fi
-        testname=EXCEPT_$1
-        if [ ${!testname}x != x ]; then
-                 echo "skipping excluded test $1"
-                 return 0
-        fi
-        testname=EXCEPT_$base
-        if [ ${!testname}x != x ]; then
-                 echo "skipping excluded test $1 (base $base)"
-                 return 0
-        fi
-        run_one $1 "$2"
-       return $?
-}
+       add_ost ost --lov lov1 --dev $OSTDEV --size $OSTSIZE
 
-[ "$SANITYLOG" ] && rm -f $SANITYLOG || true
+       add_cmobd cmobd_mds ${CACHE_MDS}_svc master_lmv_svc  
 
-error() { 
-       log "FAIL: $@"
-       if [ "$SANITYLOG" ]; then
-               echo "FAIL: $TESTNAME $@" >> $SANITYLOG
-       else
-               exit 1
-       fi
+       do_lmc --add cobd --node client_facet --cobd cobd_svc --cache_obd cache_lmv_svc \
+                  --master_obd master_lmv_svc  
+    
+       add_client client cobd --lov lov1 --path $MOUNT
 }
 
-pass() { 
-       echo PASS
+build_test_filter
+
+cleanup() {
+       zconf_umount `hostname` $MOUNT
+       stop $CACHE_MDS ${FORCE} $MDSLCONFARGS
+       stop $MASTER1_MDS ${FORCE} $MDSLCONFARGS
+       stop ost ${FORCE} --dump cleanup.log
 }
 
-MOUNT="`mount | awk '/^'$NAME' .* lustre_lite / { print $3 }'`"
-if [ -z "$MOUNT" ]; then
-       sh llmount.sh
-       MOUNT="`mount | awk '/^'$NAME' .* lustre_lite / { print $3 }'`"
-       [ -z "$MOUNT" ] && error "NAME=$NAME not mounted"
-       I_MOUNTED=yes
+if [ "$ONLY" == "cleanup" ]; then
+       sysctl -w portals.debug=0 || true
+       cleanup
+       exit
 fi
 
-[ `echo $MOUNT | wc -w` -gt 1 ] && error "NAME=$NAME mounted more than once"
-
-DIR=${DIR:-$MOUNT}
-[ -z "`echo $DIR | grep $MOUNT`" ] && echo "$DIR not in $MOUNT" && exit 99
+SETUP=${SETUP:-"setup"}
+CLEANUP=${CLEANUP:-"cleanup"}
 
-rm -rf $DIR/[Rdfs][1-9]*
+setup() {
+       gen_config
+       start ost --reformat $OSTLCONFARGS 
+       [ "$DAEMONFILE" ] && $LCTL debug_daemon start $DAEMONFILE $DAEMONSIZE
+    
+       start $MASTER1_MDS --reformat $MDSLCONFARGS
+       start $CACHE_MDS   --reformat $MDSLCONFARGS
+    
+       grep " $MOUNT " /proc/mounts || zconf_mount `hostname` $MOUNT
+}
 
-build_test_filter
+$SETUP
 
-echo preparing for tests involving mounts
-EXT2_DEV=${EXT2_DEV:-/tmp/SANITY.LOOP}
-touch $EXT2_DEV
-mke2fs -j -F $EXT2_DEV 8000 > /dev/null
+if [ "$ONLY" == "setup" ]; then
+    exit 0
+fi
 
-lsync() {
-        name=$1
-        device=`$LCTL device_list | grep " $name " | awk '{print $1}'`
-        
-        [ -z $device ] && {
-                echo "Can't find device $name"
-                return 1
-        }
-        
-${LCTL} << EOF
-device $device
-lsync
-EOF
-        return $?
-}
+mkdir -p $DIR
 
 test_1a() {
         rm -fr $DIR/1a0 > /dev/null
@@ -205,44 +100,44 @@ test_1a() {
         echo "mkdir $DIR/1a0"
        mkdir $DIR/1a0 || error
         echo "cache flush on $NAME"
-        lsync $NAME >/dev/null || error
+        lsync $CMOBD_NAME >/dev/null || error
         
         echo "touch $DIR/1a0/f0"
         touch $DIR/1a0/f0 || error
         echo "cache flush on $NAME"
-        lsync $NAME >/dev/null || error
+        lsync $CMOBD_NAME >/dev/null || error
         
         echo "chmod +x $DIR/1a0/f0"
         chmod +x $DIR/1a0/f0 || error
         echo "cache flush on $NAME"
-        lsync $NAME >/dev/null || error
+        lsync $CMOBD_NAME >/dev/null || error
         
         echo "mv $DIR/1a0/f0 $DIR/1a0/f01"
         mv $DIR/1a0/f0 $DIR/1a0/f01 || error
         echo "cache flush on $NAME"
-        lsync $NAME >/dev/null || error
+        lsync $CMOBD_NAME >/dev/null || error
         
         echo "rm $DIR/1a0/f01"
         rm $DIR/1a0/f01 || error
         echo "cache flush on $NAME"
-        lsync $NAME >/dev/null || error
+        lsync $CMOBD_NAME >/dev/null || error
         
         echo "touch $DIR/1a0/f01"
         touch $DIR/1a0/f01 || error
         echo "cache flush on $NAME"
-        lsync $NAME >/dev/null || error
+        lsync $CMOBD_NAME >/dev/null || error
         
         echo "ln $DIR/1a0/f01 $DIR/1a0/f01h"
         ln $DIR/1a0/f01 $DIR/1a0/f01h || error
         echo "cache flush on $NAME"
-        lsync $NAME >/dev/null || error
+        lsync $CMOBD_NAMEN >/dev/null || error
         
         echo "ln -s $DIR/1a0/f01 $DIR/1a0/f01s"
         ln -s $DIR/1a0/f01 $DIR/1a0/f01s || error
 
         rm -fr $DIR/1a0 > /dev/null
         echo "cache flush on $NAME"
-        lsync $NAME >/dev/null || error
+        lsync $CMOBD_NAME >/dev/null || error
 }
 run_test 1a " WB test (lsync after each MD operation)============="
 
@@ -266,7 +161,7 @@ test_1b() {
 
         rm -fr $DIR/1b0 > /dev/null
         echo "cache flush on $NAME"
-        lsync $NAME >/dev/null || error
+        lsync $CMOBD_NAME >/dev/null || error
 }
 run_test 1b " WB test (lsync after bunch of MD operarions)============="
 
@@ -276,33 +171,18 @@ test_2a() {
         echo "createmany -o $DIR/2a0/f 4000"
        createmany -o $DIR/2a0/f 4000
         echo "cache flush on $NAME"
-        lsync $NAME >/dev/null || error
+        lsync $CMOBD_NAME >/dev/null || error
 }
 
+run_test 2a " WB test (flush createmany on master LMV) ======================"
 test_2b() {
         echo "find $DIR/2a0 -type f -exec rm -f {} \;"
        find $DIR/2a0 -type f -exec rm -f {} \;
        rmdir $DIR/2a0 || error
         echo "cache flush on $NAME"
-        lsync $NAME >/dev/null || error
+        lsync $CMOBD_NAME >/dev/null || error
 }
-
-[ "x$MODE" = "xlmv" ] && {
-run_test 2a " WB test (flush createmany on master LMV) ======================"
 run_test 2b " WB test (flush delmany on master LMV) ========================="
-}
-
-TMPDIR=$OLDTMPDIR
-TMP=$OLDTMP
-HOME=$OLDHOME
 
-log "cleanup: ========================================================"
-if [ "`mount | grep ^$NAME`" ]; then
-       rm -rf $DIR/[Rdfs][1-9]*
-       if [ "$I_MOUNTED" = "yes" ]; then
-               sh llmountcleanup.sh || error
-       fi
-fi
+$CLEANUP
 
-echo "=========================== finished ============================"
-[ -f "$SANITYLOG" ] && cat $SANITYLOG && exit 1 || true
index 82222ae..c560100 100644 (file)
@@ -377,6 +377,21 @@ del_ost() {
     shift
     do_lmc --delete ost --node ${facet}_facet --ost ${facet}_svc $*
 }
+add_cmobd() {
+    facet=$1
+    cache_facet=$2
+    master_facet=$3
+    shift; shift; shift
+    do_lmc --add cmobd --node mds1_facet --cmobd ${facet}_svc --cache_obd ${cache_facet} --master_obd ${master_facet}  
+}
+
+add_cobd() {
+    facet=$1
+    client_facet=$2
+    master_facet=$3
+    shift; shift; shift
+    do_lmc --add cobd --node mds1_facet --cmobd ${facet}_svc --cache_obd ${cache_facet} --master_obd ${master_facet}  
+}
 
 deactivate_ost() {
     facet=$1
@@ -405,6 +420,14 @@ add_lov_to_lmv() {
     do_lmc --add lov --lmv $lmv --lov $lov $*
 }
 
+add_lov_to_cache_master_lmv() {
+    lov=$1
+    cache_lmv=$2
+    master_lmv=$3
+    shift; shift; shift
+    do_lmc --add lov --cachelmv $cache_lmv --masterlmv $master_lmv --lov $lov $*
+}
+
 add_lmv() {
     lmv=$1
     shift;