. $LUSTRE/tests/cfg/$NAME.sh
assert_env mds_HOST MDS_MKFS_OPTS MDSDEV
- assert_env ost_HOST ost2_HOST OST_MKFS_OPTS OSTDEV
+ assert_env ost_HOST OST_MKFS_OPTS OSTCOUNT
assert_env FSNAME
if [ "$RUNTESTS" != "no" ]; then
FSNAME=lustre
+
+# facet hosts
mds_HOST=${mds_HOST:-`hostname`}
-mgs_HOST=${mgs_HOST:-$mds_HOST}
mdsfailover_HOST=${mdsfailover_HOST:-""}
-ost1_HOST=${ost1_HOST:-"`hostname`"}
-ost2_HOST=${ost2_HOST:-"`hostname`"}
-EXTRA_OSTS=${EXTRA_OSTS:-"`hostname`"}
-LIVE_CLIENT=${LIVE_CLIENT:-"`hostname`"}
+mgs_HOST=${mgs_HOST:-$mds_HOST}
+ost_HOST=${ost_HOST:-`hostname`}
+LIVE_CLIENT=${LIVE_CLIENT:-`hostname`}
# This should always be a list, not a regexp
FAIL_CLIENTS=${FAIL_CLIENTS:-""}
+TMP=${TMP:-/tmp}
MDSDEV=${MDSDEV:-$TMP/${FSNAME}-mdt}
-MDSSIZE=${MDSSIZE:-10000} #50000000
-OSTDEV=${OSTDEV:-"$TMP/${FSNAME}-ost%d"}
-OSTSIZE=${OSTSIZE:=10000} #50000000
+MDSSIZE=${MDSSIZE:-100000}
+MDSOPT=${MDSOPT:-"--mountfsoptions=acl"}
+
+OSTCOUNT=${OSTCOUNT:-3}
+OSTDEVBASE=${OSTDEVBASE:-$TMP/${FSNAME}-ost}
+OSTSIZE=${OSTSIZE:-200000}
NETTYPE=${NETTYPE:-tcp}
MGSNID=`h2$NETTYPE $mgs_HOST`
-FSTYPE=${FSTYPE:-ext3}
+FSTYPE=${FSTYPE:-ldiskfs}
STRIPE_BYTES=${STRIPE_BYTES:-1048576}
STRIPES_PER_OBJ=${STRIPES_PER_OBJ:-0}
TIMEOUT=${TIMEOUT:-30}
MOUNTOPT=$MOUNTOPT" --param default_stripe_size=$STRIPE_BYTES"
[ "x$STRIPES_PER_OBJ" != "x" ] &&
MOUNTOPT=$MOUNTOPT" --param default_stripe_count=$STRIPES_PER_OBJ"
-MDS_MKFS_OPTS="--mgs --mdt --device-size=$MDSSIZE $MKFSOPT $MOUNTOPT $MDSOPT"
+MDS_MKFS_OPTS="--mgs --mdt --device-size=$MDSSIZE --param obd_timeout=$TIMEOUT $MKFSOPT $MOUNTOPT $MDSOPT"
MKFSOPT=""
MOUNTOPT=""
MKFSOPT="--mkfsoptions=\"$MKFSOPT\""
[ "x$ostfailover_HOST" != "x" ] &&
MOUNTOPT=$MOUNTOPT" --failnode=`h2$NETTYPE $ostfailover_HOST`"
-OST_MKFS_OPTS="--ost --device-size=$OSTSIZE --mgsnode=$MGSNID $MKFSOPT $MOUNTOPT $OSTOPT"
+OST_MKFS_OPTS="--ost --device-size=$OSTSIZE --mgsnode=$MGSNID --param obd_timeout=$TIMEOUT $MKFSOPT $MOUNTOPT $OSTOPT"
MDS_MOUNT_OPTS="-o loop"
OST_MOUNT_OPTS="-o loop"
-# oldstyle
-MDSNODE=${MDSNODE:-`hostname`}
-OSTNODE=${OSTNODE:-`hostname`}
-CLIENT=${CLIENT:-client}
-
FSNAME=lustre
# facet hosts
-mds_HOST=${mds_HOST:-$MDSNODE}
+mds_HOST=${mds_HOST:-`hostname`}
mdsfailover_HOST=${mdsfailover_HOST}
mgs_HOST=${mgs_HOST:-$mds_HOST}
-ost1_HOST=${ost1_HOST:-$OSTNODE}
+ost_HOST=${ost_HOST:-`hostname`}
ostfailover_HOST=${ostfailover_HOST}
-ost2_HOST=${ost2_HOST:-$OSTNODE}
TMP=${TMP:-/tmp}
+
MDSDEV=${MDSDEV:-$TMP/${FSNAME}-mdt}
MDSSIZE=${MDSSIZE:-100000}
MDSOPT=${MDSOPT:-"--mountfsoptions=acl"}
OSTCOUNT=${OSTCOUNT:-2}
OSTDEVBASE=${OSTDEVBASE:-$TMP/${FSNAME}-ost}
OSTSIZE=${OSTSIZE:-200000}
+OSTOPT=""
+# Can specify individual ost devs with
+# OSTDEV1="/dev/sda"
+# on specific hosts with
+# ost1_HOST="uml2"
NETTYPE=${NETTYPE:-tcp}
MGSNID=`h2$NETTYPE $mgs_HOST`
STRIPE_BYTES=${STRIPE_BYTES:-1048576}
STRIPES_PER_OBJ=${STRIPES_PER_OBJ:-0}
TIMEOUT=${TIMEOUT:-20}
-UPCALL=${UPCALL:-DEFAULT}
PTLDEBUG=${PTLDEBUG:-0x33f0404}
SUBSYSTEM=${SUBSYSTEM:- 0xffb7e3ff}
-# oldstyle
-MDSNODE=${MDSNODE:-`hostname`}
-OSTNODE=${OSTNODE:-`hostname`}
-CLIENT=${CLIENT:-client}
-
FSNAME=lustre
# facet hosts
-mds_HOST=${mds_HOST:-$MDSNODE}
+mds_HOST=${mds_HOST:-`hostname`}
mdsfailover_HOST=${mdsfailover_HOST}
mgs_HOST=${mgs_HOST:-$mds_HOST}
-ost1_HOST=${ost1_HOST:-$OSTNODE}
+ost_HOST=${ost_HOST:-`hostname`}
ostfailover_HOST=${ostfailover_HOST}
-ost2_HOST=${ost2_HOST:-$OSTNODE}
TMP=${TMP:-/tmp}
MDSDEV=${MDSDEV:-$TMP/${FSNAME}-mdt}
STRIPE_BYTES=${STRIPE_BYTES:-1048576}
STRIPES_PER_OBJ=${STRIPES_PER_OBJ:-$((OSTCOUNT -1))}
TIMEOUT=${TIMEOUT:-20}
-UPCALL=${UPCALL:-DEFAULT}
PTLDEBUG=${PTLDEBUG:-0x33f0404}
SUBSYSTEM=${SUBSYSTEM:- 0xffb7e3ff}
run_test 21 "start a client before osts (should return errs)"
test_22() {
+ echo this test is not working yet
+ return 0
setup
# failover mds
stop mds
- # force client
+ # force client so that recovering mds waits
zconf_umount `hostname` $MOUNT -f
# enter recovery on mds
start_mds
mount_client $MOUNT &
+ local mount_pid=$?
sleep 5
- local mount_lustre_pid = `ps -ef | grep mount.lustre | grep -v grep | awk '{print $2}'`
- echo mount.lustre pid is ${mount_lustre_pid}
- kill -SIGINT ${mount_lustre_pid}
- exit 1
-
+ local mount_lustre_pid=`ps -ef | grep mount.lustre | grep -v grep | awk '{print $2}'`
+ ps -ef | grep mount
+ echo mount pid is ${mount_pid}, mount.lustre pid is ${mount_lustre_pid}
+ # why o why can't I kill these? Manual "ctrl-c" works...
+ kill -2 ${mount_pid}
+ ps -ef | grep mount
+ kill -2 ${mount_lustre_pid}
+ ps -ef | grep mount
sleep 5
+ exit 1 # the mount process is still running??
stop_mds
stop_ost
}
build_test_filter
assert_env mds_HOST MDS_MKFS_OPTS MDSDEV
-assert_env ost1_HOST ost2_HOST OST_MKFS_OPTS OSTDEV
+assert_env ost_HOST OST_MKFS_OPTS OSTCOUNT
assert_env LIVE_CLIENT FSNAME
-####
-# Initialize all the ostN_HOST
-NUMOST=2
-if [ "$EXTRA_OSTS" ]; then
- for host in $EXTRA_OSTS; do
- NUMOST=$((NUMOST + 1))
- OST=ost$NUMOST
- eval ${OST}_HOST=$host
- done
-fi
# This can be a regexp, to allow more clients
CLIENTS=${CLIENTS:-"`comma_list $LIVE_CLIENT $FAIL_CLIENTS $EXTRA_CLIENTS`"}
}
start_ost() {
- local dev=`printf $OSTDEV $1`
- start ost$1 $dev $OST_MOUNT_OPTS
+ start ost$1 `ostdevname $1` $OST_MOUNT_OPTS
}
setup() {
cleanup
rm -rf logs/*
- wait_for mds
- add mds $MDS_MKFS_OPTS --reformat $MDSDEV >> /dev/null
- start mds $MDSDEV $MDS_MOUNT_OPTS
- for i in `seq $NUMOST`; do
- local dev=`printf $OSTDEV $i`
- local index=$((i - 1))
- wait_for ost$i
- echo Adding ost$i at index $index dev $dev
- add ost$i $OST_MKFS_OPTS --reformat --index=$index $dev >> /dev/null
- start ost$i $dev $OST_MOUNT_OPTS
- done
- [ "$DAEMONFILE" ] && $LCTL debug_daemon start $DAEMONFILE $DAEMONSIZE
+ formatall
+ setupall
while ! do_node $CLIENTS "ls -d $LUSTRE" > /dev/null; do sleep 5; done
grep " $MOUNT " /proc/mounts || zconf_mount $CLIENTS $MOUNT
cleanup() {
zconf_umount $CLIENTS $MOUNT
+ stopall
stop mds -f
- for i in `seq $NUMOST`; do
- stop ost$i -f
- done
}
trap exit INT
# do_node $CLIENTS "$LCTL "'--device %OSC_`hostname`_'"${facet}_svc_MNT_client_facet recover"
}
-node_to_ost() {
- node=$1
- retvar=$2
- for i in `seq $NUMOST`; do
- ostvar="ost${i}_HOST"
- if [ "${!ostvar}" == $node ]; then
- eval $retvar=ost${i}
- return 0
- fi
- done
- echo "No ost found for node; $node"
- return 1
-}
-
-
if [ "$ONLY" == "cleanup" ]; then
$CLEANUP
exit
# save the name of the config file for the upcall
echo "XMLCONFIG=$LUSTRE/tests/$XMLCONFIG" > $LUSTRE/tests/XMLCONFIG
-# echo "CONFIG=`canonical_path $CONFIG`" > $LUSTRE/tests/CONFIG
}
load_module() {
echo "Starting ${facet}: $@ ${device} /mnt/${facet}"
do_facet ${facet} mkdir -p /mnt/${facet}
do_facet ${facet} mount -t lustre $@ ${device} /mnt/${facet}
- #do_facet $facet $LCONF --select ${facet}_svc=${active}_facet \
- # --node ${active}_facet --ptldebug $PTLDEBUG --subsystem $SUBSYSTEM \
- # $@ $XMLCONFIG
RC=${PIPESTATUS[0]}
if [ $RC -ne 0 ]; then
echo mount -t lustre $@ ${device} /mnt/${facet}
facet_host() {
local facet=$1
varname=${facet}_HOST
+ if [ -z "${!varname}" ]; then
+ if [ "${facet:0:3}" == "ost" ]; then
+ eval ${facet}_HOST=${ost_HOST}
+ fi
+ fi
echo -n ${!varname}
}
add() {
local facet=$1
shift
- # failsafe
+ # make sure its not already running
stop ${facet} -f
rm -f ${facet}active
- $MKFS $*
+ do_facet ${facet} $MKFS $*
}
ostdevname() {
echo -n $DEVPTR
}
-
########
## MountConf setup
# We need ldiskfs here, may as well load them all
load_modules
echo Formatting mds, osts
- add mds $MDS_MKFS_OPTS --reformat $MDSDEV > /dev/null || exit 10
+ add mds $MDS_MKFS_OPTS --reformat $MDSDEV > /dev/null || exit 10
for num in `seq $OSTCOUNT`; do
- DEVNAME=`ostdevname $num`
- add ost$num $OST_MKFS_OPTS --reformat $DEVNAME > /dev/null || exit 10
+ add ost$num $OST_MKFS_OPTS --reformat `ostdevname $num` > /dev/null || exit 10
done
}