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
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
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
}
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
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"
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=$!
start ost1
echo "Failover MDS"
- wait_for mds
- start mds
+ wait_for mds1
+ start mds1
#Check FS
wait $DFPID
echo "Verify Lustre filesystem is up and running"
#MDS Portion
- facet_failover mds
+ facet_failover mds1
wait $DFPID || echo df failed: $?
#Check FS
#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=$!
start ost1
echo "Failover MDS"
- wait_for mds
- start mds
+ wait_for mds1
+ start mds1
#Check FS
wait $DFPID
#MDS Portion
echo "Failing MDS"
- facet_failover mds
+ facet_failover mds1
#Check FS
echo "Test Lustre stability after MDS failover"
run_test 10 "Running Availability for 6 hours..."
equals_msg "Done, cleaning up"
-cleanup
+$CLEANUP