Whamcloud - gitweb
merge b_devel into HEAD, which will become 0.7.3
[fs/lustre-release.git] / lustre / tests / uml.sh
1 #!/bin/bash
2
3 export PATH=`dirname $0`/../utils:$PATH
4
5 config=${1:-uml.xml}
6 LMC=${LMC:-lmc}
7 TMP=${TMP:-/tmp}
8
9 MDSDEV=${MDSDEV:-$TMP/mds1-`hostname`}
10 MDSSIZE=${MDSSIZE:-50000}
11
12 OSTDEVBASE=$TMP/ost
13 #OSTDEV1=${OSTDEV1:-${OSTDEVBASE}1}
14 #OSTDEV2=${OSTDEV2:-${OSTDEVBASE}2}
15 #etc
16 OSTSIZE=${OSTSIZE:-100000}
17 STRIPECNT=${STRIPECNT:-1}
18
19 FSTYPE=${FSTYPE:-ext3}
20
21 NETTYPE=${NETTYPE:-tcp}
22 NIDTYPE=${NIDTYPE:-$NODETYPE}
23
24 # NOTE - You can't have different MDS/OST nodes and also have clients on the
25 #        MDS/OST nodes without using --endlevel and --startlevel during lconf.
26 #        You can put both MDS/OST on one node and client can be there too.
27 #        CLIENTS is a space-separated list of client nodes.
28 #
29 #        The rule is that both the MDS and the OST must be set up before any
30 #        of the clients can be started, so plan accordingly.
31
32 # Three separate systems
33 MDSNODE=${MDSNODE:-uml1}
34 OSTNODES=${OSTNODES:-"uml2 uml2"}
35 CLIENTS=${CLIENTS:-"uml3"}
36
37 # Single system with additional clients
38 #MDSNODE=uml1
39 #OSTNODES="uml1 uml1"
40 #CLIENTS="$MDSNODE client"
41
42 # Two systems with client on MDS, and additional clients (set up OST first)
43 #MDSNODE=uml1
44 #OSTNODES="uml2 uml2"
45 #CLIENTS="$MDSNODE client"
46
47 # Two systems with client on OST, and additional clients (set up MDS first)
48 #MDSNODE=uml1
49 #OSTNODES="uml2 uml2"
50 #CLIENTS="$OSTNODES client"
51
52 rm -f $config
53
54 h2localhost () {
55         echo localhost
56 }
57         
58 h2tcp () {
59         case $1 in
60         client) echo '\*' ;;
61         *) echo $1 ;;
62         esac
63 }
64
65 h2elan () {
66         case $1 in
67         client) echo '\*' ;;
68         *) echo $1 | sed "s/[^0-9]*//" ;;
69         esac
70 }
71
72 # create nodes
73 echo -n "adding NET for:"
74 for NODE in `echo $MDSNODE $OSTNODES $CLIENTS | tr -s " " "\n" | sort -u`; do
75         echo -n " $NODE"
76         ${LMC} -m $config --add net --node $NODE --nid `h2$NIDTYPE $NODE` --nettype $NETTYPE || exit 1
77 done
78
79 # configure mds server
80 echo; echo "adding MDS on: $MDSNODE"
81 ${LMC} -m $config --add mds --format --node $MDSNODE --mds mds1 --fstype $FSTYPE --dev $MDSDEV --size $MDSSIZE ||exit 10
82
83 # configure ost
84 ${LMC} -m $config --add lov --lov lov1 --mds mds1 --stripe_sz 65536 --stripe_cnt $STRIPECNT --stripe_pattern 0 || exit 20
85 COUNT=1
86 echo -n "adding OST on:"
87 for NODE in $OSTNODES; do
88         eval OSTDEV=\$OSTDEV$COUNT
89         echo -n " $NODE"
90         OSTDEV=${OSTDEV:-$OSTDEVBASE$COUNT-`hostname`}
91         ${LMC} -m $config --add ost --node $NODE --lov lov1 --fstype $FSTYPE --dev $OSTDEV --size $OSTSIZE || exit 21
92         COUNT=`expr $COUNT + 1`
93 done
94
95 # create client config(s)
96 echo; echo -n "adding CLIENT on:"
97 for NODE in $CLIENTS; do
98         echo -n " $NODE"
99         ${LMC} -m $config --add mtpt --node $NODE --path /mnt/lustre --mds mds1 --lov lov1 || exit 30
100 done
101 echo