X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Ftests%2Fracer.sh;h=42eff295cb1bbd25494c3012c4832804cbae64c5;hp=e6220c5c334d505ddca1ca63b971e3e0305e3e8f;hb=3274e573957e8b8a067ae28c3f7d7788d40f310e;hpb=4eefbc353d464dcbf24afcc575f5a9830cdc6806 diff --git a/lustre/tests/racer.sh b/lustre/tests/racer.sh index e6220c5..42eff29 100644 --- a/lustre/tests/racer.sh +++ b/lustre/tests/racer.sh @@ -1,52 +1,89 @@ #!/bin/bash -#set -vx set -e ONLY=${ONLY:-"$*"} -LUSTRE=${LUSTRE:-$(cd $(dirname $0)/..; echo $PWD)} + +LUSTRE=${LUSTRE:-$(dirname $0)/..} . $LUSTRE/tests/test-framework.sh init_test_env $@ -. ${CONFIG:=$LUSTRE/tests/cfg/$NAME.sh} init_logging +build_test_filter + racer=$LUSTRE/tests/racer/racer.sh echo racer: $racer with $MDSCOUNT MDTs if [ "$SLOW" = "no" ]; then - DURATION=${DURATION:-300} + DURATION=${DURATION:-300} else - DURATION=${DURATION:-900} + DURATION=${DURATION:-900} fi MOUNT_2=${MOUNT_2:-"yes"} -build_test_filter check_and_setup_lustre CLIENTS=${CLIENTS:-$HOSTNAME} RACERDIRS=${RACERDIRS:-"$DIR $DIR2"} echo RACERDIRS=$RACERDIRS -if ((MDSCOUNT > 1 && - $(lustre_version_code $SINGLEMDS) >= $(version_code 2.8.0))); then +RACER_FAILOVER=${RACER_FAILOVER:-false} +FAIL_TARGETS=${FAIL_TARGETS:-"MDS OST"} +RACER_FAILOVER_PERIOD=${RACER_FAILOVER_PERIOD:-60} + +if $RACER_FAILOVER; then + declare -a victims + for target in $FAIL_TARGETS; do + victims=(${victims[@]} $(get_facets $target)) + done + echo Victim facets ${victims[@]} +fi + +#LU-4684 +RACER_ENABLE_MIGRATION=false + +if ((MDSCOUNT > 1 && "$MDS1_VERSION" >= $(version_code 2.8.0))); then RACER_ENABLE_REMOTE_DIRS=${RACER_ENABLE_REMOTE_DIRS:-true} RACER_ENABLE_STRIPED_DIRS=${RACER_ENABLE_STRIPED_DIRS:-true} RACER_ENABLE_MIGRATION=${RACER_ENABLE_MIGRATION:-true} -elif ((MDSCOUNT > 1 && - $(lustre_version_code $SINGLEMDS) >= $(version_code 2.5.0))); then +elif ((MDSCOUNT > 1 && "$MDS1_VERSION" >= $(version_code 2.5.0))); then RACER_ENABLE_REMOTE_DIRS=${RACER_ENABLE_REMOTE_DIRS:-true} fi -[[ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.9.54) || +[[ "$MDS1_VERSION" -lt $(version_code 2.9.54) || $(facet_fstype mgs) != zfs ]] && RACER_ENABLE_SNAPSHOT=false +[[ "$MDS1_VERSION" -le $(version_code 2.9.55) ]] && + RACER_ENABLE_PFL=false + +[[ "$MDS1_VERSION" -le $(version_code 2.10.53) ]] && + RACER_ENABLE_DOM=false + +[[ "$MDS1_VERSION" -lt $(version_code 2.10.55) ]] && + RACER_ENABLE_FLR=false + +[[ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.12.0) ]] && + RACER_ENABLE_SEL=false + RACER_ENABLE_REMOTE_DIRS=${RACER_ENABLE_REMOTE_DIRS:-false} RACER_ENABLE_STRIPED_DIRS=${RACER_ENABLE_STRIPED_DIRS:-false} RACER_ENABLE_MIGRATION=${RACER_ENABLE_MIGRATION:-false} RACER_ENABLE_SNAPSHOT=${RACER_ENABLE_SNAPSHOT:-true} -RACER_ENABLE_DOM=${RACER_ENABLE_DOM:-false} - -check_progs_installed $CLIENTS $racer || - { skip_env "$racer not found" && exit 0; } +RACER_ENABLE_PFL=${RACER_ENABLE_PFL:-true} +RACER_ENABLE_DOM=${RACER_ENABLE_DOM:-true} +RACER_ENABLE_FLR=${RACER_ENABLE_FLR:-true} +RACER_ENABLE_SEL=${RACER_ENABLE_SEL:-true} + +fail_random_facet () { + local facets=${victims[@]} + facets=${facets// /,} + + sleep $RACER_FAILOVER_PERIOD + while [ ! -f $racer_done ]; do + local facet=$(get_random_entry $facets) + facet_failover $facet + sleep $RACER_FAILOVER_PERIOD + done +} # run racer test_1() { @@ -55,6 +92,9 @@ test_1() { local clients=$CLIENTS local RDIRS local i + local racer_done=$TMP/racer_done + + rm -f $racer_done for d in ${RACERDIRS}; do is_mounted $d || continue @@ -76,17 +116,29 @@ test_1() { local rpids="" for rdir in $RDIRS; do do_nodes $clients "DURATION=$DURATION \ - MDSCOUNT=$MDSCOUNT \ + MDSCOUNT=$MDSCOUNT OSTCOUNT=$OSTCOUNT\ RACER_ENABLE_REMOTE_DIRS=$RACER_ENABLE_REMOTE_DIRS \ RACER_ENABLE_STRIPED_DIRS=$RACER_ENABLE_STRIPED_DIRS \ RACER_ENABLE_MIGRATION=$RACER_ENABLE_MIGRATION \ + RACER_ENABLE_PFL=$RACER_ENABLE_PFL \ RACER_ENABLE_DOM=$RACER_ENABLE_DOM \ + RACER_ENABLE_FLR=$RACER_ENABLE_FLR \ + RACER_MAX_CLEANUP_WAIT=$RACER_MAX_CLEANUP_WAIT \ + RACER_ENABLE_SEL=$RACER_ENABLE_SEL \ LFS=$LFS \ + LCTL=$LCTL \ $racer $rdir $NUM_RACER_THREADS" & pid=$! rpids="$rpids $pid" done + local failpid="" + if $RACER_FAILOVER; then + fail_random_facet & + failpid=$! + echo racers failpid: $failpid + fi + local lss_pids="" if $RACER_ENABLE_SNAPSHOT; then lss_gen_conf @@ -110,6 +162,12 @@ test_1() { fi done + if $RACER_FAILOVER; then + touch $racer_done + wait $failpid + rrc=$((rrc + $?)) + fi + if $RACER_ENABLE_SNAPSHOT; then killall -q lss_create.sh killall -q lss_destroy.sh