From d902352aca53850436673a3aaed1e367697a0826 Mon Sep 17 00:00:00 2001 From: wangdi Date: Wed, 29 Jun 2005 13:51:44 +0000 Subject: [PATCH] Branch: HEAD some fix and cleanup for WB test script --- lustre/tests/cfg/smfs.sh | 50 ++++++++ lustre/tests/sanity-cmobd.sh | 284 ++++++++++++----------------------------- lustre/tests/test-framework.sh | 23 ++++ 3 files changed, 155 insertions(+), 202 deletions(-) create mode 100644 lustre/tests/cfg/smfs.sh diff --git a/lustre/tests/cfg/smfs.sh b/lustre/tests/cfg/smfs.sh new file mode 100644 index 0000000..97d7d0e --- /dev/null +++ b/lustre/tests/cfg/smfs.sh @@ -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"} diff --git a/lustre/tests/sanity-cmobd.sh b/lustre/tests/sanity-cmobd.sh index 3ad20ca..35818fe 100644 --- a/lustre/tests/sanity-cmobd.sh +++ b/lustre/tests/sanity-cmobd.sh @@ -1,203 +1,98 @@ -#!/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 diff --git a/lustre/tests/test-framework.sh b/lustre/tests/test-framework.sh index 82222ae..c560100 100644 --- a/lustre/tests/test-framework.sh +++ b/lustre/tests/test-framework.sh @@ -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; -- 1.8.3.1