From 3a84f1d934e471f2ca6fb4c68a0e674651adf73e Mon Sep 17 00:00:00 2001 From: wangdi Date: Sun, 18 Nov 2012 13:26:54 -0800 Subject: [PATCH] LU-1187 tests: add create remote directory to racer Add create remote directory to racer Test-Parameters: envdefinitions=SLOW=yes testlist=racer Change-Id: Iac666d78ac8696dd4fd3e0318d105bb0040d10f8 Signed-off-by: Wang Di Reviewed-on: http://review.whamcloud.com/4365 Tested-by: Hudson Reviewed-by: Andreas Dilger Reviewed-by: Jian Yu Tested-by: Maloo --- lustre/tests/Makefile.am | 1 + lustre/tests/racer.sh | 70 ++++++++++++++++++++++++---------------- lustre/tests/racer/dir_remote.sh | 15 +++++++++ lustre/tests/racer/racer.sh | 5 +++ 4 files changed, 63 insertions(+), 28 deletions(-) create mode 100644 lustre/tests/racer/dir_remote.sh diff --git a/lustre/tests/Makefile.am b/lustre/tests/Makefile.am index e247d42..b37ae12 100644 --- a/lustre/tests/Makefile.am +++ b/lustre/tests/Makefile.am @@ -39,6 +39,7 @@ nobase_noinst_SCRIPTS += acl/make-tree acl/run cfg/ncli.sh nobase_noinst_SCRIPTS += racer/dir_create.sh racer/file_create.sh racer/file_list.sh nobase_noinst_SCRIPTS += racer/file_rm.sh racer/racer.sh racer/file_concat.sh racer/file_exec.sh nobase_noinst_SCRIPTS += racer/file_link.sh racer/file_rename.sh racer/file_symlink.sh +nobase_noinst_SCRIPTS += racer/dir_remote.sh nobase_noinst_SCRIPTS += rmtacl/make-tree rmtacl/run nobase_noinst_SCRIPTS += posix/posix.cfg nobase_noinst_DATA = acl/cp.test acl/getfacl-noacl.test acl/inheritance.test diff --git a/lustre/tests/racer.sh b/lustre/tests/racer.sh index 8d75c2c..45cc384 100644 --- a/lustre/tests/racer.sh +++ b/lustre/tests/racer.sh @@ -10,7 +10,7 @@ init_test_env $@ init_logging racer=$LUSTRE/tests/racer/racer.sh -echo racer: $racer +echo racer: $racer with $MDSCOUNT MDTs DURATION=${DURATION:-900} [ "$SLOW" = "no" ] && DURATION=300 @@ -22,41 +22,55 @@ check_and_setup_lustre CLIENTS=${CLIENTS:-$HOSTNAME} RACERDIRS=${RACERDIRS:-"$DIR $DIR2"} echo RACERDIRS=$RACERDIRS -for d in ${RACERDIRS}; do - is_mounted $d || continue - RDIRS="$RDIRS $d/racer" - mkdir -p $d/racer -# lfs setstripe $d/racer -c -1 -done + +check_progs_installed $CLIENTS $racer || + { skip_env "$racer not found" && exit 0; } # run racer test_1() { - local rrc=0 - local rc=0 - local clients=${CLIENTS:-$(hostname)} + local rrc=0 + local rc=0 + local clients=$CLIENTS + local RDIRS + local i + + for d in ${RACERDIRS}; do + is_mounted $d || continue - check_progs_installed $clients $racer || \ - { skip_env "$racer not found" && return 0; } + RDIRS="$RDIRS $d/racer" + mkdir -p $d/racer + # lfs setstripe $d/racer -c -1 + if [ $MDSCOUNT -ge 2 ]; then + for i in $(seq $((MDSCOUNT - 1))); do + RDIRS="$RDIRS $d/racer$i" + if [ ! -e $d/racer$i ]; then + $LFS mkdir -i $i $d/racer$i || + error "lfs mkdir $i failed" + fi + done + fi + done - local rpids="" - for rdir in $RDIRS; do - do_nodes $clients "DURATION=$DURATION $racer $rdir $NUM_RACER_THREADS" & - pid=$! - rpids="$rpids $pid" - done + local rpids="" + for rdir in $RDIRS; do + do_nodes $clients "DURATION=$DURATION MDSCOUNT=$MDSCOUNT \ + $racer $rdir $NUM_RACER_THREADS" & + pid=$! + rpids="$rpids $pid" + done - echo racers pids: $rpids - for pid in $rpids; do - wait $pid - rc=$? - echo "pid=$pid rc=$rc" - if [ $rc != 0 ]; then - rrc=$((rrc + 1)) - fi - done + echo racers pids: $rpids + for pid in $rpids; do + wait $pid + rc=$? + echo "pid=$pid rc=$rc" + if [ $rc != 0 ]; then + rrc=$((rrc + 1)) + fi + done - return $rrc + return $rrc } run_test 1 "racer on clients: ${CLIENTS:-$(hostname)} DURATION=$DURATION" diff --git a/lustre/tests/racer/dir_remote.sh b/lustre/tests/racer/dir_remote.sh new file mode 100644 index 0000000..dbbaa19 --- /dev/null +++ b/lustre/tests/racer/dir_remote.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +DIR=$1 +MAX=$2 + +MDTCOUNT=${MDSCOUNT:-$(lfs df $DIR 2> /dev/null | grep -c MDT)} +while /bin/true ; do + remote_dir=$((RANDOM % MAX)) + file=$((RANDOM % MAX)) + mdt_idx=$((RANDOM % MDTCOUNT)) + mkdir -p $DIR + lfs mkdir -i $mdt_idx $DIR/$remote_dir > /dev/null 2>&1 + echo "abcd" > $DIR/$remote_dir/$file 2> /dev/null + $LFS getdirstripe $DIR/$remote_dir > /dev/null 2>&1 +done diff --git a/lustre/tests/racer/racer.sh b/lustre/tests/racer/racer.sh index 216e56f..5fad750 100755 --- a/lustre/tests/racer/racer.sh +++ b/lustre/tests/racer/racer.sh @@ -5,6 +5,7 @@ MAX_FILES=${MAX_FILES:-20} DIR=${DIR:-$1} DIR=${DIR:-"/mnt/lustre/racer"} DURATION=${DURATION:-$((60*5))} +MDSCOUNT=${MDSCOUNT:-1} NUM_THREADS=${NUM_THREADS:-$2} NUM_THREADS=${NUM_THREADS:-3} @@ -14,6 +15,10 @@ mkdir -p $DIR RACER_PROGS="file_create dir_create file_rm file_rename file_link file_symlink \ file_list file_concat file_exec" +if [ $MDSCOUNT -gt 1 ]; then + RACER_PROGS="${RACER_PROGS} dir_remote" +fi + racer_cleanup() { echo "racer cleanup" -- 1.8.3.1