X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Ftests%2Ftest-framework.sh;h=a690b1c50f73d5da0392247a40b33f6e33d13e04;hp=4947d7d83a82c4b87b032bb6be3f5bfb960a52f9;hb=088f78e6ed20210c0ed265ff4bca6063e316bd90;hpb=062ecdedbd1d816cf75ed8e2b356f5aa34e03fa2 diff --git a/lustre/tests/test-framework.sh b/lustre/tests/test-framework.sh index 4947d7d..a690b1c 100644 --- a/lustre/tests/test-framework.sh +++ b/lustre/tests/test-framework.sh @@ -141,7 +141,7 @@ init_test_env() { export PATH=$PATH:$LUSTRE/utils/gss fi if ! echo $PATH | grep -q $LUSTRE/tests; then - export PATH=$PATH:$LUSTRE/tests + export PATH=$LUSTRE/tests:$PATH fi export LST=${LST:-"$LUSTRE/../lnet/utils/lst"} [ ! -f "$LST" ] && export LST=$(which lst) @@ -329,7 +329,7 @@ load_modules_local() { load_module obdclass/obdclass load_module ptlrpc/ptlrpc load_module ptlrpc/gss/ptlrpc_gss - [ "$USE_QUOTA" = "yes" -a "$LQUOTA" != "no" ] && load_module quota/lquota + [ "$USE_QUOTA" = "yes" -a "$LQUOTA" != "no" ] && load_module quota/lquota $LQUOTAOPTS load_module fld/fld load_module fid/fid load_module lmv/lmv @@ -1593,10 +1593,12 @@ do_nodes() { $myPDSH $rnodes $LCTL mark "$@" > /dev/null 2>&1 || : fi - if $verbose ; then + # do not replace anything from pdsh output if -N is used + # -N Disable hostname: prefix on lines of output. + if $verbose || [[ $myPDSH = *-N* ]]; then $myPDSH $rnodes "(PATH=\$PATH:$RLUSTRE/utils:$RLUSTRE/tests:/sbin:/usr/sbin; cd $RPWD; LUSTRE=\"$RLUSTRE\" $(get_env_vars) sh -c \"$@\")" else - $myPDSH $rnodes "(PATH=\$PATH:$RLUSTRE/utils:$RLUSTRE/tests:/sbin:/usr/sbin; cd $RPWD; LUSTRE=\"$RLUSTRE\" $(get_env_vars) sh -c \"$@\")" | sed -re "s/\w+:\s//g" + $myPDSH $rnodes "(PATH=\$PATH:$RLUSTRE/utils:$RLUSTRE/tests:/sbin:/usr/sbin; cd $RPWD; LUSTRE=\"$RLUSTRE\" $(get_env_vars) sh -c \"$@\")" | sed -re "s/^[^:]*: //g" fi return ${PIPESTATUS[0]} } @@ -1937,12 +1939,11 @@ init_facets_vars () { osc_ensure_active () { local facet=$1 - local type=$2 - local timeout=$3 + local timeout=$2 local period=0 while [ $period -lt $timeout ]; do - count=$(do_facet $facet "lctl dl | grep '${FSNAME}-OST.*-osc-${type}' | grep ' IN ' 2>/dev/null | wc -l") + count=$(do_facet $facet "lctl dl | grep ' IN osc ' 2>/dev/null | wc -l") if [ $count -eq 0 ]; then break fi @@ -1967,8 +1968,8 @@ init_param_vars () { log "Using TIMEOUT=$TIMEOUT" - osc_ensure_active $SINGLEMDS M $TIMEOUT - osc_ensure_active client c $TIMEOUT + osc_ensure_active $SINGLEMDS $TIMEOUT + osc_ensure_active client $TIMEOUT if [ $QUOTA_AUTO -ne 0 ]; then if [ "$ENABLE_QUOTA" ]; then @@ -2226,8 +2227,8 @@ run_e2fsck() { df > /dev/null # update statfs data on disk local cmd="$E2FSCK -d -v -f -n $MDSDB_OPT $ostdb_opt $target_dev" echo $cmd - do_node $node $cmd - local rc=${PIPESTATUS[0]} + local rc=0 + do_node $node $cmd || rc =$? [ $rc -le $FSCK_MAX_ERR ] || \ error "$cmd returned $rc, should be <= $FSCK_MAX_ERR" return 0 @@ -2271,15 +2272,14 @@ generate_db() { run_lfsck() { local cmd="$LFSCK_BIN -c -l --mdsdb $MDSDB --ostdb $OSTDB_LIST $MOUNT" echo $cmd - eval $cmd - local rc=${PIPESTATUS[0]} + local rc=0 + eval $cmd || rc=$? [ $rc -le $FSCK_MAX_ERR ] || \ error "$cmd returned $rc, should be <= $FSCK_MAX_ERR" echo "lfsck finished with rc=$rc" rm -rvf $MDSDB* $OSTDB* || true - - return $rc + return 0 } check_and_cleanup_lustre() { @@ -2287,8 +2287,7 @@ check_and_cleanup_lustre() { get_svr_devs generate_db if [ "$SKIP_LFSCK" == "no" ]; then - local rc=0 - run_lfsck || rc=$? + run_lfsck else echo "skip lfsck" fi @@ -3412,28 +3411,52 @@ get_clientosc_proc_path() { } get_lustre_version () { - local node=${1:-"mds"} - do_facet $node $LCTL get_param -n version | awk '/^lustre:/ {print $2}' + local facet=${1:-"$SINGLEMDS"} + do_facet $facet $LCTL get_param -n version | awk '/^lustre:/ {print $2}' } get_mds_version_major () { - local version=$(get_lustre_version mds) + local facet=${1:-"$SINGLEMDS"} + local version=$(get_lustre_version $facet) echo $version | awk -F. '{print $1}' } get_mds_version_minor () { - local version=$(get_lustre_version mds) + local facet=${1:-"$SINGLEMDS"} + local version=$(get_lustre_version $facet) echo $version | awk -F. '{print $2}' } +# If the 2.0 MDS was mounted on 1.8 device, then the OSC and LOV names +# used by MDT would not be changed. +# mdt lov: fsname-mdtlov +# mdt osc: fsname-OSTXXXX-osc +mds_on_old_device() { + local mds=${1:-"$SINGLEMDS"} + local major=$(get_mds_version_major $mds) + local minor=$(get_mds_version_minor $mds) + + if [ $major -ge 2 ] || [ $major -eq 1 -a $minor -gt 8 ]; then + do_facet $mds "lctl list_param osc.$FSNAME-OST*-osc \ + > /dev/null 2>&1" && return 0 + fi + return 1 +} + get_mdtosc_proc_path() { - local ost=$1 - local major=$(get_mds_version_major) - local minor=$(get_mds_version_minor) - if [ $major -le 1 -a $minor -le 8 ] ; then - echo "${ost}-osc" + local mds_facet=$1 + local ost_label=${2:-"*OST*"} + + [ "$mds_facet" = "mds" ] && mds_facet=$SINGLEMDS + local mdt_label=$(convert_facet2label $mds_facet) + local mdt_index=$(echo $mdt_label | sed -e 's/^.*-//') + + local major=$(get_mds_version_major $mds_facet) + local minor=$(get_mds_version_minor $mds_facet) + if [ $major -le 1 -a $minor -le 8 ] || mds_on_old_device $mds_facet; then + echo "${ost_label}-osc" else - echo "${ost}-osc-MDT0000" + echo "${ost_label}-osc-${mdt_index}" fi } @@ -3442,8 +3465,8 @@ get_osc_import_name() { local ost=$2 local label=$(convert_facet2label $ost) - if [ "$facet" == "mds" ]; then - get_mdtosc_proc_path $label + if [ "${facet:0:3}" = "mds" ]; then + get_mdtosc_proc_path $facet $label return 0 fi @@ -3905,9 +3928,13 @@ flvr_cnt_mdt2ost() { local flavor=$1 local cnt=0 + local mdtosc for num in `seq $MDSCOUNT`; do - output=`do_facet mds$num lctl get_param -n osc.*OST*-osc-MDT*.$PROC_CLI 2>/dev/null` + mdtosc=$(get_mdtosc_proc_path mds$num) + mdtosc=${mdtosc/-MDT*/-MDT\*} + output=$(do_facet mds$num lctl get_param -n \ + osc.$mdtosc.$PROC_CLI 2>/dev/null) tmpcnt=`count_flvr "$output" $flavor` cnt=$((cnt + tmpcnt)) done