X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Ftests%2Fparallel-scale-nfs.sh;h=4188c3b23bc164e487c34bd6c37ec2bb52a1b33d;hp=4f698c3875e74d4911ab2a64b8435b21601906d8;hb=d238e5d049e2b73f7997fa0add1a094fec432cb2;hpb=94aa5f7af1dab41d255b03c1552cdbbca6724bc1 diff --git a/lustre/tests/parallel-scale-nfs.sh b/lustre/tests/parallel-scale-nfs.sh index 4f698c3..4188c3b 100755 --- a/lustre/tests/parallel-scale-nfs.sh +++ b/lustre/tests/parallel-scale-nfs.sh @@ -17,35 +17,55 @@ racer=$LUSTRE/tests/racer/racer.sh check_and_setup_lustre -# 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) +# 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" && exit 0 + [ "$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} +clients=${NFS_CLIENTS:-$HOSTNAME} generate_machine_file $clients $MACHINEFILE || \ error "Failed to generate machine file" num_clients=$(get_node_count ${clients//,/ }) @@ -75,27 +95,27 @@ 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 $NFS_CLIMNTPT } run_test compilebench "compilebench" test_metabench() { - run_metabench + run_metabench $NFS_CLIMNTPT } run_test metabench "metabench" test_connectathon() { - run_connectathon + run_connectathon $NFS_CLIMNTPT } run_test connectathon "connectathon" test_iorssf() { - run_ior "ssf" + run_ior "ssf" $NFS_CLIMNTPT $NFS_SRVMNTPT } run_test iorssf "iorssf" test_iorfpp() { - run_ior "fpp" + run_ior "fpp" $NFS_CLIMNTPT $NFS_SRVMNTPT } run_test iorfpp "iorfpp" @@ -104,15 +124,5 @@ test_racer_on_nfs() { } run_test racer_on_nfs "racer on NFS client" -# 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 - complete $SECONDS -check_and_cleanup_lustre exit_status