Whamcloud - gitweb
land v0.9.1 on HEAD, in preparation for a 1.0.x branch
[fs/lustre-release.git] / lustre / tests / uml.sh
index 7d8da8f..9195e59 100644 (file)
@@ -1,15 +1,27 @@
 #!/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:-}
 
-OSTDEV1=$TMP/ost1
-OSTDEV2=$TMP/ost2
-OSTSIZE=100000
+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.
@@ -20,44 +32,84 @@ OSTSIZE=100000
 #        of the clients can be started, so plan accordingly.
 
 # Three separate systems
-MDSNODE=uml1
-OSTNODE=uml2
-CLIENTS="uml3"
+MDSNODE=${MDSNODE:-uml1}
+OSTNODES=${OSTNODES:-"uml2 uml2"}
+CLIENTS=${CLIENTS:-"uml3"}
 
 # Single system with additional clients
 #MDSNODE=uml1
-#OSTNODE=uml1
+#OSTNODES="uml1 uml1"
 #CLIENTS="$MDSNODE client"
 
 # Two systems with client on MDS, and additional clients (set up OST first)
 #MDSNODE=uml1
-#OSTNODE=uml2
+#OSTNODES="uml2 uml2"
 #CLIENTS="$MDSNODE client"
 
 # Two systems with client on OST, and additional clients (set up MDS first)
 #MDSNODE=uml1
-#OSTNODE=uml2
-#CLIENTS="$OSTNODE client"
+#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