Skip to content
Snippets Groups Projects
Commit d902352a authored by Wang Di's avatar Wang Di
Browse files

Branch: HEAD

some fix and cleanup for WB test script
parent 91ed44ec
No related branches found
No related tags found
No related merge requests found
# 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"}
#!/bin/bash #!/bin/sh
set -e set -e
ONLY=${ONLY:-"$*"} #
# bug number for skipped test: # This test needs to be run on the client
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
export NAME=${NAME:-cmobd} LUSTRE=${LUSTRE:-`dirname $0`/..}
SAVE_PWD=$PWD . ${CONFIG:=$LUSTRE/tests/cfg/smfs.sh}
clean() { . $LUSTRE/tests/test-framework.sh
echo -n "cln.."
sh llmountcleanup.sh > /dev/null || exit 20
I_MOUNTED=no
}
CLEAN=${CLEAN:-clean}
start() { init_test_env $@
echo -n "mnt.."
sh llrmount.sh > /dev/null || exit 10
I_MOUNTED=yes
echo "done"
}
START=${START:-start}
log() {
echo "$*"
lctl mark "$*" 2> /dev/null || true
}
trace() { build_test_filter
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
}
run_one() { assert_env MDSCOUNT
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
}
build_test_filter() { lsync() {
for O in $ONLY; do name=$1
eval ONLY_${O}=true device=`$LCTL device_list | grep " $name " | awk '{print $1}'`
done
for E in $EXCEPT $ALWAYS_EXCEPT; do [ -z $device ] && {
eval EXCEPT_${E}=true echo "Can't find device $name"
done return 1
}
${LCTL} << EOF
device $device
lsync
EOF
return $?
} }
gen_config() {
rm -f $XMLCONFIG
_basetest() { add_lmv cache_lmv_svc
echo $* 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() { add_lov_to_cache_master_lmv lov1 cache_lmv_svc master_lmv_svc --stripe_sz $STRIPE_BYTES \
IFS=abcdefghijklmnopqrstuvwxyz _basetest $1 --stripe_cnt $STRIPES_PER_OBJ --stripe_pattern 0
}
run_test() { add_ost ost --lov lov1 --dev $OSTDEV --size $OSTSIZE
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 $?
}
[ "$SANITYLOG" ] && rm -f $SANITYLOG || true add_cmobd cmobd_mds ${CACHE_MDS}_svc master_lmv_svc
error() { do_lmc --add cobd --node client_facet --cobd cobd_svc --cache_obd cache_lmv_svc \
log "FAIL: $@" --master_obd master_lmv_svc
if [ "$SANITYLOG" ]; then
echo "FAIL: $TESTNAME $@" >> $SANITYLOG add_client client cobd --lov lov1 --path $MOUNT
else
exit 1
fi
} }
pass() { build_test_filter
echo PASS
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 [ "$ONLY" == "cleanup" ]; then
if [ -z "$MOUNT" ]; then sysctl -w portals.debug=0 || true
sh llmount.sh cleanup
MOUNT="`mount | awk '/^'$NAME' .* lustre_lite / { print $3 }'`" exit
[ -z "$MOUNT" ] && error "NAME=$NAME not mounted"
I_MOUNTED=yes
fi fi
[ `echo $MOUNT | wc -w` -gt 1 ] && error "NAME=$NAME mounted more than once" SETUP=${SETUP:-"setup"}
CLEANUP=${CLEANUP:-"cleanup"}
DIR=${DIR:-$MOUNT}
[ -z "`echo $DIR | grep $MOUNT`" ] && echo "$DIR not in $MOUNT" && exit 99
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 if [ "$ONLY" == "setup" ]; then
EXT2_DEV=${EXT2_DEV:-/tmp/SANITY.LOOP} exit 0
touch $EXT2_DEV fi
mke2fs -j -F $EXT2_DEV 8000 > /dev/null
lsync() { mkdir -p $DIR
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 $?
}
test_1a() { test_1a() {
rm -fr $DIR/1a0 > /dev/null rm -fr $DIR/1a0 > /dev/null
...@@ -205,44 +100,44 @@ test_1a() { ...@@ -205,44 +100,44 @@ test_1a() {
echo "mkdir $DIR/1a0" echo "mkdir $DIR/1a0"
mkdir $DIR/1a0 || error mkdir $DIR/1a0 || error
echo "cache flush on $NAME" echo "cache flush on $NAME"
lsync $NAME >/dev/null || error lsync $CMOBD_NAME >/dev/null || error
echo "touch $DIR/1a0/f0" echo "touch $DIR/1a0/f0"
touch $DIR/1a0/f0 || error touch $DIR/1a0/f0 || error
echo "cache flush on $NAME" echo "cache flush on $NAME"
lsync $NAME >/dev/null || error lsync $CMOBD_NAME >/dev/null || error
echo "chmod +x $DIR/1a0/f0" echo "chmod +x $DIR/1a0/f0"
chmod +x $DIR/1a0/f0 || error chmod +x $DIR/1a0/f0 || error
echo "cache flush on $NAME" echo "cache flush on $NAME"
lsync $NAME >/dev/null || error lsync $CMOBD_NAME >/dev/null || error
echo "mv $DIR/1a0/f0 $DIR/1a0/f01" echo "mv $DIR/1a0/f0 $DIR/1a0/f01"
mv $DIR/1a0/f0 $DIR/1a0/f01 || error mv $DIR/1a0/f0 $DIR/1a0/f01 || error
echo "cache flush on $NAME" echo "cache flush on $NAME"
lsync $NAME >/dev/null || error lsync $CMOBD_NAME >/dev/null || error
echo "rm $DIR/1a0/f01" echo "rm $DIR/1a0/f01"
rm $DIR/1a0/f01 || error rm $DIR/1a0/f01 || error
echo "cache flush on $NAME" echo "cache flush on $NAME"
lsync $NAME >/dev/null || error lsync $CMOBD_NAME >/dev/null || error
echo "touch $DIR/1a0/f01" echo "touch $DIR/1a0/f01"
touch $DIR/1a0/f01 || error touch $DIR/1a0/f01 || error
echo "cache flush on $NAME" echo "cache flush on $NAME"
lsync $NAME >/dev/null || error lsync $CMOBD_NAME >/dev/null || error
echo "ln $DIR/1a0/f01 $DIR/1a0/f01h" echo "ln $DIR/1a0/f01 $DIR/1a0/f01h"
ln $DIR/1a0/f01 $DIR/1a0/f01h || error ln $DIR/1a0/f01 $DIR/1a0/f01h || error
echo "cache flush on $NAME" 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" echo "ln -s $DIR/1a0/f01 $DIR/1a0/f01s"
ln -s $DIR/1a0/f01 $DIR/1a0/f01s || error ln -s $DIR/1a0/f01 $DIR/1a0/f01s || error
rm -fr $DIR/1a0 > /dev/null rm -fr $DIR/1a0 > /dev/null
echo "cache flush on $NAME" 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)=============" run_test 1a " WB test (lsync after each MD operation)============="
...@@ -266,7 +161,7 @@ test_1b() { ...@@ -266,7 +161,7 @@ test_1b() {
rm -fr $DIR/1b0 > /dev/null rm -fr $DIR/1b0 > /dev/null
echo "cache flush on $NAME" 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)=============" run_test 1b " WB test (lsync after bunch of MD operarions)============="
...@@ -276,33 +171,18 @@ test_2a() { ...@@ -276,33 +171,18 @@ test_2a() {
echo "createmany -o $DIR/2a0/f 4000" echo "createmany -o $DIR/2a0/f 4000"
createmany -o $DIR/2a0/f 4000 createmany -o $DIR/2a0/f 4000
echo "cache flush on $NAME" 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() { test_2b() {
echo "find $DIR/2a0 -type f -exec rm -f {} \;" echo "find $DIR/2a0 -type f -exec rm -f {} \;"
find $DIR/2a0 -type f -exec rm -f {} \; find $DIR/2a0 -type f -exec rm -f {} \;
rmdir $DIR/2a0 || error rmdir $DIR/2a0 || error
echo "cache flush on $NAME" 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) =========================" run_test 2b " WB test (flush delmany on master LMV) ========================="
}
TMPDIR=$OLDTMPDIR
TMP=$OLDTMP
HOME=$OLDHOME
log "cleanup: ========================================================" $CLEANUP
if [ "`mount | grep ^$NAME`" ]; then
rm -rf $DIR/[Rdfs][1-9]*
if [ "$I_MOUNTED" = "yes" ]; then
sh llmountcleanup.sh || error
fi
fi
echo "=========================== finished ============================"
[ -f "$SANITYLOG" ] && cat $SANITYLOG && exit 1 || true
...@@ -377,6 +377,21 @@ del_ost() { ...@@ -377,6 +377,21 @@ del_ost() {
shift shift
do_lmc --delete ost --node ${facet}_facet --ost ${facet}_svc $* 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() { deactivate_ost() {
facet=$1 facet=$1
...@@ -405,6 +420,14 @@ add_lov_to_lmv() { ...@@ -405,6 +420,14 @@ add_lov_to_lmv() {
do_lmc --add lov --lmv $lmv --lov $lov $* 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() { add_lmv() {
lmv=$1 lmv=$1
shift; shift;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment