diff --git a/lustre-iokit/mds-survey/mds-survey b/lustre-iokit/mds-survey/mds-survey index 7bde56290da75b22f6d3943f93d70517fcd08e79..0d6bc30f8e11dd6a8719c6ec7f533fb7d6d8b92e 100755 --- a/lustre-iokit/mds-survey/mds-survey +++ b/lustre-iokit/mds-survey/mds-survey @@ -61,6 +61,7 @@ create_directories () { local ndir=$3 local rfile=$4 local mdtidx=$5 + local dir_stripes=$6 local idx for ((idx = 0; idx < $ndir; idx++)); do @@ -69,7 +70,8 @@ create_directories () { else dirname="$(printf "${mdtbasedir}" $mdtidx)${basedir}${idx}" fi - remote_shell $host $lctl --device $devno test_mkdir /$dirname > $rfile 2>&1 + remote_shell $host $lctl --device $devno test_mkdir /$dirname \ + -c $dir_stripes --stripe_index $mdtidx > $rfile 2>&1 while read line; do echo "$line" | grep -q 'error: test_mkdir' if [ $? -eq 0 ]; then @@ -291,7 +293,7 @@ for ((idx = 0; idx < $ndevs; idx++)); do mdtidx=${client_indexes[$idx]} echo "=======> Create $dir_count directories on $client_name" >> $workf destroy_directories $host $devno $dir_count $tmpf $mdtidx - ret=$(create_directories $host $devno $dir_count $tmpf $mdtidx) + ret=$(create_directories $host $devno $dir_count $tmpf $mdtidx $ndevs) cat $tmpf >> $workf rm $tmpf if [ $ret = "ERROR" ]; then diff --git a/lustre/tests/mds-survey.sh b/lustre/tests/mds-survey.sh index 6eb9b45b10659484e57a5f1f53faee9fc6b74f21..a4085673aec2cfe49f115fd9cbee88c246b7993d 100644 --- a/lustre/tests/mds-survey.sh +++ b/lustre/tests/mds-survey.sh @@ -67,29 +67,50 @@ cleanup_mount $MOUNT cleanup_mount $MOUNT2 get_target() { - local mds=$(facet_host $SINGLEMDS) - echo $(do_nodes $mds 'lctl dl' | \ - awk "{if (\$2 == \"UP\" && \$3 == \"mdt\") {print \$4}}") + local node=$1 + local mdt + local mdts + local target + + mdts=$(do_node $node "$LCTL dl" | + awk "{if (\$2 == \"UP\" && \$3 == \"mdt\") {print \$4}}") + + for mdt in $mdts; do + target+="${target:+ }$node:$mdt" + done + + echo -n $target +} + +get_targets() { + local targets + local node + + for node in $(mdts_nodes); do + targets+="${targets:+ }$(get_target $node)" + done + + echo -n $targets } mds_survey_run() { - local layer=${1:-mdd} - local stripe_count=${2:-0} - local mds=$(facet_host $SINGLEMDS) - local rc=0 - - rm -f ${TMP}/mds_survey* - - local target=$(get_target) - local cmd="file_count=$file_count thrlo=$thrlo thrhi=$thrhi" - local cmd+=" dir_count=$dir_count layer=$layer stripe_count=$stripe_count" - local cmd+=" rslt_loc=${TMP} targets=\"$mds:$target\" $MDSSURVEY" - - echo + $cmd - eval $cmd || rc=$? - cat ${TMP}/mds_survey* - rm -f ${TMP}/mds_survey* - ((rc == 0)) || error "mds-survey failed" + local layer=${1:-mdd} + local stripe_count=${2:-0} + local rc=0 + + rm -f ${TMP}/mds_survey* + + local cmd="file_count=$file_count thrlo=$thrlo thrhi=$thrhi" + cmd+=" dir_count=$dir_count layer=$layer stripe_count=$stripe_count" + cmd+=" rslt_loc=${TMP} targets=\"$(get_targets)\" $MDSSURVEY" + + trap cleanup_echo_devs EXIT ERR + + echo + $cmd + eval $cmd || rc=$? + cat ${TMP}/mds_survey* + rm -f ${TMP}/mds_survey* + ((rc == 0)) || error "mds-survey failed" } test_1() { diff --git a/lustre/tests/test-framework.sh b/lustre/tests/test-framework.sh index fed69645092bcd9c5ee4a72f1c82f88f77d4b52a..3221f47f135ed242936398b26956792a75c38c9e 100755 --- a/lustre/tests/test-framework.sh +++ b/lustre/tests/test-framework.sh @@ -3378,12 +3378,14 @@ stopall() { } cleanup_echo_devs () { - local devs=$($LCTL dl | grep echo | awk '{print $4}') + trap 0 + local dev + local devs=$($LCTL dl | grep echo | awk '{print $4}') - for dev in $devs; do - $LCTL --device $dev cleanup - $LCTL --device $dev detach - done + for dev in $devs; do + $LCTL --device $dev cleanup + $LCTL --device $dev detach + done } cleanupall() {