set -e
ONLY=${ONLY:-"$*"}
-ALWAYS_EXCEPT="$LFSCK_PERFORMANCE_EXCEPT"
-[ "$SLOW" = "no" ] && EXCEPT_SLOW=""
-# UPDATE THE COMMENT ABOVE WITH BUG NUMBERS WHEN CHANGING ALWAYS_EXCEPT!
-LUSTRE=${LUSTRE:-$(cd $(dirname $0)/..; echo $PWD)}
+LUSTRE=${LUSTRE:-$(dirname $0)/..}
. $LUSTRE/tests/test-framework.sh
init_test_env $@
-. ${CONFIG:=$LUSTRE/tests/cfg/$NAME.sh}
init_logging
+ALWAYS_EXCEPT="$LFSCK_PERFORMANCE_EXCEPT"
+build_test_filter
+
require_dsh_mds || exit 0
require_dsh_ost || exit 0
[ "$SLOW" = "no" ] &&
- skip "skip lfsck performance test under non-SLOW mode" && exit 0
+ skip "skip lfsck performance test under non-SLOW mode"
NTHREADS=${NTHREADS:-0}
UNIT=${UNIT:-8192}
lfsck_cleanup() {
do_rpc_nodes $(facet_active_host $SINGLEMDS) unload_modules
- formatall
+ REFORMAT="yes" cleanup_and_setup_lustre
}
lfsck_create_nfiles() {
done
}
-build_test_filter
+format_start_mgs () {
+ do_rpc_nodes $(facet_active_host mgs) load_modules_local
+ format_mgs
+ start mgs $(mgsdevname) $MGS_MOUNT_OPTS
+}
test_0() {
local BCOUNT=0
local i
stopall
+ combined_mgs_mds || format_start_mgs
do_rpc_nodes $(facet_active_host $SINGLEMDS) load_modules_local
format_mdt $(facet_number $SINGLEMDS)
echo "lfsck_namespace speed is ${SPEED}/sec"
stop ${SINGLEMDS} > /dev/null || error "Fail to stop MDS!"
done
+ combined_mgs_mds || stop mgs
}
run_test 0 "lfsck namespace performance (routine case) without load"
test_1() {
- [ $(facet_fstype $SINGLEMDS) != ldiskfs ] &&
- skip "not implemented for ZFS" && return
+ [ "$mds1_FSTYPE" != ldiskfs ] &&
+ skip_env "not implemented for ZFS"
local BCOUNT=0
local i
stopall
+ combined_mgs_mds || format_start_mgs
do_rpc_nodes $(facet_active_host $SINGLEMDS) load_modules_local
- reformat_mdt $(facet_number $SINGLEMDS)
+ format_mdt $(facet_number $SINGLEMDS)
for ((i = $MINCOUNT_REPAIR; i <= $MAXCOUNT_REPAIR;
i = $((i * FACTOR)))); do
echo "lfsck_namespace speed is ${SPEED}/sec"
stop ${SINGLEMDS} > /dev/null || error "Fail to stop MDS!"
done
+ combined_mgs_mds || stop mgs
}
run_test 1 "lfsck namespace performance (backup/restore) without load"
for ((i = $MINCOUNT_REPAIR; i <= $MAXCOUNT_REPAIR;
i = $((i * FACTOR)))); do
stopall
+ combined_mgs_mds || format_start_mgs
do_rpc_nodes $(facet_active_host $SINGLEMDS) load_modules_local
format_mdt $(facet_number $SINGLEMDS)
echo "lfsck_namespace speed is ${SPEED}/sec"
stop ${SINGLEMDS} > /dev/null || error "Fail to stop MDS!"
done
+ combined_mgs_mds || stop mgs
}
run_test 2 "lfsck namespace performance (upgrade from 1.8) without load"
local i
stopall
+ combined_mgs_mds || format_start_mgs
do_rpc_nodes $(facet_active_host $SINGLEMDS) load_modules_local
format_mdt $(facet_number $SINGLEMDS)
lfsck_create_nfiles ${nfiles} ${BCOUNT} ${NTHREADS} ||
error "Fail to create files!"
echo "+++ end to create for ${i} files set at: $(date) +++"
+ combined_mgs_mds || stop mgs
}
run_test 3 "lfsck namespace impact on create performance"
echo "Creating $count 2-striped sub-dirs under $show_dir," \
"and 4 regular files under each striped sub-dir at: $(date)"
for ((m = 0; m < $count; m++)); do
- $LFS setdirstripe -i ${idx1} -c 2 -t all_char \
+ $LFS setdirstripe -i ${idx1} -c 2 -H all_char \
$work_dir/d_s_${m} || {
error_noexit \
"(27) Fail to make striped-dir $work_dir/d_s_${m}"
run_test 7c "namespace LFSCK performance (repairing bad FID-in-dirent) for DNE"
test_8() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "We need at least 2 MDSes for this test" && return
+ [ $MDSCOUNT -lt 2 ] && skip_env "needs >= 2 MDTs"
[ $INCFACTOR -gt 25 ] && INCFACTOR=25
# cleanup the system at last
lfsck_cleanup
complete $SECONDS
+check_and_cleanup_lustre
exit_status