test_5f() {
if combined_mgs_mds ; then
- skip "combined mgs and mds"
+ skip "needs separate mgs and mds"
return 0
fi
test_17() {
if [ $(facet_fstype $SINGLEMDS) != ldiskfs ]; then
- skip "Only applicable to ldiskfs-based MDTs"
+ skip "ldiskfs only test"
return
fi
test_18() {
if [ $(facet_fstype $SINGLEMDS) != ldiskfs ]; then
- skip "Only applicable to ldiskfs-based MDTs"
+ skip "ldiskfs only test"
return
fi
run_test 28a "set symlink parameters permanently with conf_param"
test_29() {
- [ "$OSTCOUNT" -lt "2" ] && skip_env "$OSTCOUNT < 2, skipping" && return
+ [ "$OSTCOUNT" -lt "2" ] && skip_env "needs >= 2 OSTs" && return
setup > /dev/null 2>&1
start_ost2 || error "Unable to start OST2"
sleep 10
run_test 35b "Continue reconnection retries, if the active server is busy"
test_36() { # 12743
- [ $OSTCOUNT -lt 2 ] && skip_env "skipping test for single OST" && return
+ [ $OSTCOUNT -lt 2 ] && skip_env "needs >= 2 OSTs" && return
[ "$ost_HOST" = "`hostname`" -o "$ost1_HOST" = "`hostname`" ] ||
{ skip "remote OST" && return 0; }
local rc=0
if [ $(facet_fstype $SINGLEMDS) != ldiskfs ]; then
- skip "Currently only applicable to ldiskfs-based MDTs"
+ skip "ldiskfs only test"
return
fi
run_test 50f "normal statfs one server in down"
test_50g() {
- [ "$OSTCOUNT" -lt "2" ] && skip_env "$OSTCOUNT < 2, skipping" && return
+ [ "$OSTCOUNT" -lt "2" ] && skip_env "needs >=2 OSTs" && return
setup
start_ost2 || error "Unable to start OST2"
wait_osc_import_state mds ost2 FULL
# LU-642
test_50h() {
# prepare MDT/OST, make OSC inactive for OST1
- [ "$OSTCOUNT" -lt "2" ] && skip_env "$OSTCOUNT < 2, skipping" && return
+ [ "$OSTCOUNT" -lt "2" ] && skip_env "needs >=2 OSTs" && return
[ $(facet_fstype ost1) == zfs ] && import_zpool ost1
do_facet ost1 "$TUNEFS --param osc.active=0 `ostdevname 1`" ||
test_50i() {
# prepare MDT/OST, make OSC inactive for OST1
- [ "$MDSCOUNT" -lt "2" ] && skip_env "$MDSCOUNT < 2, skipping" && return
+ [ "$MDSCOUNT" -lt "2" ] && skip_env "needs >= 2 MDTs" && return
load_modules
[ $(facet_fstype mds2) == zfs ] && import_zpool mds2
test_52() {
if [ $(facet_fstype $SINGLEMDS) != ldiskfs ]; then
- skip "Only applicable to ldiskfs-based MDTs"
+ skip "ldiskfs only test"
return
fi
test_54a() {
if [ $(facet_fstype $SINGLEMDS) != ldiskfs ]; then
- skip "Only applicable to ldiskfs-based MDTs"
+ skip "ldiskfs only test"
return
fi
test_54b() {
if [ $(facet_fstype $SINGLEMDS) != ldiskfs ]; then
- skip "Only applicable to ldiskfs-based MDTs"
+ skip "ldiskfs only test"
return
fi
test_55() {
if [ $(facet_fstype $SINGLEMDS) != ldiskfs ]; then
- skip "Only applicable to ldiskfs-based MDTs"
+ skip "ldiskfs only test"
return
fi
local num
if [ $(facet_fstype $SINGLEMDS) != ldiskfs ]; then
- skip "Only applicable to ldiskfs-based MDTs"
+ skip "ldiskfs only test"
return
fi
test_62() {
if [ $(facet_fstype $SINGLEMDS) != ldiskfs ]; then
- skip "Only applicable to ldiskfs-based MDTs"
+ skip "ldiskfs only test"
return
fi
test_63() {
if [ $(facet_fstype $SINGLEMDS) != ldiskfs ]; then
- skip "Only applicable to ldiskfs-based MDTs"
+ skip "ldiskfs only test"
return
fi
test_65() { # LU-2237
# Currently, the test is only valid for ldiskfs backend
[ "$(facet_fstype $SINGLEMDS)" != "ldiskfs" ] &&
- skip "non-ldiskfs backend" && return
+ skip "ldiskfs only test" && return
local devname=$(mdsdevname ${SINGLEMDS//mds/})
local brpt=$(facet_mntpt brpt)
test_78() {
[[ $(facet_fstype $SINGLEMDS) != ldiskfs ||
$(facet_fstype ost1) != ldiskfs ]] &&
- skip "only applicable to ldiskfs-based MDTs and OSTs" && return
+ skip "ldiskfs only test" && return
# reformat the Lustre filesystem with a smaller size
local saved_MDSCOUNT=$MDSCOUNT
test_81() { # LU-4665
[[ $(lustre_version_code $SINGLEMDS) -ge $(version_code 2.6.54) ]] ||
{ skip "Need MDS version at least 2.6.54" && return; }
- [[ $OSTCOUNT -ge 3 ]] || { skip_env "Need at least 3 OSTs" && return; }
+ [[ $OSTCOUNT -ge 3 ]] || { skip_env "needs >= 3 OSTs" && return; }
stopall
test_82a() { # LU-4665
[[ $(lustre_version_code $SINGLEMDS) -ge $(version_code 2.6.54) ]] ||
{ skip "Need MDS version at least 2.6.54" && return; }
- [[ $OSTCOUNT -ge 3 ]] || { skip_env "Need at least 3 OSTs" && return; }
+ [[ $OSTCOUNT -ge 3 ]] || { skip_env "needs >= 3 OSTs" && return; }
stopall
test_82b() { # LU-4665
[[ $(lustre_version_code $SINGLEMDS) -ge $(version_code 2.6.54) ]] ||
{ skip "Need MDS version at least 2.6.54" && return; }
- [[ $OSTCOUNT -ge 4 ]] || { skip_env "Need at least 4 OSTs" && return; }
+ [[ $OSTCOUNT -ge 4 ]] || { skip_env "needs >= 4 OSTs" && return; }
stopall
[[ $(lustre_version_code ost1) -ge $(version_code 2.6.91) ]] ||
{ skip "Need OST version at least 2.6.91" && return 0; }
if [ $(facet_fstype ost1) != ldiskfs ]; then
- skip "Only applicable to ldiskfs-based OSTs"
+ skip "ldiskfs only test"
return
fi
[[ $(lustre_version_code $SINGLEMDS1) -ge $(version_code 2.9.51) ]] ||
{ skip "Need MDS version at least 2.9.51" && return; }
[[ $(facet_fstype $SINGLEMDS) != ldiskfs ]] &&
- { skip "Only applicable to ldiskfs-based MDTs" && return; }
+ { skip "ldiskfs only test" && return; }
[[ $OSTCOUNT -gt 59 ]] &&
{ skip "Ignore wide striping situation" && return; }
test_99()
{
[[ $(facet_fstype ost1) != ldiskfs ]] &&
- { skip "Only applicable to ldiskfs-based OSTs" && return; }
+ { skip "ldiskfs only test" && return; }
[[ $(lustre_version_code ost1) -ge $(version_code 2.8.57) ]] ||
{ skip "Need OST version at least 2.8.57" && return 0; }
############### Fifth Failure Mode ###############
test_5() {
- [ $OSTCOUNT -lt 2 ] && skip_env "$OSTCOUNT < 2, not enough OSTs" && return 0
+ [ $OSTCOUNT -lt 2 ] && skip_env "needs >= 2 OSTs" && return 0
- echo "Fifth Failure Mode: OST/OST `date`"
+ echo "Fifth Failure Mode: OST/OST `date`"
- #Create files
- echo "Verify Lustre filesystem is up and running"
- [ -z "$(mounted_lustre_filesystems)" ] && error "Lustre is not running"
+ #Create files
+ echo "Verify Lustre filesystem is up and running"
+ [ -z "$(mounted_lustre_filesystems)" ] && error "Lustre is not running"
+
+ clients_up
+ #OST Portion
+ shutdown_facet ost1
+ reboot_facet ost1
- clients_up
-
- #OST Portion
- shutdown_facet ost1
- reboot_facet ost1
-
#Check FS
echo "Test Lustre stability after OST failure"
clients_up &
DFPIDA=$!
sleep 5
-
+
#OST Portion
shutdown_facet ost2
reboot_facet ost2
start_ost 1
wait_for_facet ost2
start_ost 2
-
+
clients_recover_osts ost1
clients_recover_osts ost2
sleep $TIMEOUT
test_1 () {
[ $(facet_fstype $SINGLEMDS) != ldiskfs ] &&
- skip "Only applicable to ldiskfs-based nodes" && return
+ skip "ldiskfs only test" && return
local dev
for num in $(seq $OSTCOUNT); do
dev=$(ostdevname $num)
run_test 7c "namespace LFSCK performance (repairing bad FID-in-dirent) for DNE"
test_8() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "We need at least 2 MDSes for this test" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
[ $INCFACTOR -gt 25 ] && INCFACTOR=25
init_vars
if [ $(facet_fstype $MMP_MDS) != ldiskfs ]; then
- skip "Only applicable to ldiskfs-based MDTs"
+ skip "ldiskfs only test"
exit
fi
if [ $(facet_fstype $MMP_OSS) != ldiskfs ]; then
- skip "Only applicable to ldiskfs-based OSTs"
+ skip "ldiskfs only test"
exit
fi
test_11() {
local POOL_ROOT=${POOL_ROOT:-$DIR/$tdir}
- [[ $OSTCOUNT -le 1 ]] && skip_env "Need at least 2 OSTs" && return
+ [[ $OSTCOUNT -le 1 ]] && skip_env "needs >= 2 OSTs" && return
create_pool_nofail $POOL
create_pool_nofail $POOL2
test_12() {
local POOL_ROOT=${POOL_ROOT:-$DIR/$tdir}
- [[ $OSTCOUNT -le 2 ]] && skip_env "Need at least 3 OSTs" && return
+ [[ $OSTCOUNT -le 2 ]] && skip_env "needs >=3 OSTs" && return
create_pool_nofail $POOL
create_pool_nofail $POOL2
run_test 12 "OST Pool Membership"
test_13() {
- [[ $OSTCOUNT -le 2 ]] && skip_env "Need at least 3 OSTs" && return
+ [[ $OSTCOUNT -le 2 ]] && skip_env "needs >= 3 OSTs" && return
local POOL_ROOT=${POOL_ROOT:-$DIR/$tdir}
local numfiles=10
run_test 13 "Striping characteristics in a pool"
test_14() {
- [[ $OSTCOUNT -le 2 ]] && skip_env "Need at least 3 OSTs" && return
+ [[ $OSTCOUNT -le 2 ]] && skip_env "needs >= 3 OSTs" && return
local POOL_ROOT=${POOL_ROOT:-$DIR/$tdir}
local numfiles=100
test_21() {
local POOL_ROOT=${POOL_ROOT:-$DIR/$tdir}
- [[ $OSTCOUNT -le 1 ]] && skip_env "Need at least 2 OSTs" && return
+ [[ $OSTCOUNT -le 1 ]] && skip_env "needs >= 2 OSTs" && return
local numfiles=12
local i=0
test_22() {
local POOL_ROOT=${POOL_ROOT:-$DIR/$tdir}
- [[ $OSTCOUNT -le 1 ]] && skip_env "Need at least 2 OSTs" && return
+ [[ $OSTCOUNT -le 1 ]] && skip_env "needs >= 2 OSTs" && return
local numfiles=100
test_23a() {
local POOL_ROOT=${POOL_ROOT:-$DIR/$tdir}
- [[ $OSTCOUNT -le 1 ]] && skip_env "Need at least 2 OSTs" && return
+ [[ $OSTCOUNT -le 1 ]] && skip_env "needs >= 2 OSTs" && return
mkdir -p $POOL_ROOT
check_runas_id $RUNAS_ID $RUNAS_GID $RUNAS || {
test_23b() {
local POOL_ROOT=${POOL_ROOT:-$DIR/$tdir}
- [[ $OSTCOUNT -le 1 ]] && skip_env "Need at least 2 OSTs" && return 0
+ [[ $OSTCOUNT -le 1 ]] && skip_env "needs >= 2 OSTs" && return 0
mkdir -p $POOL_ROOT
check_runas_id $RUNAS_ID $RUNAS_GID $RUNAS || {
test_24() {
local POOL_ROOT=${POOL_ROOT:-$DIR/$tdir}
- [[ $OSTCOUNT -le 1 ]] && skip_env "Need at least 2 OSTs" && return
+ [[ $OSTCOUNT -le 1 ]] && skip_env "needs >= 2 OSTs" && return
local server_version=$(lustre_version_code $SINGLEMDS)
[[ $server_version -ge $(version_code 2.8.56) ]] ||
run_test 25 "Create new pool and restart MDS"
test_26() {
- [[ $OSTCOUNT -le 2 ]] && skip_env "Need at least 3 OSTs" && return
+ [[ $OSTCOUNT -le 2 ]] && skip_env "needs >= 3 OSTs" && return
local dev=$(mdsdevname ${SINGLEMDS//mds/})
local POOL_ROOT=${POOL_ROOT:-$DIR/$tdir}
do_facet mgs $LCTL list_param mgs.*.ir_timeout ||
{ skip "MGS without IR support"; return 0; }
- combined_mgs_mds && skip "mgs and mds on the same target" && return 0
+ combined_mgs_mds && skip "needs separate mgs and mds" && return 0
# workaround solution to generate config log on the mds
remount_facet mds1
# the page, guarnateeing that the unlock from the RPC completion would
# assert on trying to unlock the unlocked page.
test_41() {
- [ $OSTCOUNT -lt 2 ] &&
- skip_env "skipping test 41: we don't have a second OST to test with" &&
- return
+ [ $OSTCOUNT -lt 2 ] && skip_env "needs >= 2 OSTs" && return
local f=$MOUNT/$tfile
# make sure the start of the file is ost1
test_48() {
remote_ost_nodsh && skip "remote OST with nodsh" && return 0
- [ "$OSTCOUNT" -lt "2" ] &&
- skip_env "$OSTCOUNT < 2 OSTs -- skipping" && return
+ [ "$OSTCOUNT" -lt "2" ] && skip_env "needs >= 2 OSTs" && return
replay_barrier $SINGLEMDS
createmany -o $DIR/$tfile 20 ||
run_test 12b "Restore an imported file implicitly"
test_12c() {
- [ "$OSTCOUNT" -lt "2" ] && skip_env "skipping 2-stripe test" && return
+ [ "$OSTCOUNT" -lt "2" ] && skip_env "needs >= 2 OSTs" && return
# test needs a running copytool
copytool_setup
test_2e()
{
- [ $MDSCOUNT -lt 2 ] &&
- skip "We need at least 2 MDSes for this test" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
check_mount_and_prep
run_test 11b "LFSCK can rebuild crashed last_id"
test_12a() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "We need at least 2 MDSes for test_12a" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
check_mount_and_prep
for k in $(seq $MDSCOUNT); do
run_test 15b "LFSCK can repair unmatched MDT-object/OST-object pairs (2)"
test_15c() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "We need at least 2 MDSes for this test" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
[ $(lustre_version_code $SINGLEMDS) -ge $(version_code 2.7.55) ] &&
skip "Skip the test after 2.7.55 see LU-6437" && return
run_test 18e "Find out orphan OST-object and repair it (5)"
test_18f() {
- [ $OSTCOUNT -lt 2 ] &&
- skip "The test needs at least 2 OSTs" && return
+ [ $OSTCOUNT -lt 2 ] && skip "needs >= 2 OSTs" && return
echo "#####"
echo "The target MDT-object is lost. The LFSCK should re-create the"
PATTERN_WITHOUT_HOLE="1"
test_20a() {
- [ $OSTCOUNT -lt 2 ] &&
- skip "The test needs at least 2 OSTs" && return
+ [ $OSTCOUNT -lt 2 ] && skip "needs >= 2 OSTs" && return
echo "#####"
echo "The target MDT-object and some of its OST-object are lost."
run_test 20a "Handle the orphan with dummy LOV EA slot properly"
test_20b() {
- [ $OSTCOUNT -lt 2 ] &&
- skip "The test needs at least 2 OSTs" && return
+ [ $OSTCOUNT -lt 2 ] && skip "needs >= 2 OSTs" && return
echo "#####"
echo "The target MDT-object and some of its OST-object are lost."
run_test 21 "run all LFSCK components by default"
test_22a() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "We need at least 2 MDSes for this test" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
echo "#####"
echo "The parent_A references the child directory via some name entry,"
run_test 22a "LFSCK can repair unmatched pairs (1)"
test_22b() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "We need at least 2 MDSes for this test" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
echo "#####"
echo "The parent_A references the child directory via the name entry_B,"
run_test 22b "LFSCK can repair unmatched pairs (2)"
test_23a() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "We need at least 2 MDSes for this test" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
echo "#####"
echo "The name entry is there, but the MDT-object for such name "
run_test 23c "LFSCK can repair dangling name entry (3)"
test_24() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "We need at least 2 MDSes for this test" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
echo "#####"
echo "Two MDT-objects back reference the same name entry via their"
test_25() {
[ $(facet_fstype $SINGLEMDS) != ldiskfs ] &&
- skip "Only support to inject failure on ldiskfs" && return
+ skip "ldiskfs only test" && return
echo "#####"
echo "The file type in the name entry does not match the file type"
run_test 26a "LFSCK can add the missing local name entry back to the namespace"
test_26b() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "We need at least 2 MDSes for this test" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
echo "#####"
echo "The remote name entry back referenced by the MDT-object is lost."
run_test 27a "LFSCK can recreate the lost local parent directory as orphan"
test_27b() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "We need at least 2 MDSes for this test" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
echo "#####"
echo "The remote parent referenced by the MDT-object linkEA is lost."
run_test 27b "LFSCK can recreate the lost remote parent directory as orphan"
test_28() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "The test needs at least 2 MDTs" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
echo "#####"
echo "The target name entry is lost. The LFSCK should insert the"
test_30() {
[ $(facet_fstype $SINGLEMDS) != ldiskfs ] &&
- skip "Only support backend /lost+found for ldiskfs" && return
+ skip "ldiskfs only test" && return
echo "#####"
echo "The namespace LFSCK will move the orphans from backend"
run_test 30 "LFSCK can recover the orphans from backend /lost+found"
test_31a() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "The test needs at least 2 MDTs" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
echo "#####"
echo "For the name entry under a striped directory, if the name"
run_test 31a "The LFSCK can find/repair the name entry with bad name hash (1)"
test_31b() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "The test needs at least 2 MDTs" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
echo "#####"
echo "For the name entry under a striped directory, if the name"
run_test 31b "The LFSCK can find/repair the name entry with bad name hash (2)"
test_31c() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "The test needs at least 2 MDTs" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
echo "#####"
echo "For some reason, the master MDT-object of the striped directory"
run_test 31c "Re-generate the lost master LMV EA for striped directory"
test_31d() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "The test needs at least 2 MDTs" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
echo "#####"
echo "For some reason, the master MDT-object of the striped directory"
run_test 31d "Set broken striped directory (modified after broken) as read-only"
test_31e() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "The test needs at least 2 MDTs" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
echo "#####"
echo "For some reason, the slave MDT-object of the striped directory"
run_test 31e "Re-generate the lost slave LMV EA for striped directory (1)"
test_31f() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "The test needs at least 2 MDTs" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
echo "#####"
echo "For some reason, the slave MDT-object of the striped directory"
run_test 31f "Re-generate the lost slave LMV EA for striped directory (2)"
test_31g() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "The test needs at least 2 MDTs" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
echo "#####"
echo "For some reason, the stripe index in the slave LMV EA is"
run_test 31g "Repair the corrupted slave LMV EA"
test_31h() {
- [ $MDSCOUNT -lt 2 ] &&
- skip "The test needs at least 2 MDTs" && return
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
echo "#####"
echo "For some reason, the shard's name entry in the striped"
skip "Need server version at least 2.9.55" && exit 0
[[ $(facet_fstype mds1) = "ldiskfs" ]] ||
[[ $(facet_fstype ost1) = "ldiskfs" ]] &&
- skip "can't test snapshots with ldiskfs" && exit 0
+ skip "ZFS only test" && exit 0
require_dsh_mds || exit 0
require_dsh_ost || exit 0
# quota reintegration (inode limits)
test_7e() {
- [ "$MDSCOUNT" -lt "2" ] && skip "Required more MDTs" && return
+ [ "$MDSCOUNT" -lt "2" ] && skip "needs >= 2 MDTs" && return
# LU-2435: skip this quota test if underlying zfs version has not
# supported native dnode accounting
run_test 11 "Chown/chgrp ignores quota"
test_12a() {
- [ "$OSTCOUNT" -lt "2" ] && skip "skipping rebalancing test" && return
+ [ "$OSTCOUNT" -lt "2" ] && skip "needs >= 2 OSTs" && return
local blimit=22 # 22M
local blk_cnt=$((blimit - 5))
run_test 12a "Block quota rebalancing"
test_12b() {
- [ "$MDSCOUNT" -lt "2" ] && skip "skipping rebalancing test" && return
+ [ "$MDSCOUNT" -lt "2" ] && skip "needs >= 2 MDTs" && return
local ilimit=$((1024 * 2)) # 2k inodes
local TESTFILE0=$DIR/$tdir/$tfile
run_test 40b "Mv across different project ID"
test_40c() {
- [ "$MDSCOUNT" -lt "2" ] && skip "Required more MDTs" && return
+ [ "$MDSCOUNT" -lt "2" ] && skip "needs >= 2 MDTs" && return
! is_project_quota_supported &&
skip "Project quota is not supported" && return 0
fi
[ $(facet_fstype $SINGLEMDS) != "ldiskfs" ] &&
- skip "test OI scrub only for ldiskfs" && exit 0
+ skip "ldiskfs only test" && exit 0
[ $(facet_fstype ost1) != "ldiskfs" ] &&
- skip "test OI scrub only for ldiskfs" && exit 0
+ skip "ldiskfs only test" && exit 0
[[ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.2.90) ]] &&
skip "Need MDS version at least 2.2.90" && exit 0
skip "MDS 2.2.0-2.2.93 do not NUL-terminate symlinks" && return
[ "$(facet_fstype $SINGLEMDS)" != "ldiskfs" ] &&
- skip "only for ldiskfs MDT" && return 0
+ skip "ldiskfs only test" && return 0
[ $PARALLEL == "yes" ] && skip "skip parallel run" && return
skip "MDS 2.2.0-2.2.93 do not NUL-terminate symlinks" && return
[ "$(facet_fstype $SINGLEMDS)" != "ldiskfs" ] &&
- skip "only for ldiskfs MDT" && return 0
+ skip "ldiskfs only test" && return 0
[[ $MDSCOUNT -lt 2 ]] && skip "needs >= 2 MDTs" && return
run_test 27a "one stripe file"
test_27b() {
- [[ $OSTCOUNT -lt 2 ]] && skip_env "skipping 2-stripe test" && return
+ [[ $OSTCOUNT -lt 2 ]] && skip_env "needs >= 2 OSTs" && return
test_mkdir -p $DIR/d27
$LFS setstripe -c 2 $DIR/d27/f01 || error "setstripe failed"
$LFS getstripe -c $DIR/d27/f01
run_test 27l "check setstripe permissions (should return error)"
test_27m() {
- [[ $OSTCOUNT -lt 2 ]] && skip_env "$OSTCOUNT < 2 OSTs -- skipping" &&
- return
+ [[ $OSTCOUNT -lt 2 ]] && skip_env "needs >= 2 OSTs" && return
ORIGFREE=$($LCTL get_param -n lov.$FSNAME-clilov-*.kbytesavail |
head -n1)
}
test_27n() {
- [[ $OSTCOUNT -lt 2 ]] && skip_env "too few OSTs" && return
+ [[ $OSTCOUNT -lt 2 ]] && skip_env "needs >= 2 OSTs" && return
[ $PARALLEL == "yes" ] && skip "skip parallel run" && return
remote_mds_nodsh && skip "remote MDS with nodsh" && return
remote_ost_nodsh && skip "remote OST with nodsh" && return
run_test 27n "create file with some full OSTs"
test_27o() {
- [[ $OSTCOUNT -lt 2 ]] && skip_env "too few OSTs" && return
+ [[ $OSTCOUNT -lt 2 ]] && skip_env "needs >= 2 OSTs" && return
[ $PARALLEL == "yes" ] && skip "skip parallel run" && return
remote_mds_nodsh && skip "remote MDS with nodsh" && return
remote_ost_nodsh && skip "remote OST with nodsh" && return
run_test 27o "create file with all full OSTs (should error)"
test_27p() {
- [[ $OSTCOUNT -lt 2 ]] && skip_env "too few OSTs" && return
+ [[ $OSTCOUNT -lt 2 ]] && skip_env "needs >= 2 OSTs" && return
[ $PARALLEL == "yes" ] && skip "skip parallel run" && return
remote_mds_nodsh && skip "remote MDS with nodsh" && return
remote_ost_nodsh && skip "remote OST with nodsh" && return
run_test 27p "append to a truncated file with some full OSTs"
test_27q() {
- [[ $OSTCOUNT -lt 2 ]] && skip_env "too few OSTs" && return
+ [[ $OSTCOUNT -lt 2 ]] && skip_env "needs >= 2 OSTs" && return
[ $PARALLEL == "yes" ] && skip "skip parallel run" && return
remote_mds_nodsh && skip "remote MDS with nodsh" && return
remote_ost_nodsh && skip "remote OST with nodsh" && return
run_test 27q "append to truncated file with all OSTs full (should error)"
test_27r() {
- [[ $OSTCOUNT -lt 2 ]] && skip_env "too few OSTs" && return
+ [[ $OSTCOUNT -lt 2 ]] && skip_env "needs >= 2 OSTs" && return
[ $PARALLEL == "yes" ] && skip "skip parallel run" && return
remote_mds_nodsh && skip "remote MDS with nodsh" && return
remote_ost_nodsh && skip "remote OST with nodsh" && return
run_test 27t "check that utils parse path correctly"
test_27u() { # bug 4900
- [[ $OSTCOUNT -lt 2 ]] && skip_env "too few OSTs" && return
+ [[ $OSTCOUNT -lt 2 ]] && skip_env "needs >= 2 OSTs" && return
remote_mds_nodsh && skip "remote MDS with nodsh" && return
local index
local list=$(comma_list $(mdts_nodes))
run_test 27u "skip object creation on OSC w/o objects"
test_27v() { # bug 4900
- [[ $OSTCOUNT -lt 2 ]] && skip_env "too few OSTs" && return
+ [[ $OSTCOUNT -lt 2 ]] && skip_env "needs >= 2 OSTs" && return
[ $PARALLEL == "yes" ] && skip "skip parallel run" && return
remote_mds_nodsh && skip "remote MDS with nodsh" && return
remote_ost_nodsh && skip "remote OST with nodsh" && return
test_27x() {
remote_ost_nodsh && skip "remote OST with nodsh" && return
- [[ $OSTCOUNT -lt 2 ]] && skip_env "$OSTCOUNT < 2 OSTs" && return
+ [[ $OSTCOUNT -lt 2 ]] && skip_env "needs >= 2 OSTs" && return
[ $PARALLEL == "yes" ] && skip "skip parallel run" && return
OFFSET=$(($OSTCOUNT - 1))
OSTIDX=0
createmany -o $DIR/$tdir/$tfile $OSTCOUNT
for i in $(seq 0 $OFFSET); do
[ $($LFS getstripe $DIR/$tdir/$tfile$i | grep -A 10 obdidx |
- awk '{print $1}' | grep -w "$OSTIDX") ] &&
+ awk '{print $1}' | grep -w "$OSTIDX") ] &&
error "OST0 was degraded but new created file still use it"
done
do_facet ost$((OSTIDX + 1)) lctl set_param -n obdfilter.$OST.degraded 0
run_test 27x "create files while OST0 is degraded"
test_27y() {
- [[ $OSTCOUNT -lt 2 ]] &&
- skip_env "$OSTCOUNT < 2 OSTs -- skipping" && return
+ [[ $OSTCOUNT -lt 2 ]] && skip_env "needs >= 2 OSTs" && return
remote_mds_nodsh && skip "remote MDS with nodsh" && return
remote_ost_nodsh && skip "remote OST with nodsh" && return
[ $PARALLEL == "yes" ] && skip "skip parallel run" && return
run_test 43c "md5sum of copy into lustre"
test_44A() { # was test_44
- [[ $OSTCOUNT -lt 2 ]] && skip_env "skipping 2-stripe test" && return
+ [[ $OSTCOUNT -lt 2 ]] && skip_env "needs >= 2 OSTs" && return
dd if=/dev/zero of=$DIR/f1 bs=4k count=1 seek=1023
dd if=$DIR/f1 bs=4k count=1 > /dev/null
}
test_51d() {
[ $PARALLEL == "yes" ] && skip "skip parallel run" && return
- [[ $OSTCOUNT -lt 3 ]] &&
- skip_env "skipping test with few OSTs" && return
+ [[ $OSTCOUNT -lt 3 ]] && skip_env "needs >= 3 OSTs" && return
test_mkdir -p $DIR/$tdir
createmany -o $DIR/$tdir/t- 1000
$GETSTRIPE $DIR/$tdir > $TMP/$tfile
test_51e() {
if [ "$(facet_fstype $SINGLEMDS)" != ldiskfs ]; then
- skip "Only applicable to ldiskfs-based MDTs"
+ skip "ldiskfs only test"
return
fi
run_test 56v "check 'lfs find -mdt match with lfs getstripe -M' ======="
test_56w() {
- [[ $OSTCOUNT -lt 2 ]] && skip_env "$OSTCOUNT < 2 OSTs -- skipping" &&
- return
+ [[ $OSTCOUNT -lt 2 ]] && skip_env "needs >= 2 OSTs" && return
[ $PARALLEL == "yes" ] && skip "skip parallel run" && return
TDIR=$DIR/${tdir}w
test_56x() {
check_swap_layouts_support && return 0
- [[ $OSTCOUNT -lt 2 ]] &&
- skip_env "need 2 OST, skipping test" && return
+ [[ $OSTCOUNT -lt 2 ]] && skip_env "needs >= 2 OSTs" && return
local dir0=$DIR/$tdir/$testnum
test_mkdir -p $dir0 || error "creating dir $dir0"
test_56xa() {
check_swap_layouts_support && return 0
- [[ $OSTCOUNT -lt 2 ]] &&
- skip_env "need 2 OST, skipping test" && return
+ [[ $OSTCOUNT -lt 2 ]] && skip_env "needs >= 2 OSTs" && return
local dir0=$DIR/$tdir/$testnum
test_mkdir -p $dir0 || error "creating dir $dir0"
[ $PARALLEL == "yes" ] && skip "skip parallel run" && return
# note test will not do anything if MDS is not local
if [ "$(facet_fstype $SINGLEMDS)" != ldiskfs ]; then
- skip "Only applicable to ldiskfs-based MDTs"
+ skip "ldiskfs only test"
return
fi
test_57b() {
[ $PARALLEL == "yes" ] && skip "skip parallel run" && return
if [ "$(facet_fstype $SINGLEMDS)" != ldiskfs ]; then
- skip "Only applicable to ldiskfs-based MDTs"
+ skip "ldiskfs only test"
return
fi
test_65k() { # bug11679
[ $PARALLEL == "yes" ] && skip "skip parallel run" && return
- [[ $OSTCOUNT -lt 2 ]] && skip_env "too few OSTs" && return
+ [[ $OSTCOUNT -lt 2 ]] && skip_env "needs >= 2 OSTs" && return
remote_mds_nodsh && skip "remote MDS with nodsh" && return
local disable_precreate=true
test_101a() {
[ $PARALLEL == "yes" ] && skip "skip parallel run" && return
- [ $MDSCOUNT -ge 2 ] && skip "skip now for >= 2 MDTs" && return #LU-4322
+ [ $MDSCOUNT -ge 2 ] && skip "needs < 2 MDTs" && return #LU-4322
local s
local discard
local nreads=10000
test_101b() {
[ $PARALLEL == "yes" ] && skip "skip parallel run" && return
- [[ $OSTCOUNT -lt 2 ]] &&
- skip_env "skipping stride IO stride-ahead test" && return
+ [[ $OSTCOUNT -lt 2 ]] && skip_env "needs >= 2 OSTs" && return
local STRIPE_SIZE=1048576
local STRIDE_SIZE=$((STRIPE_SIZE*OSTCOUNT))
if [ $SLOW == "yes" ]; then
# b10930: get/set/list trusted.lov xattr
echo "get/set/list trusted.lov xattr ..."
- [[ $OSTCOUNT -lt 2 ]] && skip_env "skipping 2-stripe test" && return
+ [[ $OSTCOUNT -lt 2 ]] && skip_env "needs >= 2 OSTs" && return
local testfile=$DIR/$tfile
$SETSTRIPE -S 65536 -i 1 -c $OSTCOUNT $testfile ||
error "setstripe failed"
# b10930: get/set/list lustre.lov xattr
echo "get/set/list lustre.lov xattr ..."
- [[ $OSTCOUNT -lt 2 ]] && skip_env "skipping 2-stripe test" && return
+ [[ $OSTCOUNT -lt 2 ]] && skip_env "needs >= 2 OSTs" && return
test_mkdir -p $DIR/$tdir
chown $RUNAS_ID $DIR/$tdir
local testfile=$DIR/$tdir/$tfile
# b10930: tar test for trusted.lov xattr
TAR=$(find_lustre_tar)
[ -z "$TAR" ] && skip_env "lustre-aware tar is not installed" && return
- [[ $OSTCOUNT -lt 2 ]] && skip_env "skipping N-stripe test" && return
+ [[ $OSTCOUNT -lt 2 ]] && skip_env "needs >= 2 OSTs" && return
setup_test102
test_mkdir -p $DIR/d102d
$TAR xf $TMP/f102.tar -C $DIR/d102d --xattrs
# b10930: tar test for trusted.lov xattr
TAR=$(find_lustre_tar)
[ -z "$TAR" ] && skip_env "lustre-aware tar is not installed" && return
- [[ $OSTCOUNT -lt 2 ]] && skip_env "skipping N-stripe test" && return
+ [[ $OSTCOUNT -lt 2 ]] && skip_env "needs >= 2 OSTs" && return
setup_test102
test_mkdir -p $DIR/d102f
cd $DIR
[ $PARALLEL == "yes" ] && skip "skip parallel run" && return
TAR=$(find_lustre_tar)
[ -z "$TAR" ] && skip_env "lustre-aware tar is not installed" && return
- [[ $OSTCOUNT -lt 2 ]] && skip_env "skipping N-stripe test" && return
+ [[ $OSTCOUNT -lt 2 ]] && skip_env "needs >= 2 OSTs" && return
setup_test102 "$RUNAS"
test_mkdir -p $DIR/d102j
chown $RUNAS_ID $DIR/d102j
[ $PARALLEL == "yes" ] && skip "skip parallel run" && return
remote_mds_nodsh && skip "remote MDS with nodsh" && return
- [[ $OSTCOUNT -lt 2 ]] && skip_env "$OSTCOUNT < 2 OSTs" && return
+ [[ $OSTCOUNT -lt 2 ]] && skip_env "needs >= 2 OSTs" && return
echo -n "Free space priority "
do_facet $SINGLEMDS lctl get_param -n lo*.*-mdtlov.qos_prio_free |
test_119b() # bug 11737
{
- [ "$OSTCOUNT" -lt "2" ] && skip_env "skipping 2-stripe test" && return
+ [[ $OSTCOUNT -lt 2 ]] && skip_env "needs >= 2 OSTs" && return
$SETSTRIPE -c 2 $DIR/$tfile || error "setstripe failed"
dd if=/dev/zero of=$DIR/$tfile bs=1M count=1 seek=1 || error "dd failed"
[ $PARALLEL == "yes" ] && skip "skip parallel run" && return
if [ "$(facet_fstype $SINGLEMDS)" != ldiskfs ]; then
- skip "Only applicable to ldiskfs-based MDTs"
+ skip "ldiskfs only test"
return
fi
remote_mds_nodsh && skip "remote MDS with nodsh" && return
run_test 130a "FIEMAP (1-stripe file)"
test_130b() {
- [ "$OSTCOUNT" -lt "2" ] &&
- skip_env "skipping FIEMAP on $OSTCOUNT-stripe file" && return
+ [ "$OSTCOUNT" -lt "2" ] && skip_env "needs >= 2 OSTs" && return
local filefrag_op=$(filefrag -e 2>&1 | grep "invalid option")
[ -n "$filefrag_op" ] && skip_env "filefrag does not support FIEMAP" &&
run_test 130b "FIEMAP ($OSTCOUNT-stripe file)"
test_130c() {
- [ "$OSTCOUNT" -lt "2" ] &&
- skip_env "skipping FIEMAP on 2-stripe file" && return
+ [[ $OSTCOUNT -lt 2 ]] && skip_env "needs >= 2 OSTs" && return
filefrag_op=$(filefrag -e 2>&1 | grep "invalid option")
[ -n "$filefrag_op" ] && skip "filefrag does not support FIEMAP" &&
run_test 130c "FIEMAP (2-stripe file with hole)"
test_130d() {
- [ "$OSTCOUNT" -lt "3" ] &&
- skip_env "skipping FIEMAP on N-stripe file test" && return
+ [[ $OSTCOUNT -lt 3 ]] && skip_env "needs >= 3 OSTs" && return
filefrag_op=$(filefrag -e 2>&1 | grep "invalid option")
[ -n "$filefrag_op" ] && skip "filefrag does not support FIEMAP" &&
run_test 130d "FIEMAP (N-stripe file)"
test_130e() {
- [ "$OSTCOUNT" -lt "2" ] &&
- skip_env "skipping continuation FIEMAP test" && return
+ [[ $OSTCOUNT -lt 2 ]] && skip_env "needs >= 2 OSTs" && return
filefrag_op=$(filefrag -e 2>&1 | grep "invalid option")
[ -n "$filefrag_op" ] && skip "filefrag does not support FIEMAP" && return
[ $PARALLEL == "yes" ] && skip "skip parallel run" && return
remote_mds_nodsh && skip "remote MDS with nodsh" && return
[ "$(facet_fstype $SINGLEMDS)" != "ldiskfs" ] &&
- skip "non-ldiskfs backend" && return
+ skip "ldiskfs only test" && return
local MDT_DEV=$(mdsdevname ${SINGLEMDS//mds/})
local myDIR=$DIR/$tdir
[ $PARALLEL == "yes" ] && skip "skip parallel run" && return
remote_mds_nodsh && skip "remote MDS with nodsh" && return
[ "$(facet_fstype $SINGLEMDS)" != "ldiskfs" ] &&
- skip "non-ldiskfs backend" && return
+ skip "ldiskfs only test" && return
local MDT_DEV=$(mdsdevname ${SINGLEMDS//mds/})
local myDIR=$DIR/$tdir
[ $PARALLEL == "yes" ] && skip "skip parallel run" && return
remote_mds_nodsh && skip "remote MDS with nodsh" && return
[ "$(facet_fstype $SINGLEMDS)" != "ldiskfs" ] &&
- skip "non-ldiskfs backend" && return
+ skip "ldiskfs only test" && return
local MDT_DEV=$(mdsdevname ${SINGLEMDS//mds/})
local myDIR=$DIR/$tdir
remote_ost_nodsh && skip "remote OST with nodsh" && return
if [ "$(facet_fstype ost1)" != "ldiskfs" -o \
"$(facet_fstype mds1)" != "ldiskfs" ]; then
- skip "can only run lr_reader on ldiskfs target"
+ skip "ldiskfs only test"
return
fi
[ $PARALLEL == "yes" ] && skip "skip parallel run" && return
remote_mds_nodsh && skip "remote MDS with nodsh" && return
[ "$(facet_fstype mds1)" != "ldiskfs" ] &&
- skip "non-ldiskfs backend" && return
+ skip "ldiskfs only test" && return
mdt_dev=$(mdsdevname 1)
echo $mdt_dev
remote_ost_nodsh && skip "remote OST with nodsh" && return
if [ "$(facet_fstype ost1)" != "ldiskfs" ]; then
- skip "only for ldiskfs" && return 0
+ skip "ldiskfs only test" && return 0
fi
test_fake_rw read
}
run_test 51b "layout lock: glimpse should be able to restart if layout changed"
test_51c() {
- [ $OSTCOUNT -ge 2 ] || { skip "need at least 2 osts"; return; }
+ [ $OSTCOUNT -ge 2 ] || { skip "needs >= 2 osts"; return; }
# set default layout to have 1 stripe
mkdir $DIR1/$tdir
[[ $server_version -lt $(version_code 2.4.0) ]] &&
skip "Need MDS version earlier than 2.2.0 or at least 2.4.0" &&
return
- [[ $OSTCOUNT -ge 2 ]] || { skip "need at least 2 osts"; return; }
+ [[ $OSTCOUNT -ge 2 ]] || { skip "needs >= 2 OSTs"; return; }
checkfiemap --test ||
{ skip "error $?: checkfiemap failed" && return; }
skip "skip scrub performance test under non-SLOW mode" && exit 0
[ $(facet_fstype $SINGLEMDS) != ldiskfs ] &&
- skip "OI scrub performance only for ldiskfs" && exit 0
+ skip "ldiskfs only test" && exit 0
[[ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.2.90) ]] &&
skip "Need MDS version at least 2.2.90" && exit 0
require_dsh_mds || exit 0