#!/bin/bash
+# -*- mode: Bash; tab-width: 4; indent-tabs-mode: t; -*-
+# vim:shiftwidth=4:softtabstop=4:tabstop=4:
set -e
remote_mds_nodsh && log "SKIP: remote MDS with nodsh" && exit 0
-[ -n "$CLIENTS" ] || { skip_env "$0: Need two or more clients" && exit 0; }
-[ $CLIENTCOUNT -ge 2 ] || \
- { skip_env "$0: Need two or more remote clients, have $CLIENTCOUNT" && exit 0; }
+[ -z "$CLIENTS" ] && skip_env "$TESTSUITE: Need two or more clients" && exit 0
+[ $CLIENTCOUNT -lt 2 ] &&
+ skip_env "$TESTSUITE: Need 2+ clients, have only $CLIENTCOUNT" && exit 0
#
[ "$SLOW" = "no" ] && EXCEPT_SLOW=""
# a half of clients by default
increment=${INCREMENT:-$(( CLIENTCOUNT / 2 ))}
- machinefile=${MACHINEFILE:-$TMP/$(basename $0 .sh).machines}
+ machinefile=${MACHINEFILE:-$TMP/$TESTSUITE.machines}
local LOG=$TMP/${TESTSUITE}_$tfile
local var=${SINGLEMDS}_svc
local num=$increment
- while [ $num -le $CLIENTCOUNT ]; do
- list=$(comma_list ${nodes[@]:0:$num})
+ while [ $num -le $CLIENTCOUNT ]; do
+ list=$(comma_list ${nodes[@]:0:$num})
- generate_machine_file $list $machinefile ||
- { error "can not generate machinefile"; exit 1; }
+ generate_machine_file $list $machinefile ||
+ { error "can not generate machinefile"; exit 1; }
- for i in $(seq $iters); do
- mdsrate_cleanup $num $machinefile $nfiles $dir 'f%%d' --ignore
+ for i in $(seq $iters); do
+ 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} &
+ COMMAND="${MDSRATE} --create --nfiles $nfiles --dir
+ $dir --filefmt 'f%%d'"
+ mpi_run ${MACHINEFILE_OPTION} $machinefile \
+ -np $((num * nthreads)) ${COMMAND} | tee ${LOG}&
- pid=$!
- echo "pid=$pid"
+ pid=$!
+ echo "pid=$pid"
- # 2 threads 100000 creates 117 secs
- sleep 20
+ # 2 threads 100000 creates 117 secs
+ sleep 20
- log "$i : Starting failover on $SINGLEMDS"
- facet_failover $SINGLEMDS
- if ! wait_recovery_complete $SINGLEMDS $((TIMEOUT * 10)); then
- echo "$SINGLEMDS recovery is not completed!"
- kill -9 $pid
- exit 7
- fi
+ log "$i : Starting failover on $SINGLEMDS"
+ facet_failover $SINGLEMDS
+ if ! wait_recovery_complete $SINGLEMDS \
+ $((TIMEOUT * 10)); then
+ echo "$SINGLEMDS recovery is not completed!"
+ kill -9 $pid
+ exit 7
+ fi
- duration=$(do_facet $SINGLEMDS lctl get_param -n $procfile | grep recovery_duration)
-
- res=( "${res[@]}" "$num" )
- res=( "${res[@]}" "$duration" )
- echo "RECOVERY TIME: NFILES=$nfiles number of clients: $num $duration"
- wait $pid
+ duration=$(do_facet $SINGLEMDS lctl get_param -n \
+ $procfile | grep recovery_duration)
- done
- num=$((num + increment))
- done
+ res=( "${res[@]}" "$num" )
+ res=( "${res[@]}" "$duration" )
+ echo "RECOVERY TIME: NFILES=$nfiles number of clients: $num $duration"
+ wait $pid
+ done
+ num=$((num + increment))
+ done
mdsrate_cleanup $num $machinefile $nfiles $dir 'f%%d' --ignore
run_test 3a "recovery time, $CLIENTCOUNT clients"
-complete $(basename $0) $SECONDS
+complete $SECONDS
check_and_cleanup_lustre
exit_status