Whamcloud - gitweb
Revert my use of the configure_flags macro in the lustre.spec file and just
[fs/lustre-release.git] / lustre / tests / replay-ost-single.sh
index bd109b9..095ef8b 100755 (executable)
@@ -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,8 +49,12 @@ 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
+    stop_lgssd
+    stop_lsvcgssd
 }
 
 if [ "$ONLY" == "cleanup" ]; then
@@ -53,10 +71,15 @@ CLEANUP=${CLEANUP:-"cleanup"}
 setup() {
     gen_config
 
+    start_krb5_kdc || exit 1
+    start_lsvcgssd || exit 2
+    start_lgssd || exit 3
     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 +117,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 +129,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 +143,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
@@ -132,19 +159,22 @@ test_5() {
 run_test 5 "Fail OST during iozone"
 
 kbytesfree() {
-   cat /proc/fs/lustre/osc/OSC_*MNT*/kbytesfree | awk '{total+=$1} END {print total}'
+   awk '{total+=$1} END {print total}' /proc/fs/lustre/osc/OSC_*MNT*/kbytesfree
 }
 
 test_6() {
     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
 #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
     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
     rm -f $f
     fail ost
     $CHECKSTAT -t file $f && return 2 || true
@@ -152,19 +182,21 @@ test_6() {
     # 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 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
@@ -173,8 +205,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"