#FAIL_CLIENTS=${FAIL_CLIENTS:-mdev7}
FAIL_CLIENTS=${FAIL_CLIENTS:-"adev9 adev10 adev11 adev12"}
EXTRA_CLIENTS=${EXTRA_CLIENTS:-"adev[13-15]"}
+SINGLEMDS=${SINGLEMDS:-"mds"}
NETTYPE=${NETTYPE:-tcp}
--- /dev/null
+FSNAME=lustre
+
+# facet hosts
+mds_HOST=${mds_HOST:-`hostname`}
+mdsfailover_HOST=${mdsfailover_HOST}
+mgs_HOST=${mgs_HOST:-$mds_HOST}
+ost_HOST=${ost_HOST:-`hostname`}
+ostfailover_HOST=${ostfailover_HOST}
+
+mds1_HOST=${mds1_HOST:-$mds_HOST}
+mds2_HOST=$mds1_HOST
+mds3_HOST=$mds1_HOST
+ost2_HOST=${ost2_HOST:-$ost_HOST}
+gks_HOST=${gks_HOST:-$mds_HOST}
+LIVE_CLIENT=${LIVE_CLIENT:-`hostname`}
+# This should always be a list, not a regexp
+FAIL_CLIENTS=${FAIL_CLIENTS:-""}
+
+NETTYPE=${NETTYPE:-tcp}
+MGSNID=${MGSNID:-`h2$NETTYPE $mgs_HOST`}
+FSTYPE=${FSTYPE:-ldiskfs}
+STRIPE_BYTES=${STRIPE_BYTES:-1048576}
+STRIPES_PER_OBJ=${STRIPES_PER_OBJ:-$((OSTCOUNT -1))}
+TIMEOUT=${TIMEOUT:-30}
+PTLDEBUG=${PTLDEBUG:-0x33f0404}
+SUBSYSTEM=${SUBSYSTEM:- 0xffb7e3ff}
+
+TMP=${TMP:-/tmp}
+
+MDSCOUNT=${MDSCOUNT:-3}
+MDSDEVBASE=${MDSDEVBASE:-$TMP/${FSNAME}-mdt}
+MDSSIZE=${MDSSIZE:-100000}
+
+OSTCOUNT=${OSTCOUNT:-2}
+OSTDEVBASE=${OSTDEVBASE:-$TMP/${FSNAME}-ost}
+OSTSIZE=${OSTSIZE:-200000}
+
+#client
+MOUNT=${MOUNT:-/mnt/${FSNAME}}
+MOUNT1=${MOUNT1:-$MOUNT}
+MOUNT2=${MOUNT2:-${MOUNT}2}
+MOUNTOPT=${MOUNTOPT:-"user_xattr,"}
+[ "x$RMTCLIENT" != "x" ] &&
+ MOUNTOPT=$MOUNTOPT",remote_client"
+DIR=${DIR:-$MOUNT}
+DIR1=${DIR:-$MOUNT1}
+DIR2=${DIR2:-$MOUNT2}
+
+PDSH=${PDSH:-no_dsh}
+FAILURE_MODE=${FAILURE_MODE:-SOFT} # or HARD
+POWER_DOWN=${POWER_DOWN:-"powerman --off"}
+POWER_UP=${POWER_UP:-"powerman --on"}
+
+MKFSOPT=""
+MOUNTOPT=""
+[ "x$MDSJOURNALSIZE" != "x" ] &&
+ MKFSOPT=$MKFSOPT" -J size=$MDSJOURNALSIZE"
+[ "x$MDSISIZE" != "x" ] &&
+ MKFSOPT=$MKFSOPT" -i $MDSISIZE"
+[ "x$MKFSOPT" != "x" ] &&
+ MKFSOPT="--mkfsoptions=\"$MKFSOPT\""
+[ "x$mdsfailover_HOST" != "x" ] &&
+ MOUNTOPT=$MOUNTOPT" --failnode=`h2$NETTYPE $mdsfailover_HOST`"
+[ "x$STRIPE_BYTES" != "x" ] &&
+ MOUNTOPT=$MOUNTOPT" --param lov.stripesize=$STRIPE_BYTES"
+[ "x$STRIPES_PER_OBJ" != "x" ] &&
+ MOUNTOPT=$MOUNTOPT" --param lov.stripecount=$STRIPES_PER_OBJ"
+MDS_MKFS_OPTS="--mgs --mdt --fsname=$FSNAME --device-size=$MDSSIZE --param sys.timeout=$TIMEOUT $MKFSOPT $MOUNTOPT $MDSOPT"
+MDSn_MKFS_OPTS="--mgsnode=$MGSNID --mdt --fsname=$FSNAME --device-size=$MDSSIZE --param sys.timeout=$TIMEOUT $MKFSOPT $MOUNTOPT $MDSOPT"
+
+MKFSOPT=""
+MOUNTOPT=""
+[ "x$OSTJOURNALSIZE" != "x" ] &&
+ MKFSOPT=$MKFSOPT" -J size=$OSTJOURNALSIZE"
+[ "x$MKFSOPT" != "x" ] &&
+ MKFSOPT="--mkfsoptions=\"$MKFSOPT\""
+[ "x$ostfailover_HOST" != "x" ] &&
+ MOUNTOPT=$MOUNTOPT" --failnode=`h2$NETTYPE $ostfailover_HOST`"
+OST_MKFS_OPTS="--ost --fsname=$FSNAME --device-size=$OSTSIZE --mgsnode=$MGSNID --param sys.timeout=$TIMEOUT $MKFSOPT $MOUNTOPT $OSTOPT"
+
+MDS_MOUNT_OPTS=${MDS_MOUNT_OPTS:-"-o loop"}
+OST_MOUNT_OPTS=${OST_MOUNT_OPTS:-"-o loop"}
+
+SINGLEMDS=${SINGLEMDS:-"mds1"}
# facet hosts
mds_HOST=${mds_HOST:-`hostname`}
mdsfailover_HOST=${mdsfailover_HOST:-""}
+mds1_HOST=${mds1_HOST:-$mds_HOST}
+mds1failover_HOST=${mds1failover_HOST:-$mdsfailover_HOST}
mgs_HOST=${mgs_HOST:-$mds_HOST}
ost_HOST=${ost_HOST:-`hostname`}
LIVE_CLIENT=${LIVE_CLIENT:-`hostname`}
FAIL_CLIENTS=${FAIL_CLIENTS:-""}
TMP=${TMP:-/tmp}
-MDSDEV=${MDSDEV:-$TMP/${FSNAME}-mdt}
+MDSDEV=${MDSDEV:-$TMP/${FSNAME}-mdt1}
+MDSCOUNT=${MDSCOUNT:-1}
+MDSDEVBASE=${MDSDEVBASE:-$TMP/${FSNAME}-mdt}
MDSSIZE=${MDSSIZE:-100000}
MDSOPT=${MDSOPT:-"--mountfsoptions=acl"}
TIMEOUT=${TIMEOUT:-30}
PTLDEBUG=${PTLDEBUG:-0x33f0404}
SUBSYSTEM=${SUBSYSTEM:- 0xffb7e3ff}
+SINGLEMDS=${SINGLEMDS:-"mds1"}
MKFSOPT=""
MOUNTOPT=""
MOUNTOPT=$MOUNTOPT" --failnode=`h2$NETTYPE $ostfailover_HOST`"
OST_MKFS_OPTS="--ost --fsname=$FSNAME --device-size=$OSTSIZE --mgsnode=$MGSNID --param sys.timeout=$TIMEOUT $MKFSOPT $MOUNTOPT $OSTOPT"
-MDS_MOUNT_OPTS="-o loop"
-OST_MOUNT_OPTS="-o loop"
+MDS_MOUNT_OPTS=${MDS_MOUNT_OPTS:-"-o loop"}
+OST_MOUNT_OPTS=${OST_MOUNT_OPTS:-"-o loop"}
MOUNT=${MOUNT:-"/mnt/lustre"}
PDSH=${PDSH:-no_dsh}
LIVE_CLIENT=${LIVE_CLIENT:-${CLIENT1}}
# This should always be a list, not a regexp
FAIL_CLIENTS=${FAIL_CLIENTS:-"`all_but_one_clients`"}
+SINGLEMDS=${SINGLEMDS:-"mds"}
NETTYPE=${NETTYPE:-${NETTYPE}}
# This should always be a list, not a regexp
FAIL_CLIENTS=${FAIL_CLIENTS:-mdev8}
#FAIL_CLIENTS=${FAIL_CLIENTS:-""}
+SINGLEMDS=${SINGLEMDS:-"mds"}
NETTYPE=${NETTYPE:-tcp}
TMP=${TMP:-/tmp}
MDSCOUNT=${MDSCOUNT:-3}
-MDSDEVBASE=${MDSDEVBASE:-$TMP/${FSNAME}-mds}
+MDSDEVBASE=${MDSDEVBASE:-$TMP/${FSNAME}-mdt}
MDSSIZE=${MDSSIZE:-100000}
OSTCOUNT=${OSTCOUNT:-2}
MOUNTOPT=$MOUNTOPT" --failnode=`h2$NETTYPE $ostfailover_HOST`"
OST_MKFS_OPTS="--ost --fsname=$FSNAME --device-size=$OSTSIZE --mgsnode=$MGSNID --param sys.timeout=$TIMEOUT $MKFSOPT $MOUNTOPT $OSTOPT"
-MDS_MOUNT_OPTS="-o loop"
-OST_MOUNT_OPTS="-o loop"
+MDS_MOUNT_OPTS=${MDS_MOUNT_OPTS:-"-o loop"}
+OST_MOUNT_OPTS=${OST_MOUNT_OPTS:-"-o loop"}
SINGLEMDS=${SINGLEMDS:-"mds1"}
TMP=${TMP:-/tmp}
-MDSDEV=${MDSDEV:-$TMP/mds1-`hostname`}
+MDSDEV=${MDSDEV:-$TMP/${FSNAME}-mdt1}
MDSCOUNT=${MDSCOUNT:-1}
-MDSDEVBASE=${MDSDEVBASE:-$TMP/${FSNAME}-mds}
+MDSDEVBASE=${MDSDEVBASE:-$TMP/${FSNAME}-mdt}
MDSSIZE=${MDSSIZE:-100000}
MDSOPT=${MDSOPT:-"--mountfsoptions=acl"}
FSNAME=lustre
+TMP=${TMP:-/tmp}
+
# facet hosts
mds_HOST=${mds_HOST:-`hostname`}
mdsfailover_HOST=${mdsfailover_HOST}
+mds1_HOST=${mds1_HOST:-$mds_HOST}
+mds1failover_HOST=${mds1failover_HOST:-$mdsfailover_HOST}
mgs_HOST=${mgs_HOST:-$mds_HOST}
ost_HOST=${ost_HOST:-`hostname`}
ostfailover_HOST=${ostfailover_HOST}
-TMP=${TMP:-/tmp}
-MDSDEV=${MDSDEV:-$TMP/${FSNAME}-mdt}
+MDSDEV=${MDSDEV:-$TMP/${FSNAME}-mdt1}
+MDSCOUNT=${MDSCOUNT:-1}
+MDSDEVBASE=${MDSDEVBASE:-$TMP/${FSNAME}-mdt}
MDSSIZE=${MDSSIZE:-400000}
-MDSOPT=${MDSOPT:-"--mountfsoptions=user_xattr,acl,"}
+MDSOPT=${MDSOPT:-"--mountfsoptions=user_xattr,acl"}
OSTCOUNT=${OSTCOUNT:-6}
OSTDEVBASE=${OSTDEVBASE:-$TMP/${FSNAME}-ost}
OSTSIZE=${OSTSIZE:-150000}
+SINGLEMDS=${SINGLEMDS:-"mds1"}
NETTYPE=${NETTYPE:-tcp}
MGSNID=${MGSNID:-`h2$NETTYPE $mgs_HOST`}
FSTYPE=${FSTYPE:-ldiskfs}
MOUNTOPT=$MOUNTOPT" --failnode=`h2$NETTYPE $ostfailover_HOST`"
OST_MKFS_OPTS="--ost --fsname=$FSNAME --device-size=$OSTSIZE --mgsnode=$MGSNID --param sys.timeout=$TIMEOUT $MKFSOPT $MOUNTOPT $OSTOPT"
-MDS_MOUNT_OPTS="-o loop"
-OST_MOUNT_OPTS="-o loop"
+MDS_MOUNT_OPTS=${MDS_MOUNT_OPTS:-"-o loop"}
+OST_MOUNT_OPTS=${OST_MOUNT_OPTS:-"-o loop"}
#client
MOUNT=${MOUNT:-/mnt/${FSNAME}}
ost2_HOST=${ost2_HOST:-mdev3}
client_HOST=${client_HOST:-client}
NETTYPE=${NETTYPE:-tcp}
+SINGLEMDS=${SINGLEMDS:-"mds"}
MOUNT=${MOUNT:-"/mnt/lustre"}
MOUNT1=${MOUNT1:-$MOUNT}
echo "Starting Test 17 at `date`"
test_0() {
- facet_failover mds
+ facet_failover $SINGLEMDS
echo "Waiting for df pid: $DFPID"
wait $DFPID || { echo "df returned $?" && return 1; }
echo "Verify Lustre filesystem is up and running"
client_df
- shutdown_facet mds
- reboot_facet mds
+ shutdown_facet $SINGLEMDS
+ reboot_facet $SINGLEMDS
# prepare for MDS failover
- change_active mds
- reboot_facet mds
+ change_active $SINGLEMDS
+ reboot_facet $SINGLEMDS
client_df &
DFPID=$!
wait_for ost1
start_ost 1 || return 2
- wait_for mds
- start mds $MDSDEV $MDS_MOUNT_OPTS || return $?
+ wait_for $SINGLEMDS
+ start $SINGLEMDS $MDSDEV $MDS_MOUNT_OPTS || return $?
#Check FS
wait $DFPID
echo "Verify Lustre filesystem is up and running"
#MDS Portion
- facet_failover mds
+ facet_failover $SINGLEMDS
wait $DFPID || echo df failed: $?
#Check FS
sleep 5
#MDS Portion
- shutdown_facet mds
- reboot_facet mds
+ shutdown_facet $SINGLEMDS
+ reboot_facet $SINGLEMDS
# prepare for MDS failover
- change_active mds
- reboot_facet mds
+ change_active $SINGLEMDS
+ reboot_facet $SINGLEMDS
client_df &
DFPIDB=$!
client_rm testfile
#MDS Portion
- facet_failover mds
+ facet_failover $SINGLEMDS
#Check FS
echo "Test Lustre stability after MDS failover"
seq_set_width()
{
- local fn=`ls /proc/fs/lustre/seq/cli-srv*/seq_width`
- echo $1 > $fn
+ local mds=$1
+ local width=$2
+ local file=`ls /proc/fs/lustre/seq/cli-srv-$mds-mdc-*/seq_width`
+ echo $width > $file
}
seq_get_width()
{
- local fn=`ls /proc/fs/lustre/seq/cli-srv*/seq_width`
- cat $fn
+ local mds=$1
+ local file=`ls /proc/fs/lustre/seq/cli-srv-$mds-mdc-*/seq_width`
+ cat $file
}
test_0c() {
- if test $MDSCOUNT != 1; then
- echo "Skipped, needs single mds config."
- return 0
- fi
+ local device=$(mdsdevname 1)
+ local label=`do_facet $SINGLEMDS "e2label ${device}" | grep -v "CMD: "`
+ [ -z "$label" ] && echo "No label for ${device}" && exit 1
replay_barrier $SINGLEMDS
-
- local seq_width
+ local sw=`seq_get_width $label`
# make seq manager switch to next sequence each
# time as new fid is needed.
- seq_width=`seq_get_width`
- seq_set_width 1
+ seq_set_width $label 1
# make sure that fld has created at least one new
# entry on server
- touch $DIR/$tfile || return 1
- seq_set_width $seq_width
+ touch $DIR/$tfile || return 2
+ seq_set_width $label $sw
# fail $SINGLEMDS and start recovery, replay RPCs, etc.
fail $SINGLEMDS
# issue lookup which should call fld lookup which
# should fail if client did not replay fld create
# correctly and server has no fld entry
- touch $DIR/$tfile || return 2
- rm $DIR/$tfile || return 2
+ touch $DIR/$tfile || return 3
+ rm $DIR/$tfile || return 4
}
run_test 0c "fld create"