X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Ftests%2Fuml.sh;h=9195e59358bb9a650cb7a1e922dffec8a43f8ea9;hb=c5050e412572b00cbe93d8517d2d1f767bebfa92;hp=693dd77ede09e9a1d3455365acfba9e9b163e821;hpb=187a5599df54d9853e4f82610a80d47f2ce26baf;p=fs%2Flustre-release.git diff --git a/lustre/tests/uml.sh b/lustre/tests/uml.sh index 693dd77..9195e59 100644 --- a/lustre/tests/uml.sh +++ b/lustre/tests/uml.sh @@ -1,43 +1,115 @@ #!/bin/bash -config=${1-uml.xml} -LMC=${LMC-../utils/lmc} +export PATH=`dirname $0`/../utils:$PATH + +config=${1:-uml.xml} +LMC=${LMC:-lmc} TMP=${TMP:-/tmp} -MDSDEV=$TMP/mds1 -MDSSIZE=50000 +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} -OSTDEV1=$TMP/ost1 -OSTDEV2=$TMP/ost2 -OSTSIZE=100000 +NETTYPE=${NETTYPE:-tcp} +NIDTYPE=${NIDTYPE:-$NETTYPE} -MDSNODE=uml1 -OSTNODE=uml2 # 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. -CLIENTS="uml3" +# +# 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 -for NODE in $MDSNODE $OSTNODE $CLIENTS; do - eval [ \$$NODE ] && continue - ${LMC} -m $config --node $NODE --net $NODE tcp || exit 1 - eval "$NODE=done" +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 --format --node $MDSNODE --mds mds1 $MDSDEV $MDSSIZE ||exit 10 +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 || exit 20 -${LMC} -m $config --node $OSTNODE --lov lov1 --ost $OSTDEV1 $OSTSIZE || exit 21 -${LMC} -m $config --node $OSTNODE --lov lov1 --ost $OSTDEV2 $OSTSIZE || exit 22 +${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 - ${LMC} -m $config --node $NODE --mtpt /mnt/lustre mds1 lov1 || exit 30 + echo -n " $NODE" + ${LMC} -m $config --add mtpt --node $NODE --path /mnt/lustre --mds mds1 --lov lov1 || exit 30 done - +echo