OST=$(lfs osts | grep ${OSTIDX}": " | \
awk '{print $2}' | sed -e 's/_UUID$//')
# on the mdt's osc
- last_id=$(do_facet mds lctl get_param -n osc.${OST}-osc.prealloc_last_id)
- next_id=$(do_facet mds lctl get_param -n osc.${OST}-osc.prealloc_next_id)
+ local mdtosc=$(get_mdtosc_proc_path $OST)
+ last_id=$(do_facet mds lctl get_param -n osc.$mdtosc.prealloc_last_id)
+ next_id=$(do_facet mds lctl get_param -n osc.$mdtosc.prealloc_next_id)
mkdir -p $DIR/d27/${OST}
$SETSTRIPE $DIR/d27/${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/d27/${OST}/f $next_id $((last_id - next_id + 2))
- do_facet mds "lctl get_param -n osc.${OST}-osc.prealloc*" | grep '[0-9]'
+ do_facet mds "lctl get_param -n osc.$mdtosc.prealloc*" | grep '[0-9]'
reset_enospc $2
}
test_57a() {
remote_mds_nodsh && skip "remote MDS with nodsh" && return
- local MNTDEV="mds.*.mntdev"
+ local MNTDEV=$(get_mds_mntdev_proc_path)
DEV=$(do_facet mds lctl get_param -n $MNTDEV)
[ -z "$DEV" ] && error "can't access $MNTDEV"
for DEV in $(do_facet mds lctl get_param -n $MNTDEV); do
$GETSTRIPE $FILE1 2>&1 | grep -q "no stripe" || error "$FILE1 has an EA"
$GETSTRIPE $FILEN 2>&1 | grep -q "no stripe" || error "$FILEN has an EA"
- local MDSFREE=$(do_facet mds lctl get_param -n mds.*.kbytesfree)
+ local fsstat_dev=$(get_mds_fsstat_proc_path)
+ local MDSFREE=$(do_facet mds lctl get_param -n $fsstat_dev.*.kbytesfree)
local MDCFREE=$(lctl get_param -n mdc.*.kbytesfree | head -n 1)
echo "opening files to create objects/EAs"
local FILE
$GETSTRIPE $FILEN | grep -q "obdidx" || error "$FILEN missing EA"
sleep 1 # make sure we get new statfs data
- local MDSFREE2=$(do_facet mds lctl get_param -n mds.*.kbytesfree)
+ local MDSFREE2=$(do_facet mds lctl get_param -n $fsstat_dev.*.kbytesfree)
local MDCFREE2=$(lctl get_param -n mdc.*.kbytesfree | head -n 1)
if [ "$MDCFREE2" -lt "$((MDCFREE - 8))" ]; then
if [ "$MDSFREE" != "$MDSFREE2" ]; then
[ "$FSTYPE" != "ldiskfs" ] && skip "not needed for FSTYPE=$FSTYPE" && return 0
remote_mds_nodsh && skip "remote MDS with nodsh" && return
- DEV=$(basename $(do_facet mds lctl get_param -n mds.*.mntdev))
+ local MNTDEV=$(get_mds_mntdev_proc_path)
+ DEV=$(basename $(do_facet mds lctl get_param -n $MNTDEV))
[ -z "$DEV" ] && error "can't access mds mntdev"
EFBIG=27
LDPROC=/proc/fs/ldiskfs/$DEV/max_dir_size
return 0
}
+mdtlov=$(get_mdtlov_proc_path $FSNAME)
+
test_200a() {
[ -z "$(lctl get_param -n mdc.*.connect_flags | grep pools)" ] &&
skip "missing pools support on server" && return
remote_mds_nodsh && skip "remote MDS with nodsh" && return
do_facet mgs $LCTL pool_new $FSNAME.$POOL
- do_facet mgs $LCTL get_param -n lov.$FSNAME-mdtlov.pools.$POOL
+ do_facet mgs $LCTL get_param -n lov.$mdtlov.pools.$POOL
[ $? == 0 ] || error "Pool creation of $POOL failed"
}
run_test 200a "Create new pool =========================================="
$TGTPOOL_MAX | tr '\n' ' ')
do_facet mgs $LCTL pool_add $FSNAME.$POOL \
$FSNAME-OST[$TGTPOOL_FIRST-$TGTPOOL_MAX/$TGTPOOL_STEP]_UUID
- res=$(do_facet mgs $LCTL get_param -n lov.$FSNAME-mdtlov.pools.$POOL |
+ res=$(do_facet mgs $LCTL get_param -n lov.$mdtlov.pools.$POOL |
sort | tr '\n' ' ')
[ "$res" = "$TGT" ] || error "Pool ($res) do not match requested ($TGT)"
}
[ -z "$(lctl get_param -n mdc.*.connect_flags | grep pools)" ] &&
skip "missing pools support on server" && return
remote_mds_nodsh && skip "remote MDS with nodsh" && return
- TGT=$(do_facet mgs $LCTL get_param -n lov.$FSNAME-mdtlov.pools.$POOL |
+ TGT=$(do_facet mgs $LCTL get_param -n lov.$mdtlov.pools.$POOL |
head -1)
do_facet mgs $LCTL pool_remove $FSNAME.$POOL $TGT
- res=$(do_facet mgs $LCTL get_param -n lov.$FSNAME-mdtlov.pools.$POOL |
+ res=$(do_facet mgs $LCTL get_param -n lov.$mdtlov.pools.$POOL |
grep $TGT)
[ "$res" = "" ] || error "$TGT not removed from $FSNAME.$POOL"
}
[ -z "$(lctl get_param -n mdc.*.connect_flags | grep pools)" ] &&
skip "missing pools support on server" && return
remote_mds_nodsh && skip "remote MDS with nodsh" && return
- for TGT in $(do_facet mgs $LCTL get_param -n lov.$FSNAME-mdtlov.pools.$POOL); do
+ for TGT in $(do_facet mgs $LCTL get_param -n lov.$mdtlov.pools.$POOL); do
do_facet mgs $LCTL pool_remove $FSNAME.$POOL $TGT
done
- res=$(do_facet mgs $LCTL get_param -n lov.$FSNAME-mdtlov.pools.$POOL)
+ res=$(do_facet mgs $LCTL get_param -n lov.$mdtlov.pools.$POOL)
[ "$res" = "" ] || error "Pool $FSNAME.$POOL cannot be drained"
}
run_test 200h "Remove all targets from a pool =========================="
skip "missing pools support on server" && return
remote_mds_nodsh && skip "remote MDS with nodsh" && return
do_facet mgs $LCTL pool_destroy $FSNAME.$POOL
- res=$(do_facet mgs "$LCTL get_param -n lov.$FSNAME-mdtlov.pools.$POOL 2>/dev/null")
+ res=$(do_facet mgs "$LCTL get_param -n lov.$mdtlov.pools.$POOL 2>/dev/null")
[ "$res" = "" ] || error "Pool $FSNAME.$POOL is not destroyed"
}
run_test 200i "Remove a pool ============================================"
do_facet mds "lctl get_param -n mds.${mds_svc}.stale_export_age" > /dev/null 2>&1
}
+################################################################################
+# The following functions are used to enable interop testing between
+# 1.8 and 2.0. The lprocfs layout changed from 1.8 to 2.0 as the followings:
+# mds -> mdt
+# {blocksize filesfree filestotal fstype kbytesavail kbytesfree kbytestotal mntdev} moved from mds to osd
+# mdt lov: fsname-mdtlov -> fsname-MDTXXXX-mdtlov
+# mdt osc: fsname-OSTXXXX-osc -> fsname-OSTXXXX-osc-MDTXXXX
+################################################################################
+
+get_lustre_version () {
+ local node=${1:-"mds"}
+ do_facet $node $LCTL get_param -n version | head -n 1 | awk '{print $2}'
+}
+
+get_mds_version_major () {
+ local version=$(get_lustre_version mds)
+ echo $version | awk -F. '{print $1}'
+}
+
+get_mds_version_minor () {
+ local version=$(get_lustre_version mds)
+ echo $version | awk -F. '{print $2}'
+}
+
+get_mds_version_patch () {
+ local version=$(get_lustre_version mds)
+ echo $version | awk -F. '{print $3}'
+}
+
+get_mds_version_fix () {
+ local version=$(get_lustre_version mds)
+ echo $version | awk -F. '{print $4}'
+}
+
+get_mds_fsstat_proc_path() {
+ local major=$(get_mds_version_major)
+ local minor=$(get_mds_version_minor)
+ if [ $major -le 1 -a $minor -le 8 ] ; then
+ echo "mds"
+ else
+ echo "osd"
+ fi
+}
+
+get_mds_mntdev_proc_path() {
+ local fsstat_dev=$(get_mds_fsstat_proc_path)
+ echo "$fsstat_dev.*.mntdev"
+}
+
+get_mdtlov_proc_path() {
+ local fsname=$1
+ local major=$(get_mds_version_major)
+ local minor=$(get_mds_version_minor)
+ if [ $major -le 1 -a $minor -le 8 ] ; then
+ echo "$fsname-mdtlov"
+ else
+ echo "$fsname-MDT0000-mdtlov"
+ fi
+}
+
+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"
+ else
+ echo "${ost}-osc-MDT0000"
+ fi
+}