X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Ftests%2Fparallel-scale-nfs.sh;h=34ca53ecaa9ee6465c5b0e33cd3fe82d52879145;hb=8e563553c0a26f0d8e8caf2a44b44a7f552531e9;hp=0182c7a337a41963d663ab67ce7a9a4d0bdd55f2;hpb=66397f7661093aba422aadbfd288f24bd434ff75;p=fs%2Flustre-release.git diff --git a/lustre/tests/parallel-scale-nfs.sh b/lustre/tests/parallel-scale-nfs.sh index 0182c7a..34ca53e 100755 --- a/lustre/tests/parallel-scale-nfs.sh +++ b/lustre/tests/parallel-scale-nfs.sh @@ -1,67 +1,95 @@ #!/bin/bash -# -#set -vx NFSVERSION=${1:-"3"} -LUSTRE=${LUSTRE:-$(cd $(dirname $0)/..; echo $PWD)} + +LUSTRE=${LUSTRE:-$(dirname $0)/..} . $LUSTRE/tests/test-framework.sh # only call init_test_env if this script is called directly if [[ -z "$TESTSUITE" || "$TESTSUITE" = "$(basename $0 .sh)" ]]; then - init_test_env $@ + init_test_env "$@" +else + . ${CONFIG:=$LUSTRE/tests/cfg/$NAME.sh} + fi -. ${CONFIG:=$LUSTRE/tests/cfg/$NAME.sh} + init_logging +racer=$LUSTRE/tests/racer/racer.sh . $LUSTRE/tests/setup-nfs.sh +# lustre client used as nfs server (default is mds node) +LUSTRE_CLIENT_NFSSRV=${LUSTRE_CLIENT_NFSSRV:-$(facet_active_host $SINGLEMDS)} +NFS_SRVMNTPT=${NFS_SRVMNTPT:-$MOUNT} +NFS_CLIENTS=${NFS_CLIENTS:-$CLIENTS} +NFS_CLIENTS=$(exclude_items_from_list $NFS_CLIENTS $LUSTRE_CLIENT_NFSSRV) +NFS_CLIMNTPT=${NFS_CLIMNTPT:-$MOUNT} + +[ -z "$NFS_CLIENTS" ] && + skip_env "need at least two nodes: nfs server and nfs client" + +[ "$NFSVERSION" = "4" ] && cl_mnt_opt="${MOUNT_OPTS:+$MOUNT_OPTS,}32bitapi" || + cl_mnt_opt="" + check_and_setup_lustre +$LFS df +TESTDIR=$NFS_CLIMNTPT/d0.$(basename $0 .sh) +mkdir -p $TESTDIR +$LFS setstripe -c -1 $TESTDIR -# first unmount all the lustre client +# first unmount all the lustre clients cleanup_mount $MOUNT -# mount lustre on mds -lustre_client=$(facet_active_host $SINGLEMDS) -[ "$NFSVERSION" = "4" ] && cl_mnt_opt="$MOUNTOPT,32bitapi" || cl_mnt_opt="" -zconf_mount_clients $lustre_client $MOUNT "$cl_mnt_opt" || \ - error "mount lustre on $lustre_client failed" + +cleanup_exit () { + trap 0 + cleanup + check_and_cleanup_lustre + exit +} + +cleanup () { + cleanup_nfs "$NFS_CLIMNTPT" "$LUSTRE_CLIENT_NFSSRV" "$NFS_CLIENTS" || + error_noexit false "failed to cleanup nfs" + zconf_umount $LUSTRE_CLIENT_NFSSRV $NFS_SRVMNTPT force || + error_noexit false "failed to umount lustre on"\ + "$LUSTRE_CLIENT_NFSSRV" + # restore lustre mount + restore_mount $MOUNT || + error_noexit false "failed to mount lustre" +} + +trap cleanup_exit EXIT SIGHUP SIGINT + +zconf_mount $LUSTRE_CLIENT_NFSSRV $NFS_SRVMNTPT "$cl_mnt_opt" || + error "mount lustre on $LUSTRE_CLIENT_NFSSRV failed" # setup the nfs -if ! setup_nfs "$NFSVERSION" "$MOUNT" "$lustre_client" "$CLIENTS"; then - error_noexit false "setup nfs failed!" - cleanup_nfs "$MOUNT" "$lustre_client" "$CLIENTS" || \ - error_noexit false "failed to cleanup nfs" - if ! zconf_umount_clients $lustre_client $MOUNT force; then - error_noexit false "failed to umount lustre on $lustre_client" - elif ! zconf_mount_clients $CLIENTS $MOUNT; then - error_noexit false "failed to mount lustre" - fi - check_and_cleanup_lustre - exit -fi +setup_nfs "$NFSVERSION" "$NFS_SRVMNTPT" "$LUSTRE_CLIENT_NFSSRV" \ + "$NFS_CLIENTS" "$NFS_CLIMNTPT" || + error false "setup nfs failed!" NFSCLIENT=true FAIL_ON_ERROR=false # common setup -MACHINEFILE=${MACHINEFILE:-$TMP/$(basename $0 .sh).machines} -clients=${CLIENTS:-$HOSTNAME} -generate_machine_file $clients $MACHINEFILE || \ - error "Failed to generate machine file" +clients=${NFS_CLIENTS:-$HOSTNAME} +generate_machine_file $clients $MACHINEFILE || + error "Failed to generate machine file" num_clients=$(get_node_count ${clients//,/ }) # compilbench -if [ "$SLOW" = "no" ]; then - cbench_IDIRS=2 - cbench_RUNS=2 -fi +# Run short iteration in nfs mode +cbench_IDIRS=${cbench_IDIRS:-2} +cbench_RUNS=${cbench_RUNS:-2} # metabench -[ "$SLOW" = "no" ] && mbench_NFILES=10000 +# Run quick in nfs mode +mbench_NFILES=${mbench_NFILES:-10000} # connectathon [ "$SLOW" = "no" ] && cnt_NRUN=2 # IOR -[ "$SLOW" = "no" ] && ior_DURATION=30 +ior_DURATION=${ior_DURATION:-30} # source the common file after all parameters are set to take affect . $LUSTRE/tests/functions.sh @@ -73,39 +101,36 @@ MPI_RUNAS=${MPI_RUNAS:-"runas -u $MPI_USER_UID -g $MPI_USER_GID"} $GSS_KRB5 && refresh_krb5_tgt $MPI_USER_UID $MPI_USER_GID $MPI_RUNAS test_compilebench() { - run_compilebench + run_compilebench $TESTDIR } run_test compilebench "compilebench" test_metabench() { - run_metabench + run_metabench $TESTDIR $NFS_CLIMNTPT } run_test metabench "metabench" test_connectathon() { - run_connectathon + run_connectathon $TESTDIR } run_test connectathon "connectathon" test_iorssf() { - run_ior "ssf" + run_ior "ssf" $TESTDIR $NFS_SRVMNTPT } run_test iorssf "iorssf" test_iorfpp() { - run_ior "fpp" + run_ior "fpp" $TESTDIR $NFS_SRVMNTPT } run_test iorfpp "iorfpp" -# cleanup nfs -cleanup_nfs "$MOUNT" "$lustre_client" "$CLIENTS" || \ - error_noexit false "cleanup_nfs failed" -if ! zconf_umount_clients $lustre_client $MOUNT force; then - error_noexit false "failed to umount lustre on $lustre_client" -elif ! zconf_mount_clients $CLIENTS $MOUNT; then - error_noexit false "failed to mount lustre after nfs test" -fi +test_racer_on_nfs() { + local racer_params="MDSCOUNT=$MDSCOUNT OSTCOUNT=$OSTCOUNT LFS=$LFS" + + do_nodes $CLIENTS "$racer_params $racer $TESTDIR" +} +run_test racer_on_nfs "racer on NFS client" -complete $(basename $0) $SECONDS -check_and_cleanup_lustre +complete $SECONDS exit_status