noinst_SCRIPTS += ost-pools.sh rpc.sh lnet-selftest.sh obdfilter-survey.sh mmp.sh mmp_mark.sh
noinst_SCRIPTS += sgpdd-survey.sh auster yaml.sh maloo_upload.sh setup-nfs.sh
noinst_SCRIPTS += parallel-scale-nfs.sh parallel-scale-nfsv3.sh parallel-scale-nfsv4.sh
+noinst_SCRIPTS += ha.sh
nobase_noinst_SCRIPTS = cfg/local.sh
nobase_noinst_SCRIPTS += test-groups/regression test-groups/regression-mpi
nobase_noinst_SCRIPTS += acl/make-tree acl/run cfg/ncli.sh
MPIRUN=$(which mpirun 2>/dev/null) || true
MPI_USER=${MPI_USER:-mpiuser}
+MACHINEFILE_OPTION=${MACHINEFILE_OPTION:-"-machinefile"}
# This is used by a small number of tests to share state between the client
# running the tests, or in some cases between the servers (e.g. lfsck.sh).
-n $((num_clients * mbench_THREADS)) -p $SRUN_PARTITION -- $cmd
else
mpi_run -np $((num_clients * $mbench_THREADS)) \
- -machinefile ${MACHINEFILE} $cmd
+ ${MACHINEFILE_OPTION} ${MACHINEFILE} $cmd
fi
local rc=$?
-n $((num_clients * simul_THREADS)) -p $SRUN_PARTITION -- $cmd
else
mpi_run -np $((num_clients * simul_THREADS)) \
- -machinefile ${MACHINEFILE} $cmd
+ ${MACHINEFILE_OPTION} ${MACHINEFILE} $cmd
fi
local rc=$?
-n $((num_clients * mdtest_THREADS)) -p $SRUN_PARTITION -- $cmd
else
mpi_run -np $((num_clients * mdtest_THREADS)) \
- -machinefile ${MACHINEFILE} $cmd
+ ${MACHINEFILE_OPTION} ${MACHINEFILE} $cmd
fi
local rc=$?
-n $((num_clients * ior_THREADS)) -p $SRUN_PARTITION -- $cmd
else
mpi_run -np $((num_clients * $ior_THREADS)) \
- -machinefile ${MACHINEFILE} $cmd
+ ${MACHINEFILE_OPTION} ${MACHINEFILE} $cmd
fi
local rc=$?
-n $((num_clients * mib_THREADS)) -p $SRUN_PARTITION -- $cmd
else
mpi_run -np $((num_clients * mib_THREADS)) \
- -machinefile ${MACHINEFILE} $cmd
+ ${MACHINEFILE_OPTION} ${MACHINEFILE} $cmd
fi
local rc=$?
echo "+ $cmd"
mpi_run -np $((num_clients * $casc_THREADS)) \
- -machinefile ${MACHINEFILE} $cmd
+ ${MACHINEFILE_OPTION} ${MACHINEFILE} $cmd
local rc=$?
if [ $rc != 0 ] ; then
echo "+ $cmd"
mpi_run -np $((num_clients * $write_THREADS)) \
- -machinefile ${MACHINEFILE} $cmd
+ ${MACHINEFILE_OPTION} ${MACHINEFILE} $cmd
local rc=$?
if [ $rc != 0 ] ; then
echo "+ $cmd"
mpi_run -np $((num_clients * $wdisjoint_THREADS)) \
- -machinefile ${MACHINEFILE} $cmd
+ ${MACHINEFILE_OPTION} ${MACHINEFILE} $cmd
local rc=$?
if [ $rc != 0 ] ; then
echo "+ $cmd"
mpi_run -np $parallel_grouplock_MINTASKS \
- -machinefile ${MACHINEFILE} $cmd
+ ${MACHINEFILE_OPTION} ${MACHINEFILE} $cmd
local rc=$?
if [ $rc != 0 ] ; then
error_noexit "parallel_grouplock subtests $subtest failed! $rc"
local cmd="$cmd1 $cmd2"
echo "+ $cmd"
- mpi_run -np $((num_clients * 32)) -machinefile ${MACHINEFILE} $cmd
+ mpi_run -np $((num_clients * 32)) ${MACHINEFILE_OPTION} ${MACHINEFILE} $cmd
local rc=$?
if [ $rc != 0 ] ; then
while [ ! -e "$ha_stop_file" ] && ((rc == 0)); do
{
ha_on ${ha_clients[0]} mkdir -p "$dir" && \
- mpirun -np ${#ha_clients[@]} -machinefile "$ha_machine_file" \
+ mpirun -np ${#ha_clients[@]} ${MACHINEFILE_OPTION} \
+ "$ha_machine_file" \
$cmd && \
ha_on ${ha_clients[0]} rm -rf "$dir"
} >>"$log" 2>&1 || rc=$?
mdsrate_cleanup $num $machinefile $nfiles $dir 'f%%d' --ignore
COMMAND="${MDSRATE} --create --nfiles $nfiles --dir $dir --filefmt 'f%%d'"
- mpi_run -np $((num * nthreads)) -machinefile $machinefile ${COMMAND} | tee ${LOG} &
+ mpi_run -np $((num * nthreads)) ${MACHINEFILE_OPTION} $machinefile \
+ ${COMMAND} | tee ${LOG} &
pid=$!
echo "pid=$pid"
COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --create --time ${TIME_PERIOD}
--nfiles ${NUM_FILES} --dir ${TESTDIR_SINGLE} --filefmt 'f%%d'"
echo "+ ${COMMAND}"
- mpi_run -np 1 -machinefile ${MACHINEFILE} ${COMMAND} | tee ${LOG}
+ mpi_run -np 1 ${MACHINEFILE_OPTION} ${MACHINEFILE} ${COMMAND} | tee ${LOG}
if [ ${PIPESTATUS[0]} != 0 ]; then
[ -f $LOG ] && sed -e "s/^/log: /" $LOG
COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --unlink
--nfiles ${NUM_FILES} --dir ${TESTDIR_SINGLE} --filefmt 'f%%d'"
echo "+ ${COMMAND}"
- mpi_run -np 1 -machinefile ${MACHINEFILE} ${COMMAND} | tee ${LOG}
+ mpi_run -np 1 ${MACHINEFILE_OPTION} ${MACHINEFILE} ${COMMAND} | tee ${LOG}
if [ ${PIPESTATUS[0]} != 0 ]; then
[ -f $LOG ] && sed -e "s/^/log: /" $LOG
COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --create --time ${TIME_PERIOD}
--nfiles $NUM_FILES --dir ${TESTDIR_MULTI} --filefmt 'f%%d'"
echo "+ ${COMMAND}"
- mpi_run -np ${NUM_CLIENTS} -machinefile ${MACHINEFILE} ${COMMAND} | tee ${LOG}
+ mpi_run -np ${NUM_CLIENTS} ${MACHINEFILE_OPTION} ${MACHINEFILE} ${COMMAND} \
+ | tee ${LOG}
if [ ${PIPESTATUS[0]} != 0 ]; then
[ -f $LOG ] && sed -e "s/^/log: /" $LOG
COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --unlink
--nfiles ${NUM_FILES} --dir ${TESTDIR_MULTI} --filefmt 'f%%d'"
echo "+ ${COMMAND}"
- mpi_run -np ${NUM_CLIENTS} -machinefile ${MACHINEFILE} ${COMMAND} | tee ${LOG}
+ mpi_run -np ${NUM_CLIENTS} ${MACHINEFILE_OPTION} ${MACHINEFILE} ${COMMAND} \
+ | tee ${LOG}
if [ ${PIPESTATUS[0]} != 0 ]; then
[ -f $LOG ] && sed -e "s/^/log: /" $LOG
COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --create --time ${TIME_PERIOD}
--nfiles $NUM_FILES --dir ${TESTDIR_SINGLE} --filefmt 'f%%d'"
echo "+ ${COMMAND}"
- mpi_run -np 1 -machinefile ${MACHINEFILE} ${COMMAND} | tee ${LOG}
+ mpi_run -np 1 ${MACHINEFILE_OPTION} ${MACHINEFILE} ${COMMAND} \
+ | tee ${LOG}
if [ ${PIPESTATUS[0]} != 0 ]; then
[ -f $LOG ] && sed -e "s/^/log: /" $LOG
COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --unlink
--nfiles ${NUM_FILES} --dir ${TESTDIR_SINGLE} --filefmt 'f%%d'"
echo "+ ${COMMAND}"
- mpi_run -np 1 -machinefile ${MACHINEFILE} ${COMMAND} | tee ${LOG}
+ mpi_run -np 1 ${MACHINEFILE_OPTION} ${MACHINEFILE} ${COMMAND} \
+ | tee ${LOG}
if [ ${PIPESTATUS[0]} != 0 ]; then
[ -f $LOG ] && sed -e "s/^/log: /" $LOG
COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --create --time ${TIME_PERIOD}
--nfiles $NUM_FILES --dir ${TESTDIR_MULTI} --filefmt 'f%%d'"
echo "+ ${COMMAND}"
- mpi_run -np $((NUM_CLIENTS * THREADS_PER_CLIENT)) -machinefile ${MACHINEFILE} \
- ${COMMAND} | tee ${LOG}
+ mpi_run -np $((NUM_CLIENTS * THREADS_PER_CLIENT)) ${MACHINEFILE_OPTION} \
+ ${MACHINEFILE} ${COMMAND} | tee ${LOG}
if [ ${PIPESTATUS[0]} != 0 ]; then
[ -f $LOG ] && sed -e "s/^/log: /" $LOG
error "mdsrate create on multiple nodes failed, aborting"
COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --unlink
--nfiles ${NUM_FILES} --dir ${TESTDIR_MULTI} --filefmt 'f%%d'"
echo "+ ${COMMAND}"
- mpi_run -np $((NUM_CLIENTS * THREADS_PER_CLIENT)) -machinefile ${MACHINEFILE} \
- ${COMMAND} | tee ${LOG}
+ mpi_run -np $((NUM_CLIENTS * THREADS_PER_CLIENT)) ${MACHINEFILE_OPTION} \
+ ${MACHINEFILE} ${COMMAND} | tee ${LOG}
if [ ${PIPESTATUS[0]} != 0 ]; then
[ -f $LOG ] && sed -e "s/^/log: /" $LOG
error "mdsrate unlinks multiple nodes failed, aborting"
# For files creation we can use -np equal to NUM_DIRS
# This is just a test preparation, does not matter how many threads we use for files creation;
# we just should be aware that NUM_DIRS is less than or equal to the number of threads np
- mpi_run -np ${NUM_DIRS} -machinefile ${MACHINEFILE} ${COMMAND} 2>&1
+ mpi_run -np ${NUM_DIRS} ${MACHINEFILE_OPTION} ${MACHINEFILE} ${COMMAND} 2>&1
# No lookup if error occurs on file creation, abort.
[ ${PIPESTATUS[0]} != 0 ] && error "mdsrate file creation failed, aborting"
else
log "===== $0 ### 1 NODE LOOKUPS ###"
echo "+" ${COMMAND}
- mpi_run -np 1 -machinefile ${MACHINEFILE} ${COMMAND} | tee ${LOG}
+ mpi_run -np 1 ${MACHINEFILE_OPTION} ${MACHINEFILE} ${COMMAND} | tee ${LOG}
if [ ${PIPESTATUS[0]} != 0 ]; then
[ -f $LOG ] && sed -e "s/^/log: /" $LOG
else
log "===== $0 ### ${NUM_CLIENTS} NODES LOOKUPS ###"
echo "+" ${COMMAND}
- mpi_run -np ${NUM_CLIENTS} -machinefile ${MACHINEFILE} ${COMMAND} | tee ${LOG}
+ mpi_run -np ${NUM_CLIENTS} ${MACHINEFILE_OPTION} ${MACHINEFILE} ${COMMAND} \
+ | tee ${LOG}
if [ ${PIPESTATUS[0]} != 0 ]; then
[ -f $LOG ] && sed -e "s/^/log: /" $LOG
COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --mknod --dir ${TESTDIR}
--nfiles ${NUM_FILES} --filefmt 'f%%d'"
echo "+" ${COMMAND}
- mpi_run -np ${NUM_CLIENTS} -machinefile ${MACHINEFILE} ${COMMAND} 2>&1
+ mpi_run -np ${NUM_CLIENTS} ${MACHINEFILE_OPTION} ${MACHINEFILE} ${COMMAND} \
+ 2>&1
# No lockup if error occurs on file creation, abort.
[ ${PIPESTATUS[0]} != 0 ] && error "mdsrate file creation failed, aborting"
else
log "===== $0 ### 1 NODE LOOKUPS ###"
echo "+" ${COMMAND}
- mpi_run -np 1 -machinefile ${MACHINEFILE} ${COMMAND} | tee ${LOG}
+ mpi_run -np 1 ${MACHINEFILE_OPTION} ${MACHINEFILE} ${COMMAND} | tee ${LOG}
if [ ${PIPESTATUS[0]} != 0 ]; then
[ -f $LOG ] && sed -e "s/^/log: /" $LOG
else
log "===== $0 ### ${NUM_CLIENTS} NODES LOOKUPS ###"
echo "+" ${COMMAND}
- mpi_run -np ${NUM_CLIENTS} -machinefile ${MACHINEFILE} ${COMMAND} | tee ${LOG}
+ mpi_run -np ${NUM_CLIENTS} ${MACHINEFILE_OPTION} ${MACHINEFILE} ${COMMAND} \
+ | tee ${LOG}
if [ ${PIPESTATUS[0]} != 0 ]; then
[ -f $LOG ] && sed -e "s/^/log: /" $LOG
--nfiles ${NUM_FILES} --filefmt 'f%%d'"
echo "+" ${COMMAND}
- mpi_run -np ${NUM_CLIENTS} -machinefile ${MACHINEFILE} ${COMMAND} 2>&1
+ mpi_run -np ${NUM_CLIENTS} ${MACHINEFILE_OPTION} ${MACHINEFILE} ${COMMAND} \
+ 2>&1
[ ${PIPESTATUS[0]} != 0 ] && error "mdsrate file creation failed, aborting"
fi
log "===== $0 ### 1 NODE STAT ###"
echo "+" ${COMMAND}
- mpi_run -np 1 -machinefile ${MACHINEFILE} ${COMMAND} | tee ${LOG}
+ mpi_run -np 1 ${MACHINEFILE_OPTION} ${MACHINEFILE} ${COMMAND} | tee ${LOG}
if [ ${PIPESTATUS[0]} != 0 ]; then
[ -f $LOG ] && sed -e "s/^/log: /" $LOG
log "===== $0 ### ${NUM_CLIENTS} NODES STAT ###"
echo "+" ${COMMAND}
- mpi_run -np ${NUM_CLIENTS} -machinefile ${MACHINEFILE} ${COMMAND} | tee ${LOG}
+ mpi_run -np ${NUM_CLIENTS} ${MACHINEFILE_OPTION} ${MACHINEFILE} ${COMMAND} \
+ | tee ${LOG}
if [ ${PIPESTATUS[0]} != 0 ]; then
[ -f $LOG ] && sed -e "s/^/log: /" $LOG
--nfiles ${NUM_FILES} --filefmt 'f%%d'"
echo "+" ${COMMAND}
- mpi_run -np ${NUM_CLIENTS} -machinefile ${MACHINEFILE} ${COMMAND} 2>&1
+ mpi_run -np ${NUM_CLIENTS} ${MACHINEFILE_OPTION} ${MACHINEFILE} ${COMMAND} \
+ 2>&1
[ ${PIPESTATUS[0]} != 0 ] && error "mdsrate file creation failed, aborting"
fi
log "===== $0 ### 1 NODE STAT ###"
echo "+" ${COMMAND}
- mpi_run -np 1 -machinefile ${MACHINEFILE} ${COMMAND} | tee ${LOG}
+ mpi_run -np 1 ${MACHINEFILE_OPTION} ${MACHINEFILE} ${COMMAND} | tee ${LOG}
if [ ${PIPESTATUS[0]} != 0 ]; then
[ -f $LOG ] && sed -e "s/^/log: /" $LOG
log "===== $0 ### ${NUM_CLIENTS} NODES STAT ###"
echo "+" ${COMMAND}
- mpi_run -np ${NUM_CLIENTS} -machinefile ${MACHINEFILE} ${COMMAND} | tee ${LOG}
+ mpi_run -np ${NUM_CLIENTS} ${MACHINEFILE_OPTION} ${MACHINEFILE} ${COMMAND} \
+ | tee ${LOG}
if [ ${PIPESTATUS[0]} != 0 ]; then
[ -f $LOG ] && sed -e "s/^/log: /" $LOG
set $TRACE
MACHINEFILE=${MACHINEFILE:-$TMP/$(basename $0 .sh).machines}
generate_machine_file $NODES_TO_USE $MACHINEFILE
- mpi_run -np $(get_node_count ${NODES_TO_USE//,/ }) -machinefile $MACHINEFILE \
- $WRITE_DISJOINT -f $WRITE_DISJOINT_FILE -n $NUMLOOPS || STATUS=1
+ mpi_run -np $(get_node_count ${NODES_TO_USE//,/ }) ${MACHINEFILE_OPTION} \
+ $MACHINEFILE $WRITE_DISJOINT -f $WRITE_DISJOINT_FILE -n $NUMLOOPS \
+ || STATUS=1
else
skip_env "$0 : write_disjoint not found "
fi
# need this only if TESTDIR is not default
chmod -R 777 $TESTDIR
- mpi_run -np $((NUM_CLIENTS * THREADS_PER_CLIENT)) -machinefile ${MACHINEFILE} \
- $IOR -a POSIX -b 1g -o $TESTDIR/IOR-file -s 1 -t 1m -v -w -r 1>$LOG &
+ mpi_run -np $((NUM_CLIENTS * THREADS_PER_CLIENT)) ${MACHINEFILE_OPTION} \
+ ${MACHINEFILE} $IOR -a POSIX -b 1g -o $TESTDIR/IOR-file -s 1 -t 1m \
+ -v -w -r 1>$LOG &
load_pid=$!
wait $load_pid
if [ ${PIPESTATUS[0]} -eq 0 ]; then
}
mdsrate_cleanup () {
- mpi_run -np $1 -machinefile $2 ${MDSRATE} --unlink --nfiles $3 --dir $4 --filefmt $5 $6
+ mpi_run -np $1 ${MACHINEFILE_OPTION} $2 ${MDSRATE} --unlink --nfiles $3 \
+ --dir $4 --filefmt $5 $6
}
delayed_recovery_enabled () {