Whamcloud - gitweb
Land b_release_1_4_3 onto HEAD (20050619_0305)
[fs/lustre-release.git] / lustre / tests / insanity.sh
index 7ad2c1c..1b5a28c 100755 (executable)
@@ -8,13 +8,16 @@ LUSTRE=${LUSTRE:-`dirname $0`/..}
 
 init_test_env $@
 
-. ${CONFIG:=$LUSTRE/tests/cfg/insanity-local.sh}
+. ${CONFIG:=$LUSTRE/tests/cfg/insanity-lmv.sh}
 
 ALWAYS_EXCEPT="10"
 
+SETUP=${SETUP:-"setup"}
+CLEANUP=${CLEANUP:-"cleanup"}
+
 build_test_filter
 
-assert_env mds_HOST ost1_HOST ost2_HOST client_HOST LIVE_CLIENT 
+assert_env MDSCOUNT mds1_HOST ost1_HOST ost2_HOST client_HOST LIVE_CLIENT 
 
 ####
 # Initialize all the ostN_HOST 
@@ -109,42 +112,63 @@ reintegrate_clients() {
 
 gen_config() {
     rm -f $XMLCONFIG
-    add_mds mds --dev $MDSDEV --size $MDSSIZE --journal-size $MDSJOURNALSIZE
-
-    if [ ! -z "$mdsfailover_HOST" ]; then
-        add_mdsfailover mds --dev $MDSDEV --size $MDSSIZE
+    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
+        if [ ! -z "$mds1failover_HOST" ]; then
+            add_mdsfailover mds1 --dev $MDSDEV --size $MDSSIZE
+        fi
+       add_lov lov1 mds1 --stripe_sz $STRIPE_BYTES \
+           --stripe_cnt $STRIPES_PER_OBJ --stripe_pattern 0
+       MDS=mds1
     fi
 
-    add_lov lov1 mds --stripe_sz $STRIPE_BYTES\
-       --stripe_cnt $STRIPES_PER_OBJ --stripe_pattern 0
     for i in `seq $NUMOST`; do
        dev=`printf $OSTDEV $i`
        add_ost ost$i --lov lov1 --dev $dev --size $OSTSIZE \
            --journal-size $OSTJOURNALSIZE
     done
      
-
-    add_client client mds --lov lov1 --path $MOUNT
+    add_client client $MDS --lov lov1 --path $MOUNT
 }
 
 setup() {
+    gen_config
+
+    start_krb5_kdc || exit 1
     rm -rf logs/*
     for i in `seq $NUMOST`; do
        wait_for ost$i
        start ost$i ${REFORMAT} $OSTLCONFARGS 
     done
+    start_lsvcgssd || exit 2
+    start_lgssd || exit 3
     [ "$DAEMONFILE" ] && $LCTL debug_daemon start $DAEMONFILE $DAEMONSIZE
-    wait_for mds
-    start mds $MDSLCONFARGS ${REFORMAT}
+    for mds in `mds_list`; do
+       wait_for $mds
+       start $mds $MDSLCONFARGS ${REFORMAT}
+    done
     while ! do_node $CLIENTS "ls -d $LUSTRE" > /dev/null; do sleep 5; done
-    zconf_mount $CLIENTS $MOUNT
+    grep " $MOUNT " /proc/mounts || zconf_mount $CLIENTS $MOUNT
 
 }
 
 cleanup() {
     zconf_umount $CLIENTS $MOUNT
 
-    stop mds ${FORCE} $MDSLCONFARGS || :
+    for mds in `mds_list`; do
+       stop $mds ${FORCE} $MDSLCONFARGS || :
+    done
+    stop_lgssd
+    stop_lsvcgssd
     for i in `seq $NUMOST`; do
        stop ost$i ${REFORMAT} ${FORCE} $OSTLCONFARGS  || :
     done
@@ -156,7 +180,7 @@ client_touch() {
     file=$1
     for c in $LIVE_CLIENT $FAIL_CLIENTS;  do
        if echo $DOWN_CLIENTS | grep -q $c; then continue; fi
-       $PDSH $c touch $MOUNT/${c}_$file
+       $PDSH $c touch $MOUNT/${c}_$file || return 1
     done
 }
 
@@ -205,20 +229,17 @@ node_to_ost() {
 
 
 if [ "$ONLY" == "cleanup" ]; then
-    cleanup
+    $CLEANUP
     exit
 fi
 
-if [ -z "$NOSETUP" ]; then
-    gen_config
-    setup
-fi
-
 if [ ! -z "$EVAL" ]; then
     eval "$EVAL"
     exit $?
 fi
 
+$SETUP
+
 if [ "$ONLY" == "setup" ]; then
     exit 0
 fi
@@ -228,19 +249,19 @@ echo "Starting Test 17 at `date`"
 
 test_0() {
     echo "Failover MDS"
-    facet_failover mds
+    facet_failover mds1
     echo "Waiting for df pid: $DFPID"
-    wait $DFPID || return 1
+    wait $DFPID || { echo "df returned $?" && return 1; }
 
     echo "Failing OST1"
     facet_failover ost1
     echo "Waiting for df pid: $DFPID"
-    wait $DFPID || return 2
-
+    wait $DFPID || { echo "df returned $?" && return 2; }
+    
     echo "Failing OST2"
     facet_failover ost2
     echo "Waiting for df pid: $DFPID"
-    wait $DFPID || return 3
+    wait $DFPID || { echo "df returned $?" && return 3; }
     return 0
 }
 run_test 0 "Fail all nodes, independently"
@@ -259,12 +280,12 @@ test_2() {
     client_df
 
     echo "Failing MDS"
-    shutdown_facet mds
-    reboot_facet mds
+    shutdown_facet mds1
+    reboot_facet mds1
 
     # prepare for MDS failover
-    change_active mds
-    reboot_facet mds
+    change_active mds1
+    reboot_facet mds1
 
     client_df &
     DFPID=$!
@@ -279,8 +300,8 @@ test_2() {
     start ost1
 
     echo "Failover MDS"
-    wait_for mds
-    start mds
+    wait_for mds1
+    start mds1
 
     #Check FS
     wait $DFPID
@@ -299,7 +320,7 @@ test_3() {
     echo "Verify Lustre filesystem is up and running"
     
     #MDS Portion
-    facet_failover mds
+    facet_failover mds1
     wait $DFPID || echo df failed: $?
     #Check FS
 
@@ -337,12 +358,12 @@ test_4() {
 
     #MDS Portion
     echo "Failing MDS"
-    shutdown_facet mds
-    reboot_facet mds
+    shutdown_facet mds1
+    reboot_facet mds1
 
     # prepare for MDS failover
-    change_active mds
-    reboot_facet mds
+    change_active mds1
+    reboot_facet mds1
 
     client_df &
     DFPID=$!
@@ -355,8 +376,8 @@ test_4() {
     start ost1
     
     echo "Failover MDS"
-    wait_for mds
-    start mds
+    wait_for mds1
+    start mds1
     #Check FS
     
     wait $DFPID
@@ -479,7 +500,7 @@ test_7() {
 
     #MDS Portion
     echo "Failing MDS"
-    facet_failover mds
+    facet_failover mds1
 
     #Check FS
     echo "Test Lustre stability after MDS failover"
@@ -615,4 +636,4 @@ test_10() {
 run_test 10 "Running Availability for 6 hours..."
 
 equals_msg "Done, cleaning up"
-cleanup
+$CLEANUP