X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Ftests%2Fparallel-scale-nfs.sh;h=1d27a08d4a1470d08699e5c92566478963550e45;hb=dafd02632c999212f6e574704846195d377f2ee4;hp=0f8fead5511cbcc9776c70f8dd7ceddef23e7d8a;hpb=3da5ac8cf543bd3caf0008d08536c620ac58560f;p=fs%2Flustre-release.git diff --git a/lustre/tests/parallel-scale-nfs.sh b/lustre/tests/parallel-scale-nfs.sh index 0f8fead..1d27a08 100755 --- a/lustre/tests/parallel-scale-nfs.sh +++ b/lustre/tests/parallel-scale-nfs.sh @@ -7,46 +7,72 @@ LUSTRE=${LUSTRE:-$(cd $(dirname $0)/..; echo $PWD)} . $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 $@ 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="${MOUNT_OPTS:+$MOUNT_OPTS,}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 @@ -74,39 +100,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 $SECONDS -check_and_cleanup_lustre exit_status