X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Ftests%2Fuml.sh;h=9195e59358bb9a650cb7a1e922dffec8a43f8ea9;hb=c5050e412572b00cbe93d8517d2d1f767bebfa92;hp=bff0da3daba545712739177f8160bc9b755daab5;hpb=e24cec6cc7a66222614fad61b516f293a7eb395a;p=fs%2Flustre-release.git diff --git a/lustre/tests/uml.sh b/lustre/tests/uml.sh index bff0da3..9195e59 100644 --- a/lustre/tests/uml.sh +++ b/lustre/tests/uml.sh @@ -1,25 +1,115 @@ #!/bin/bash -config=uml.xml -LMC=../utils/lmc +export PATH=`dirname $0`/../utils:$PATH -echo "FIXME: autoformat is no by default, edit $config to change" +config=${1:-uml.xml} +LMC=${LMC:-lmc} +TMP=${TMP:-/tmp} + +MDSDEV=${MDSDEV:-$TMP/mds1-`hostname`} +MDSSIZE=${MDSSIZE:-100000} + +OSTDEVBASE=$TMP/ost +#OSTDEV1=${OSTDEV1:-${OSTDEVBASE}1} +#OSTDEV2=${OSTDEV2:-${OSTDEVBASE}2} +#etc +OSTSIZE=${OSTSIZE:-100000} +STRIPECNT=${STRIPECNT:-1} +OSDTYPE=${OSDTYPE:-obdfilter} +OSTFAILOVER=${OSTFAILOVER:-} + +FSTYPE=${FSTYPE:-ext3} + +NETTYPE=${NETTYPE:-tcp} +NIDTYPE=${NIDTYPE:-$NETTYPE} + +# NOTE - You can't have different MDS/OST nodes and also have clients on the +# MDS/OST nodes without using --endlevel and --startlevel during lconf. +# You can put both MDS/OST on one node and client can be there too. +# CLIENTS is a space-separated list of client nodes. +# +# The rule is that both the MDS and the OST must be set up before any +# of the clients can be started, so plan accordingly. + +# Three separate systems +MDSNODE=${MDSNODE:-uml1} +OSTNODES=${OSTNODES:-"uml2 uml2"} +CLIENTS=${CLIENTS:-"uml3"} + +# Single system with additional clients +#MDSNODE=uml1 +#OSTNODES="uml1 uml1" +#CLIENTS="$MDSNODE client" + +# Two systems with client on MDS, and additional clients (set up OST first) +#MDSNODE=uml1 +#OSTNODES="uml2 uml2" +#CLIENTS="$MDSNODE client" + +# Two systems with client on OST, and additional clients (set up MDS first) +#MDSNODE=uml1 +#OSTNODES="uml2 uml2" +#CLIENTS="$OSTNODES client" + +rm -f $config + +h2localhost () { + echo localhost +} + +h2tcp () { + case $1 in + client) echo '\*' ;; + *) echo $1 ;; + esac +} + +h2elan () { + case $1 in + client) echo '\*' ;; + *) echo $1 | sed "s/[^0-9]*//" ;; + esac +} + +h2gm () { + echo `gmnalnid -n$1` +} # create nodes -${LMC} -o $config --node uml1 --net uml1 tcp -${LMC} -m $config --node uml2 --net uml2 tcp -${LMC} -m $config --node uml3 --net uml3 tcp +echo -n "adding NET for:" +for NODE in `echo $MDSNODE $OSTNODES $CLIENTS | tr -s " " "\n" | sort -u`; do + echo -n " $NODE" + ${LMC} -m $config --add net --node $NODE --nid `h2$NIDTYPE $NODE` --nettype $NETTYPE || exit 1 +done # configure mds server -${LMC} -m $config --node uml1 --mds mds1 /tmp/mds1 50000 +echo; echo "adding MDS on: $MDSNODE" +${LMC} -m $config --add mds --format --node $MDSNODE --mds mds1 --fstype $FSTYPE --dev $MDSDEV --size $MDSSIZE ||exit 10 # configure ost -${LMC} -m $config --lov lov1 mds1 65536 0 0 -${LMC} -m $config --node uml2 --lov lov1 --ost /tmp/ost1 100000 -${LMC} -m $config --node uml2 --lov lov1 --ost /tmp/ost2 100000 -# is this needed? -# ${LMC} -m $config --node uml2 --mdc MDC_mds1 - -# create client config -${LMC} -m $config --node uml3 --mtpt /mnt/lustre mds1 lov1 +${LMC} -m $config --add lov --lov lov1 --mds mds1 --stripe_sz 65536 --stripe_cnt $STRIPECNT --stripe_pattern 0 || exit 20 +COUNT=1 +echo -n "adding OST on:" +for NODE in $OSTNODES; do + eval OSTDEV=\$OSTDEV$COUNT + echo -n " $NODE" + OSTDEV=${OSTDEV:-$OSTDEVBASE$COUNT-`hostname`} + case "$OSDTYPE" in + obdfilter) + OSTARGS="--fstype $FSTYPE --dev $OSTDEV --size $OSTSIZE" + ;; + obdecho) + OSTARGS="--osdtype=obdecho" + ;; + esac + ${LMC} -m $config --add ost --node $NODE --lov lov1 $OSTARGS $OSTFAILOVER || exit 21 + COUNT=`expr $COUNT + 1` +done +# create client config(s) +echo; echo -n "adding CLIENT on:" +for NODE in $CLIENTS; do + echo -n " $NODE" + ${LMC} -m $config --add mtpt --node $NODE --path /mnt/lustre --mds mds1 --lov lov1 || exit 30 +done +echo