X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Ftests%2Fparallel-scale.sh;h=218c147eba9c0154726955a55c99759a94625547;hp=a7613e0d5843f005faa267b21389f5429288609c;hb=0272fbaa5891bd498aae3a6b79ed79c351fc7256;hpb=548bd0e654ffd296e9df5b4f5af41d558a6fcefd diff --git a/lustre/tests/parallel-scale.sh b/lustre/tests/parallel-scale.sh index a7613e0..218c147 100644 --- a/lustre/tests/parallel-scale.sh +++ b/lustre/tests/parallel-scale.sh @@ -6,9 +6,10 @@ LUSTRE=${LUSTRE:-$(cd $(dirname $0)/..; echo $PWD)} . $LUSTRE/tests/test-framework.sh init_test_env $@ . ${CONFIG:=$LUSTRE/tests/cfg/$NAME.sh} +init_logging -# bug 20670 -ALWAYS_EXCEPT="parallel_grouplock $PARALLEL_SCALE_EXCEPT" +# bug 20670 21255 +ALWAYS_EXCEPT="parallel_grouplock statahead $PARALLEL_SCALE_EXCEPT" # # compilbench @@ -196,6 +197,11 @@ test_metabench() { run_test metabench "metabench" test_simul() { + if [ "$NFSCLIENT" ]; then + skip "skipped for NFSCLIENT mode" + return + fi + [ x$SIMUL = x ] && { skip_env "simul not found" && return; } @@ -297,8 +303,13 @@ test_ior() { mkdir -p $testdir # mpi_run uses mpiuser chmod 0777 $testdir - $LFS setstripe $testdir -c -1 - + if [ "$NFSCLIENT" ]; then + setstripe_nfsserver $testdir -c -1 || + { error "setstripe on nfsserver failed" && return 1; } + else + $LFS setstripe $testdir -c -1 || + { error "setstripe failed" && return 2; } + fi # # -b N blockSize -- contiguous bytes to write per task (e.g.: 8, 4k, 2m, 1g)" # -o S testFileName @@ -321,6 +332,11 @@ test_ior() { run_test ior "ior" test_cascading_rw() { + if [ "$NFSCLIENT" ]; then + skip "skipped for NFSCLIENT mode" + return + fi + [ x$CASC_RW = x ] && { skip_env "cascading_rw not found" && return; } @@ -359,6 +375,11 @@ test_cascading_rw() { run_test cascading_rw "cascading_rw" test_write_append_truncate() { + if [ "$NFSCLIENT" ]; then + skip "skipped for NFSCLIENT mode" + return + fi + # location is lustre/tests dir if ! which write_append_truncate > /dev/null 2>&1 ; then skip_env "write_append_truncate not found" @@ -400,6 +421,11 @@ test_write_append_truncate() { run_test write_append_truncate "write_append_truncate" test_write_disjoint() { + if [ "$NFSCLIENT" ]; then + skip "skipped for NFSCLIENT mode" + return + fi + [ x$WRITE_DISJOINT = x ] && { skip_env "write_disjoint not found" && return; } @@ -479,6 +505,73 @@ test_parallel_grouplock() { } run_test parallel_grouplock "parallel_grouplock" +statahead_NUMMNTPTS=${statahead_NUMMNTPTS:-5} +statahead_NUMFILES=${statahead_NUMFILES:-500000} + +cleanup_statahead () { + trap 0 + + local clients=$1 + local mntpt_root=$2 + local num_mntpts=$3 + + for i in $(seq 0 $num_mntpts);do + zconf_umount_clients $clients ${mntpt_root}$i || + error_exit "Failed to umount lustre on ${mntpt_root}$i" + done +} + +test_statahead () { + + # create large dir + + local dir=d0.statahead + # FIXME has to use DIR + local testdir=$DIR/$dir + + mkdir -p $testdir + + local num_files=$statahead_NUMFILES + + local IFree=$(inodes_available) + if [ $IFree -lt $num_files ]; then + num_files=$IFree + fi + + cancel_lru_locks mdc + + log "createmany -o $testdir/f-%d $num_files" + createmany -o $testdir/$f-%d $num_files + + local rc=$? + if [ $rc != 0 ] ; then + error "createmany failed to create $rc" + return $rc + fi + + local num_mntpts=$statahead_NUMMNTPTS + local mntpt_root=$TMP/mntpt/lustre + mntopts=${MNTOPTSTATAHEAD:-$MOUNTOPT} + + local clients=$CLIENTS + [ -z $clients ] && clients=$(hostname) + + echo "Mounting $num_mntpts lustre clients starts on $clients" + trap "cleanup_statahead $clients $mntpt_root $num_mntpts" EXIT ERR + for i in $(seq 0 $num_mntpts);do + zconf_mount_clients $clients ${mntpt_root}$i $mntopts || + error_exit "Failed to mount lustre on ${mntpt_root}$i on $clients" + done + + do_rpc_nodes $clients cancel_lru_locks mdc + + do_rpc_nodes $clients do_ls $mntpt_root $num_mntpts $dir + + cleanup_statahead $clients $mntpt_root $num_mntpts +} + +run_test statahead "statahead test, multiple clients" + equals_msg `basename $0`: test complete, cleaning up check_and_cleanup_lustre [ -f "$TESTSUITELOG" ] && cat $TESTSUITELOG && grep -q FAIL $TESTSUITELOG && exit 1 || true