From a633afc625197c853d3da2ec6bfca94de8bcd5ac Mon Sep 17 00:00:00 2001 From: Alexey Lyashkov Date: Thu, 9 Apr 2015 22:09:59 +0300 Subject: [PATCH] LU-6429 tests: fix external journal usage add ability to specify a external journal for each target. Signed-off-by: Alexey Lyashkov Change-Id: I41005d3b78935185b3498513691fc250e9c57fe2 Reviewed-on: http://review.whamcloud.com/14426 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Andreas Dilger Reviewed-by: Oleg Drokin --- autogen.sh | 6 +-- lustre/tests/cfg/local.sh | 1 + lustre/tests/conf-sanity.sh | 3 +- lustre/tests/lfsck-performance.sh | 21 ++-------- lustre/tests/scrub-performance.sh | 2 +- lustre/tests/test-framework.sh | 86 +++++++++++++++++++++++++++------------ 6 files changed, 70 insertions(+), 49 deletions(-) diff --git a/autogen.sh b/autogen.sh index 3f5031c..f8b7741 100644 --- a/autogen.sh +++ b/autogen.sh @@ -3,13 +3,13 @@ # NOTE: Please avoid bashisms (bash specific syntax) in this script set -e - +pw="$PWD" for dir in libcfs lnet lustre snmp ; do - ACLOCAL_FLAGS="$ACLOCAL_FLAGS -I $PWD/$dir/autoconf" + ACLOCAL_FLAGS="$ACLOCAL_FLAGS -I $pw/$dir/autoconf" done libtoolize -q -aclocal -I $PWD/config $ACLOCAL_FLAGS +aclocal -I $pw/config $ACLOCAL_FLAGS autoheader automake -a -c autoconf diff --git a/lustre/tests/cfg/local.sh b/lustre/tests/cfg/local.sh index cd3647e..85f6644 100644 --- a/lustre/tests/cfg/local.sh +++ b/lustre/tests/cfg/local.sh @@ -48,6 +48,7 @@ OST_INDEX_LIST=${OST_INDEX_LIST:-} # OSTDEV1="/dev/sda" # on specific hosts with # ost1_HOST="uml2" +# ost1_JRN="/dev/sdb1" # # For ZFS, ost devices can be specified via either or both of the following: # OSTZFSDEV1="${FSNAME}-ost1/ost1" diff --git a/lustre/tests/conf-sanity.sh b/lustre/tests/conf-sanity.sh index 4686261..e84ed83 100644 --- a/lustre/tests/conf-sanity.sh +++ b/lustre/tests/conf-sanity.sh @@ -3853,8 +3853,7 @@ test_56() { MDSJOURNALSIZE=16 for num in $(seq 1 $MDSCOUNT); do - add mds${num} $(mkfs_opts mds${num} $(mdsdevname $num)) \ - --reformat $(mdsdevname $num) $(mdsvdevname $num) + reformat_mdt $num done add ost1 $(mkfs_opts ost1 $(ostdevname 1)) --index=10000 --reformat \ $(ostdevname 1) $(ostvdevname 1) diff --git a/lustre/tests/lfsck-performance.sh b/lustre/tests/lfsck-performance.sh index 3b6cc7d..0a326a0 100644 --- a/lustre/tests/lfsck-performance.sh +++ b/lustre/tests/lfsck-performance.sh @@ -137,10 +137,7 @@ test_0() { stopall do_rpc_nodes $(facet_active_host $SINGLEMDS) load_modules_local - reformat_external_journal - add ${SINGLEMDS} $(mkfs_opts ${SINGLEMDS} ${MDT_DEVNAME}) --backfstype \ - $(facet_fstype ${SINGLEMDS}) --reformat ${MDT_DEVNAME} \ - $(mdsvdevname 1) >/dev/null || error "Fail to reformat the MDS!" + format_mdt $(facet_number $SINGLEMDS) for ((i = $MINCOUNT; i <= $MAXCOUNT; i = $((i * FACTOR)))); do local nfiles=$((i - BCOUNT)) @@ -182,10 +179,7 @@ test_1() { stopall do_rpc_nodes $(facet_active_host $SINGLEMDS) load_modules_local - reformat_external_journal - add ${SINGLEMDS} $(mkfs_opts ${SINGLEMDS} ${MDT_DEVNAME}) --backfstype \ - $(facet_fstype ${SINGLEMDS}) --reformat ${MDT_DEVNAME} \ - $(mdsvdevname 1) > /dev/null || error "Fail to reformat the MDS" + reformat_mdt $(facet_number $SINGLEMDS) for ((i = $MINCOUNT_REPAIR; i <= $MAXCOUNT_REPAIR; i = $((i * FACTOR)))); do @@ -236,11 +230,7 @@ test_2() { i = $((i * FACTOR)))); do stopall do_rpc_nodes $(facet_active_host $SINGLEMDS) load_modules_local - reformat_external_journal - add ${SINGLEMDS} $(mkfs_opts ${SINGLEMDS} ${MDT_DEVNAME}) \ - --backfstype $(facet_fstype ${SINGLEMDS}) --reformat \ - ${MDT_DEVNAME} $(mdsvdevname 1) > /dev/null || - error "Fail to reformat the MDS!" + format_mdt $(facet_number $SINGLEMDS) echo "+++ start to create for ${i} files set at: $(date) +++" lfsck_create_nfiles ${i} 0 ${NTHREADS} 1 || @@ -278,10 +268,7 @@ test_3() { stopall do_rpc_nodes $(facet_active_host $SINGLEMDS) load_modules_local - reformat_external_journal - add ${SINGLEMDS} $(mkfs_opts ${SINGLEMDS} ${MDT_DEVNAME}) --backfstype \ - $(facet_fstype ${SINGLEMDS}) --reformat ${MDT_DEVNAME} \ - $(mdsvdevname 1) > /dev/null || error "Fail to reformat the MDS" + format_mdt $(facet_number $SINGLEMDS) for ((i = $inc_count; i <= $BASE_COUNT; i = $((i + inc_count)))); do local nfiles=$((i - BCOUNT)) diff --git a/lustre/tests/scrub-performance.sh b/lustre/tests/scrub-performance.sh index 26ec345..a43b860 100644 --- a/lustre/tests/scrub-performance.sh +++ b/lustre/tests/scrub-performance.sh @@ -42,7 +42,7 @@ fi stopall do_rpc_nodes $(facet_active_host $SINGLEMDS) load_modules_local -reformat_external_journal +reformat_external_journal ${SINGLEMDS} add ${SINGLEMDS} $(mkfs_opts ${SINGLEMDS} ${MDT_DEVNAME}) --backfstype ldiskfs \ --reformat ${MDT_DEVNAME} $(mdsvdevname 1) > /dev/null || exit 2 diff --git a/lustre/tests/test-framework.sh b/lustre/tests/test-framework.sh index d942691..be6d1ec 100755 --- a/lustre/tests/test-framework.sh +++ b/lustre/tests/test-framework.sh @@ -6,7 +6,6 @@ set -e #set -x export LANG=en_US -export EJOURNAL=${EJOURNAL:-""} export REFORMAT=${REFORMAT:-""} export WRITECONF=${WRITECONF:-""} export VERBOSE=${VERBOSE:-false} @@ -2935,6 +2934,12 @@ get_env_vars() { fi done + for var in VERBOSE; do + if [ -n "${!var}" ]; then + echo -n " $var=${!var}" + fi + done + if [ -n "$FSTYPE" ]; then echo -n " FSTYPE=$FSTYPE" fi @@ -3397,9 +3402,11 @@ mkfs_opts() { fs_mkfs_opts+="-O large_xattr" fi - fs_mkfs_opts+=${MDSJOURNALSIZE:+" -J size=$MDSJOURNALSIZE"} - if [ ! -z $EJOURNAL ]; then - fs_mkfs_opts+=${MDSJOURNALSIZE:+" device=$EJOURNAL"} + var=${facet}_JRN + if [ -n "${!var}" ]; then + fs_mkfs_opts+=" -J device=${!var}" + else + fs_mkfs_opts+=${MDSJOURNALSIZE:+" -J size=$MDSJOURNALSIZE"} fi fs_mkfs_opts+=${MDSISIZE:+" -i $MDSISIZE"} fi @@ -3410,7 +3417,12 @@ mkfs_opts() { opts+=${OSSCAPA:+" --param=ost.capa=$OSSCAPA"} if [ $fstype == ldiskfs ]; then - fs_mkfs_opts+=${OSTJOURNALSIZE:+" -J size=$OSTJOURNALSIZE"} + var=${facet}_JRN + if [ -n "${!var}" ]; then + fs_mkfs_opts+=" -J device=${!var}" + else + fs_mkfs_opts+=${OSTJOURNALSIZE:+" -J size=$OSTJOURNALSIZE"} + fi fi fi @@ -3455,39 +3467,63 @@ check_ost_indices() { done } -formatall() { +format_mgs() { + local quiet + + if ! $VERBOSE; then + quiet=yes + fi + echo "Format mgs: $(mgsdevname)" + reformat_external_journal mgs + add mgs $(mkfs_opts mgs $(mgsdevname)) --reformat \ + $(mgsdevname) $(mgsvdevname) ${quiet:+>/dev/null} || exit 10 +} + +format_mdt() { + local num=$1 local quiet if ! $VERBOSE; then quiet=yes fi + echo "Format mds$num: $(mdsdevname $num)" + reformat_external_journal mds$num + add mds$num $(mkfs_opts mds$num $(mdsdevname ${num})) \ + --reformat $(mdsdevname $num) $(mdsvdevname $num) \ + ${quiet:+>/dev/null} || exit 10 +} + +format_ost() { + local num=$1 + + if ! $VERBOSE; then + quiet=yes + fi + echo "Format ost$num: $(ostdevname $num)" + reformat_external_journal ost$num + add ost$num $(mkfs_opts ost$num $(ostdevname ${num})) \ + --reformat $(ostdevname $num) $(ostvdevname ${num}) \ + ${quiet:+>/dev/null} || exit 10 +} +formatall() { stopall # We need ldiskfs here, may as well load them all load_modules [ "$CLIENTONLY" ] && return echo Formatting mgs, mds, osts if ! combined_mgs_mds ; then - echo "Format mgs: $(mgsdevname)" - add mgs $(mkfs_opts mgs $(mgsdevname)) --reformat \ - $(mgsdevname) $(mgsvdevname) ${quiet:+>/dev/null} || - exit 10 + format_mgs fi for num in $(seq $MDSCOUNT); do - echo "Format mds$num: $(mdsdevname $num)" - add mds$num $(mkfs_opts mds$num $(mdsdevname ${num})) \ - --reformat $(mdsdevname $num) $(mdsvdevname $num) \ - ${quiet:+>/dev/null} || exit 10 + format_mdt $num done export OST_INDICES=($(hostlist_expand "$OST_INDEX_LIST")) check_ost_indices for num in $(seq $OSTCOUNT); do - echo "Format ost$num: $(ostdevname $num)" - add ost$num $(mkfs_opts ost$num $(ostdevname ${num})) \ - --reformat $(ostdevname $num) $(ostvdevname ${num}) \ - ${quiet:+>/dev/null} || exit 10 + format_ost $num done } @@ -6901,12 +6937,14 @@ generate_string() { reformat_external_journal() { local facet=$1 + local var - if [ ! -z ${EJOURNAL} ]; then + var=${facet}_JRN + if [ -n "${!var}" ]; then local rcmd="do_facet $facet" - echo "reformat external journal on $facet:${EJOURNAL}" - ${rcmd} mke2fs -O journal_dev ${EJOURNAL} || return 1 + echo "reformat external journal on $facet:${!var}" + ${rcmd} mke2fs -O journal_dev ${!var} || return 1 fi } @@ -6947,13 +6985,9 @@ mds_backup_restore() { ${rcmd} tar zcf $metadata -C $mntpt/ . > /dev/null 2>&1 || return 3 # step 6: umount ${rcmd} umount -d $mntpt || return 4 - # step 7: reformat external journal if needed - reformat_external_journal $facet || return 5 # step 8: reformat dev echo "reformat new device" - add $facet $(mkfs_opts $facet ${devname}) --backfstype ldiskfs \ - --reformat ${devname} $(mdsvdevname $(facet_number $facet)) \ - > /dev/null || exit 6 + format_mdt $(facet_number $facet) # step 9: mount dev ${rcmd} mount -t ldiskfs $opts $devname $mntpt || return 7 # step 10: restore metadata -- 1.8.3.1