fi
# check MDT too
- local MPROC="osc.$FSNAME-OST0001-osc-[M]*.active"
+ local mdtosc=$(get_mdtosc_proc_path $SINGLEMDS $FSNAME-OST0001)
+ mdtosc=${mdtosc/-MDT*/-MDT\*}
+ local MPROC="osc.$mdtosc.active"
local MAX=30
local WAIT=0
while [ 1 ]; do
test_61()
{
- local cflags='osc.*-OST0000-osc-MDT*.connect_flags'
+ local mdtosc=$(get_mdtosc_proc_path $SINGLEMDS $FSNAME-OST0000)
+ mdtosc=${mdtosc/-MDT*/-MDT\*}
+ local cflags="osc.$mdtosc.connect_flags"
do_facet $SINGLEMDS "lctl get_param -n $cflags" |grep -q skip_orphan
[ $? -ne 0 ] && skip "don't have skip orphan feature" && return
do_facet client dd if=/dev/zero of=$f bs=4k count=1 || return 3
cancel_lru_locks osc
# fail ost2 and read from ost1
- local osc2dev=`do_facet $SINGLEMDS "lctl get_param -n devices | grep ${ost2_svc}-osc-MDT0000" | awk '{print $1}'`
+ local mdtosc=$(get_mdtosc_proc_path $SINGLEMDS $ost2_svc)
+ local osc2dev=$(do_facet $SINGLEMDS "lctl get_param -n devices" | \
+ grep $mdtosc | awk '{print $1}')
[ -z "$osc2dev" ] && echo "OST: $ost2_svc" && lctl get_param -n devices && return 4
do_facet $SINGLEMDS $LCTL --device $osc2dev deactivate || return 1
do_facet client dd if=$f of=/dev/null bs=4k count=1 || return 3
run_test 48 "MDS->OSC failure during precreate cleanup (2824)"
test_50() {
- local oscdev=`do_facet $SINGLEMDS lctl get_param -n devices | grep ${ost1_svc}-osc-MDT0000 | awk '{print $1}'`
+ local mdtosc=$(get_mdtosc_proc_path $SINGLEMDS $ost1_svc)
+ local oscdev=$(do_facet $SINGLEMDS "lctl get_param -n devices" | \
+ grep $mdtosc | awk '{print $1}')
[ "$oscdev" ] || return 1
do_facet $SINGLEMDS $LCTL --device $oscdev recover || return 2
do_facet $SINGLEMDS $LCTL --device $oscdev recover || return 3
# exhaust precreations on ost1
local OST=$(lfs osts | grep ^0": " | awk '{print $2}' | sed -e 's/_UUID$//')
- local mdtosc=$(get_mdtosc_proc_path $OST)
- local last_id=$(do_facet mds lctl get_param -n osc.$mdtosc.prealloc_last_id)
- local next_id=$(do_facet mds lctl get_param -n osc.$mdtosc.prealloc_next_id)
+ local mdtosc=$(get_mdtosc_proc_path mds $OST)
+ local last_id=$(do_facet mds lctl get_param -n \
+ osc.$mdtosc.prealloc_last_id)
+ local next_id=$(do_facet mds lctl get_param -n \
+ osc.$mdtosc.prealloc_next_id)
mkdir -p $DIR/$tdir/${OST}
lfs setstripe $DIR/$tdir/${OST} -o 0 -c 1 || error "setstripe"
sed -e 's/_UUID$//;s/^.*-//')
# on the mdt's osc
- local last_id=$(do_facet mds${MDSIDX} lctl get_param -n osc.*${OST}-osc-${MDT_INDEX}.prealloc_last_id)
- local next_id=$(do_facet mds${MDSIDX} lctl get_param -n osc.*${OST}-osc-${MDT_INDEX}.prealloc_next_id)
+ local mdtosc_proc1=$(get_mdtosc_proc_path mds${MDSIDX} $OST)
+ local last_id=$(do_facet mds${MDSIDX} lctl get_param -n \
+ osc.$mdtosc_proc1.prealloc_last_id)
+ local next_id=$(do_facet mds${MDSIDX} lctl get_param -n \
+ osc.$mdtosc_proc1.prealloc_next_id)
- do_facet mds${MDSIDX} lctl get_param osc.*OST*-osc-${MDT_INDEX}.prealloc*
+ local mdtosc_proc2=$(get_mdtosc_proc_path mds${MDSIDX})
+ do_facet mds${MDSIDX} lctl get_param osc.$mdtosc_proc2.prealloc*
mkdir -p $DIR/$tdir/${OST}
$SETSTRIPE $DIR/$tdir/${OST} -i $OSTIDX -c 1
do_facet ost$((OSTIDX + 1)) lctl set_param fail_loc=0x215
echo "Creating to objid $last_id on ost $OST..."
createmany -o $DIR/$tdir/${OST}/f $next_id $((last_id - next_id + 2))
- do_facet mds${MDSIDX} lctl get_param osc.*OST*-osc-${MDT_INDEX}.prealloc*
+ do_facet mds${MDSIDX} lctl get_param osc.$mdtosc_proc2.prealloc*
do_facet ost$((OSTIDX + 1)) lctl set_param fail_loc=$FAILLOC
sleep_maxage
}
[ "$OSTCOUNT" -lt "2" ] && skip_env "$OSTCOUNT < 2 OSTs -- skipping" && return
remote_mds_nodsh && skip "remote MDS with nodsh" && return
- local last_id=$(do_facet $SINGLEMDS lctl get_param -n osc.*0000-osc-MDT0000.prealloc_last_id)
- local next_id=$(do_facet $SINGLEMDS lctl get_param -n osc.*0000-osc-MDT0000.prealloc_next_id)
+ local mdtosc=$(get_mdtosc_proc_path $SINGLEMDS $FSNAME-OST0000)
+ local last_id=$(do_facet $SINGLEMDS lctl get_param -n \
+ osc.$mdtosc.prealloc_last_id)
+ local next_id=$(do_facet $SINGLEMDS lctl get_param -n \
+ osc.$mdtosc.prealloc_next_id)
local fcount=$((last_id - next_id))
[ $fcount -eq 0 ] && skip "not enough space on OST0" && return
[ $fcount -gt $OSTCOUNT ] && fcount=$OSTCOUNT
local ostnum
# only test MDT0000
- for value in $(do_facet $SINGLEMDS lctl get_param osc.*-osc-MDT0000.prealloc_last_id) ; do
+ local mdtosc=$(get_mdtosc_proc_path $SINGLEMDS)
+ for value in $(do_facet $SINGLEMDS lctl get_param osc.$mdtosc.prealloc_last_id) ; do
param=`echo ${value[0]} | cut -d "=" -f1`
ostname=`echo $param | cut -d "." -f2 | cut -d - -f 1-2`
mds_last=$(do_facet $SINGLEMDS lctl get_param -n $param)
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
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
}
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
}
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
{
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