Whamcloud - gitweb
New tag 2.15.63
[fs/lustre-release.git] / lustre / tests / scrub-performance.sh
index 26ec345..7512f38 100644 (file)
@@ -3,23 +3,23 @@
 set -e
 
 ONLY=${ONLY:-"$*"}
-ALWAYS_EXCEPT="$SCRUB_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_test_env "$@"
 init_logging
 
-[ $(facet_fstype $SINGLEMDS) != ldiskfs ] &&
-       skip "OI scrub performance only for ldiskfs" && exit 0
-[[ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.2.90) ]] &&
-       skip "Need MDS version at least 2.2.90" && exit 0
-require_dsh_mds || exit 0
-[ "$SLOW" = "no" ] && skip "skip scrub performance test under non-SLOW mode"
+ALWAYS_EXCEPT="$SCRUB_PERFORMANCE_EXCEPT"
+build_test_filter
 
+[ "$SLOW" = "no" ] &&
+       skip "skip scrub performance test under non-SLOW mode" && exit 0
+
+[ "$mds1_FSTYPE" != ldiskfs ] &&
+       skip "ldiskfs only test"
+[[ "$MDS1_VERSION" -lt $(version_code 2.2.90) ]] &&
+       skip "Need MDS version at least 2.2.90"
+require_dsh_mds || exit 0
 
 NTHREADS=${NTHREADS:-0}
 UNIT=${UNIT:-1048576}
@@ -40,11 +40,22 @@ if [ ${NTHREADS} -eq 0 ]; then
        NTHREADS=$((CPUCORE * 2))
 fi
 
-stopall
+cleanupall
+
+if ! combined_mgs_mds ; then
+       do_rpc_nodes $(facet_active_host mgs) load_modules_local
+       add mgs $(mkfs_opts mgs $(mgsdevname)) --backfstype ldiskfs \
+               --reformat $(mgsdevname) $(mgsvdevname) ${quiet:+>/dev/null} ||
+               exit 1
+
+       start mgs $(mgsdevname) $MGS_MOUNT_OPTS || error "Fail to start MGS!"
+fi
+
 do_rpc_nodes $(facet_active_host $SINGLEMDS) load_modules_local
-reformat_external_journal
+reformat_external_journal ${SINGLEMDS}
 add ${SINGLEMDS} $(mkfs_opts ${SINGLEMDS} ${MDT_DEVNAME}) --backfstype ldiskfs \
-       --reformat ${MDT_DEVNAME} $(mdsvdevname 1) > /dev/null || exit 2
+       --reformat ${MDT_DEVNAME} $(mdsvdevname 1) ${quiet:+>/dev/null} ||
+       exit 2
 
 scrub_attach() {
        ${ECHOCMD} "${LCTL} <<-EOF
@@ -55,9 +66,8 @@ scrub_attach() {
 
 scrub_detach() {
        ${ECHOCMD} "${LCTL} <<-EOF
-               device scrub-MDT0000
-               cleanup
-               detach
+               --device scrub-MDT0000 cleanup
+               --device scrub-MDT0000 detach
        EOF"
 }
 
@@ -65,28 +75,24 @@ scrub_create() {
        local echodev=$(${RLCTL} dl | grep echo_client|awk '{print $1}')
        local j
 
-       ${ECHOCMD} "${LCTL} <<-EOF
-               cfg_device ${echodev}
-               test_mkdir ${tdir}
-       EOF"
+       ${ECHOCMD} "${LCTL} --device ${echodev} test_mkdir ${tdir}"
 
-       for ((j=1; j<${threads}; j++)); do
-               ${ECHOCMD} "${LCTL} <<-EOF
-                       cfg_device ${echodev}
-                       test_mkdir ${tdir}${j}
-               EOF"
+       for ((j = 1; j < ${threads}; j++)); do
+               ${ECHOCMD} "${LCTL} --device ${echodev} test_mkdir ${tdir}${j}"
        done
 
-       ${ECHOCMD} "${LCTL} <<-EOF
-               cfg_device ${echodev}
-               --threads ${threads} 0 ${echodev} test_create \
-               -d ${tdir} -D ${threads} -b ${lbase} -c 0 -n ${usize}
-       EOF"
+       ${ECHOCMD} "${LCTL} --device ${echodev} \
+               --threads ${threads} 0 ${echodev} \
+               test_create -d${tdir} -D${threads} -b${lbase} -c0 -n${usize}"
 }
 
 scrub_cleanup() {
+       cleanupall
        do_rpc_nodes $(facet_active_host $SINGLEMDS) unload_modules
-       formatall
+       if ! combined_mgs_mds ; then
+               do_rpc_nodes $(facet_active_host mgs) unload_modules
+       fi
+       REFORMAT="yes" cleanup_and_setup_lustre
 }
 
 scrub_create_nfiles() {
@@ -119,8 +125,6 @@ scrub_create_nfiles() {
        done
 }
 
-build_test_filter
-
 test_0() {
        local BASECOUNT=0
        local i
@@ -179,5 +183,6 @@ run_test 0 "OI scrub performance test"
 
 # cleanup the system at last
 scrub_cleanup
-complete $SECONDS
+complete_test $SECONDS
+check_and_cleanup_lustre
 exit_status