X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Ftests%2Freplay-ost-single.sh;h=398386d27fd8a898d0de8b3c3b156015d708555a;hb=a74d5df65aa887939138ea07dc7a23d0d293f7e0;hp=4cb51313134c2f876951ae0c5676509818aeb381;hpb=090c677210ee2946d99c71412e4ff762bb300f4f;p=fs%2Flustre-release.git diff --git a/lustre/tests/replay-ost-single.sh b/lustre/tests/replay-ost-single.sh index 4cb5131..398386d 100755 --- a/lustre/tests/replay-ost-single.sh +++ b/lustre/tests/replay-ost-single.sh @@ -7,7 +7,7 @@ LUSTRE=${LUSTRE:-`dirname $0`/..} init_test_env $@ -. ${CONFIG:=$LUSTRE/tests/cfg/local.sh} +. ${CONFIG:=$LUSTRE/tests/cfg/lmv.sh} ostfailover_HOST=${ostfailover_HOST:-$ost_HOST} @@ -17,14 +17,28 @@ ALWAYS_EXCEPT="5" gen_config() { rm -f $XMLCONFIG - add_mds mds --dev $MDSDEV --size $MDSSIZE - add_lov lov1 mds --stripe_sz $STRIPE_BYTES\ - --stripe_cnt $STRIPES_PER_OBJ --stripe_pattern 0 + if [ "$MDSCOUNT" -gt 1 ]; then + add_lmv lmv1_svc + for mds in `mds_list`; do + MDSDEV=$TMP/${mds}-`hostname` + add_mds $mds --dev $MDSDEV --size $MDSSIZE --lmv lmv1_svc + done + add_lov_to_lmv lov1 lmv1_svc --stripe_sz $STRIPE_BYTES \ + --stripe_cnt $STRIPES_PER_OBJ --stripe_pattern 0 + MDS=lmv1 + else + add_mds mds1 --dev $MDSDEV --size $MDSSIZE + add_lov lov1 mds1 --stripe_sz $STRIPE_BYTES \ + --stripe_cnt $STRIPES_PER_OBJ --stripe_pattern 0 + MDS=mds1_svc + + fi + add_ost ost --lov lov1 --dev $OSTDEV --size $OSTSIZE --failover if [ ! -z "$ostfailover_HOST" ]; then add_ostfailover ost --dev $OSTDEV --size $OSTSIZE fi - add_client client mds --lov lov1 --path $MOUNT + add_client client $MDS --lov lov1 --path $MOUNT } cleanup() { @@ -35,7 +49,9 @@ cleanup() { fail ost fi zconf_umount `hostname` $MOUNT - stop mds ${FORCE} $MDSLCONFARGS + for mds in `mds_list`; do + stop $mds ${FORCE} $MDSLCONFARGS + done stop ost ${FORCE} --dump cleanup.log } @@ -55,8 +71,10 @@ setup() { start ost --reformat $OSTLCONFARGS [ "$DAEMONFILE" ] && $LCTL debug_daemon start $DAEMONFILE $DAEMONSIZE - start mds --reformat $MDSLCONFARGS - zconf_mount `hostname` $MOUNT + for mds in `mds_list`; do + start $mds --reformat $MDSLCONFARGS + done + grep " $MOUNT " /proc/mounts || zconf_mount `hostname` $MOUNT } mkdir -p $DIR @@ -94,7 +112,7 @@ run_test 2 "|x| 10 open(O_CREAT)s" test_3() { verify=$ROOT/tmp/verify-$$ - dd if=/dev/urandom bs=1024 count=5120 | tee $verify > $DIR/$tfile & + dd if=/dev/urandom bs=4096 count=1280 | tee $verify > $DIR/$tfile & ddpid=$! sync & fail ost @@ -106,7 +124,7 @@ run_test 3 "Fail OST during write, with verification" test_4() { verify=$ROOT/tmp/verify-$$ - dd if=/dev/urandom bs=1024 count=5120 | tee $verify > $DIR/$tfile + dd if=/dev/urandom bs=4096 count=1280 | tee $verify > $DIR/$tfile # invalidate cache, so that we're reading over the wire for i in /proc/fs/lustre/ldlm/namespaces/OSC_*MNT*; do echo -n clear > $i/lru_size @@ -120,11 +138,15 @@ test_4() { run_test 4 "Fail OST during read, with verification" test_5() { - IOZONE_OPTS="-i 0 -i 1 -i 2 -+d -r 64 -s 1g" + FREE=`df -P -h $DIR | tail -n 1 | awk '{ print $3 }'` + case $FREE in + *T|*G) FREE=1G;; + esac + IOZONE_OPTS="-i 0 -i 1 -i 2 -+d -r 4 -s $FREE" iozone $IOZONE_OPTS -f $DIR/$tfile & PID=$! - sleep 10 + sleep 8 fail ost wait $PID || return 1 rm -f $DIR/$tfile @@ -137,17 +159,16 @@ kbytesfree() { test_6() { f=$DIR/$tfile - rm $f 2>/dev/null && sync && sleep 2 && sync # wait for delete thread - grep [0-9] /proc/fs/lustre/osc/OSC*MNT*/kbytes* + rm -f $f + sync && sleep 2 && sync # wait for delete thread before=`kbytesfree` - dd if=/dev/urandom bs=1024 count=5120 of=$f + dd if=/dev/urandom bs=4096 count=1280 of=$f #define OBD_FAIL_MDS_REINT_NET_REP 0x119 do_facet mds "sysctl -w lustre.fail_loc=0x80000119" sync sleep 1 # ensure we have a fresh statfs - grep [0-9] /proc/fs/lustre/osc/OSC*MNT*/kbytes* after_dd=`kbytesfree` - echo "before: $before after_dd: $after_dd" + log "before: $before after_dd: $after_dd" (( $before > $after_dd )) || return 1 rm -f $f fail ost @@ -155,21 +176,22 @@ test_6() { sync # let the delete happen sleep 2 - grep [0-9] /proc/fs/lustre/osc/OSC*MNT*/kbytes* after=`kbytesfree` - echo "before: $before after: $after" + log "before: $before after: $after" (( $before <= $after + 40 )) || return 3 # take OST logs into account } run_test 6 "Fail OST before obd_destroy" test_7() { f=$DIR/$tfile + rm -f $f + sync && sleep 2 && sync # wait for delete thread before=`kbytesfree` - dd if=/dev/urandom bs=1024 count=5120 of=$f + dd if=/dev/urandom bs=4096 count=1280 of=$f sync after_dd=`kbytesfree` - echo "before: $before after_dd: $after_dd" - (( before > after_dd )) || return 1 + log "before: $before after_dd: $after_dd" + (( $before > $after_dd )) || return 1 replay_barrier ost rm -f $f fail ost @@ -178,8 +200,8 @@ test_7() { # let the delete happen sleep 2 after=`kbytesfree` - echo "before: $before after: $after" - (( before == after )) || return 3 + log "before: $before after: $after" + (( $before <= $after + 40 )) || return 3 # take OST logs into account } run_test 7 "Fail OST before obd_destroy"