# output: prints version string to stdout in (up to 4) dotted-decimal values
lustre_build_version() {
local facet=${1:-client}
- local ver
-
local ver=$(do_facet $facet "$LCTL get_param -n version 2>/dev/null ||
$LCTL lustre_build_version 2>/dev/null ||
$LCTL --version 2>/dev/null | cut -d' ' -f2")
- local lver=$(egrep -i "lustre: |version: " <<<$ver | head -n 1)
+ local lver=$(egrep -i "lustre: |version: " <<<"$ver" | head -n 1)
[ -n "$lver" ] && ver="$lver"
- sed -e 's/.*: //' -e 's/^v//' -e 's/-.*//' -e 's/_/./g' <<<$ver |
+ sed -e 's/[^:]*: //' -e 's/^v//' -e 's/[ -].*//' -e 's/_/./g' <<<$ver |
cut -d. -f1-4
}
LNETLND="socklnd/ksocklnd"
esac
fi
- load_module ../lnet/klnds/$LNETLND
- load_module obdclass/obdclass
- load_module ptlrpc/ptlrpc
- load_module ptlrpc/gss/ptlrpc_gss
- load_module fld/fld
- load_module fid/fid
- load_module lmv/lmv
- load_module mdc/mdc
- load_module osc/osc
- load_module lov/lov
- load_module mgc/mgc
- load_module obdecho/obdecho
+ load_module ../lnet/klnds/$LNETLND
+ load_module obdclass/obdclass
+ load_module ptlrpc/ptlrpc
+ load_module ptlrpc/gss/ptlrpc_gss
+ load_module fld/fld
+ load_module fid/fid
+ load_module lmv/lmv
+ load_module osc/osc
+ load_module mdc/mdc
+ load_module lov/lov
+ load_module mgc/mgc
+ load_module obdecho/obdecho
if ! client_only; then
SYMLIST=/proc/kallsyms
grep -q crc16 $SYMLIST ||
local size=0
case $fstype in
ldiskfs) size=50;; # largest seen is 44, leave some headroom
- zfs) size=400;; # largest seen is 384
+ zfs) size=512;; # largest seen is 512
esac
echo -n $size
fi
}
+# Mount the file system on the MGS
+mount_mgs_client() {
+ do_facet mgs "mkdir -p $MOUNT"
+ zconf_mount $mgs_HOST $MOUNT $MOUNT_OPTS ||
+ error "unable to mount $MOUNT on MGS"
+}
+
+# Unmount the file system on the MGS
+umount_mgs_client() {
+ zconf_umount $mgs_HOST $MOUNT
+ do_facet mgs "rm -rf $MOUNT"
+}
+
# nodes is comma list
sanity_mount_check_nodes () {
local nodes=$1
sync_all_data() {
do_nodes $(comma_list $(mdts_nodes)) \
- "lctl set_param -n osd*.*MDT*.force_sync=1"
+ "lctl set_param -n os[cd]*.*MDT*.force_sync=1"
do_nodes $(comma_list $(osts_nodes)) \
"lctl set_param -n osd*.*OS*.force_sync=1" 2>&1 |
grep -v 'Found no match'
mds2sync=$(comma_list $mds2sync)
# sync MDS transactions
- do_nodes $mds2sync "$LCTL set_param -n osd*.*MD*.force_sync 1"
+ do_nodes $mds2sync "$LCTL set_param -n os[cd]*.*MD*.force_sync 1"
# wait till all changes are sent and commmitted by OSTs
# for ldiskfs space is released upon execution, but DMU
}
formatall() {
- stopall
+ stopall -f
# Set hostid for ZFS/SPL zpool import protection
# (Assumes MDS version is also OSS version)
if [ $(lustre_version_code $SINGLEMDS) -ge $(version_code 2.8.54) ];
save_lustre_params() {
local facets=$1
local facet
- local nodes
- local node
+ local facet_svc
for facet in ${facets//,/ }; do
- node=$(facet_active_host $facet)
- [[ *\ $node\ * = " $nodes " ]] && continue
- nodes="$nodes $node"
-
- do_node $node "$LCTL get_param $2 |
- while read s; do echo $facet \\\$s; done"
+ facet_svc=$(facet_svc $facet)
+ do_facet $facet \
+ "params=\\\$($LCTL get_param $2);
+ [[ -z \\\"$facet_svc\\\" ]] && param= ||
+ param=\\\$(grep $facet_svc <<< \\\"\\\$params\\\");
+ [[ -z \\\$param ]] && param=\\\"\\\$params\\\";
+ while read s; do echo $facet \\\$s;
+ done <<< \\\"\\\$param\\\""
done
}
local parent=$(dirname $path)
[ -d $path ] && return 0
- [ ! -d ${parent} ] && mkdir -p ${parent}
+ if [ ! -d ${parent} ]; then
+ mkdir -p ${parent} ||
+ error "mkdir parent '$parent' failed"
+ fi
fi
if [ $MDSCOUNT -le 1 ]; then
- mkdir $path
+ mkdir $path || error "mkdir '$path' failed"
else
local test_num=$(echo $testnum | sed -e 's/[^0-9]*//g')
local mdt_index
mdt_index=$stripe_index
fi
echo "striped dir -i$mdt_index -c$stripe_count $path"
- $LFS setdirstripe -i$mdt_index -c$stripe_count $path
+ $LFS mkdir -i$mdt_index -c$stripe_count $path ||
+ error "mkdir -i $mdt_index -c$stripe_count $path failed"
fi
}