. ${CONFIG:=$LUSTRE/tests/cfg/$NAME.sh}
init_logging
+racer=$LUSTRE/tests/racer/racer.sh
. $LUSTRE/tests/setup-nfs.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//,/ })
$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"
-# 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() {
+ $racer $CLIENTS
+}
+run_test racer_on_nfs "racer on NFS client"
complete $SECONDS
-check_and_cleanup_lustre
exit_status