Whamcloud - gitweb
* newconfig liblustre/tcpnal runs sanity OK
[fs/lustre-release.git] / lustre / tests / routed.sh
1 #!/bin/sh -vx
2
3 set -e
4
5 export PATH=`dirname $0`/../utils:$PATH
6
7 config=${1:-`basename $0 .sh`.xml}
8
9 BATCH=/tmp/lmc-batch.$$
10 save_cmd() {
11     echo "$@" >> $BATCH
12 }
13
14 LMC_REAL="${LMC:-lmc} -m $config"
15 LMC="save_cmd"
16
17 TMP=${TMP:-/tmp}
18
19 MOUNT=${MOUNT:-/mnt/lustre}
20
21 STRIPE_BYTES=$((1024*1024))
22 STRIPES_PER_OBJ=1
23
24 # specific journal size for the ost, in MB
25 JSIZE=${JSIZE:-0}
26 JARG=""
27 [ "$JSIZE" -gt 0 ] && JARG="--journal_size $JSIZE"
28
29 MDSNODE=${MDSNODE:-srv1}
30 MDSDEV=${MDSDEV:-$TMP/mds1-$MDSNODE}
31 MDSSIZE=${MDSSIZE:-400000}
32 OSTNODES=${OSTNODES:-"srv2 srv3 srv2 srv3"}
33 OSTSIZE=${OSTSIZE:-150000}
34 # OSTDEVN will still override the device for OST N
35 OSTFAILOVER=${OSTFAILOVER:---failover}
36 ROUTERS=${ROUTERS:-"cli1 cli2"}
37 CLIENT_NETTYPE=elan
38 CLIENT_CLUSTER=${CLIENT_CLUSTER:-0x0000}
39 CLIENT_LO=${CLIENT_LO:-cli3}
40 CLIENT_HI=${CLIENT_HI:-cli4}
41 CLIENTS=${CLIENTS:-client}
42 SERVER_NETTYPE=tcp
43 SERVER_CLUSTER=${SERVER_CLUSTER:-0x1000}
44 FSNAME=fs1
45
46 h2tcp () {
47         case $1 in
48         client) echo '\*' ;;
49         *) echo $1 ;;
50         esac
51 }
52
53 h2elan () { # assumes node names of the form fooN, where N is elan node ID
54         case $1 in
55         client) echo '\*' ;;
56         *) echo $1 | sed "s/[^0-9]*//" ;;
57         esac
58 }
59
60 rm -f $config $BATCH
61
62 # MDSNODE
63 echo; echo -n "adding MDS on: $MDSNODE"
64 eval "NODE$MDSNODE=y"
65 $LMC --add net --node $MDSNODE --nid `h2$SERVER_NETTYPE $MDSNODE` \
66         --nettype $SERVER_NETTYPE --cluster_id $SERVER_CLUSTER
67 $LMC --add mds --node $MDSNODE --mds mds-$FSNAME --dev $MDSDEV $MDSOPT  \
68         --size $MDSSIZE
69 $LMC --add lov --lov lov-$FSNAME --mds mds-$FSNAME --stripe_sz $STRIPE_BYTES \
70         --stripe_cnt $STRIPES_PER_OBJ --stripe_pattern 0
71 # MDS route to elan client
72 for R in $ROUTERS; do
73         echo -n " [r=$R]"
74         $LMC --node $MDSNODE --add route --nettype $SERVER_NETTYPE      \
75                 --gw `h2$CLIENT_NETTYPE $R`                             \
76                 --lo `h2$CLIENT_NETTYPE $CLIENT_LO`                     \
77                 --hi `h2$CLIENT_NETTYPE $CLIENT_HI`                     \
78                 --gateway_cluster_id $SERVER_CLUSTER                    \
79                 --target_cluster_id $SERVER_CLUSTER
80 done
81
82 --dev $OSTDEV --size $OSTSIZE
83 # OSTNODE
84 COUNT=1
85 for OSTNODE in $OSTNODES; do
86         OST=ost$COUNT
87         eval OSTDEV=\$OSTDEV$COUNT
88         if [ -z "$OSTDEV" ]; then
89                 eval OSTDEV=${!OSTDEV:=$TMP/$OST-$OSTNODE}
90         fi
91         DEV=`basename $OSTDEV`
92         echo; echo -n "adding OST on: $OSTNODE[$DEV]"
93         if [ "`eval echo \\$NODE$OSTNODE`" != "y" ]; then
94                 $LMC --add net --node $OSTNODE --nid $OSTNODE           \
95                         --nettype $SERVER_NETTYPE --cluster_id $SERVER_CLUSTER
96                 # OST route to elan clients
97                 for R in $ROUTERS; do
98                         echo -n " [r=$R]"
99                         $LMC --node $OSTNODE --add route                \
100                                 --nettype $SERVER_NETTYPE               \
101                                 --gw `h2$CLIENT_NETTYPE $R`             \
102                                 --lo `h2$CLIENT_NETTYPE $CLIENT_LO`     \
103                                 --hi `h2$CLIENT_NETTYPE $CLIENT_HI`     \
104                                 --gateway_cluster_id $SERVER_CLUSTER    \
105                                 --target_cluster_id $SERVER_CLUSTER
106                 done
107                 eval "NODE$OSTNODE=y"
108         fi
109
110         $LMC --add ost --node $OSTNODE --ost ost-$FSNAME-$OSTNODE-$DEV  \
111                 --lov lov-$FSNAME $OSTFAILOVER --dev $OSTDEV --size $OSTSIZE \
112                 $OSTOPT
113         COUNT=`expr $COUNT + 1`
114 done
115
116 # ROUTER
117 echo; echo -n "adding ROUTER on: "
118 for ROUTER in $ROUTERS; do
119         echo -n " $ROUTER"
120         $LMC --node $ROUTER --add net --nid `h2$CLIENT_NETTYPE $ROUTER` \
121                 --cluster_id $SERVER_CLUSTER --nettype $SERVER_NETTYPE  \
122                 --hostaddr $ROUTER --router
123         $LMC --node $ROUTER --add net --nid `h2$CLIENT_NETTYPE $ROUTER` \
124                 --cluster_id $CLIENT_CLUSTER --nettype $CLIENT_NETTYPE  \
125                 --router
126         # ROUTER route to OSTs and MDS
127         for NODE in `echo $MDSNODE $OSTNODES | tr -s " " "\n" | sort -u`; do
128                 $LMC --node $ROUTER --add route                         \
129                         --nettype $SERVER_NETTYPE                       \
130                         --gw `h2$CLIENT_NETTYPE $ROUTER`                \
131                         --lo `h2$SERVER_NETTYPE $NODE`                  \
132                         --gateway_cluster_id $SERVER_CLUSTER            \
133                         --target_cluster_id $SERVER_CLUSTER
134         done
135         # ROUTER route to clients
136         $LMC --node $ROUTER --add route --nettype $CLIENT_NETTYPE       \
137                 --gw `h2$CLIENT_NETTYPE $ROUTER`                        \
138                 --lo `h2$CLIENT_NETTYPE $CLIENT_LO`                     \
139                 --hi `h2$CLIENT_NETTYPE $CLIENT_HI`                     \
140                 --gateway_cluster_id $CLIENT_CLUSTER                    \
141                 --target_cluster_id $CLIENT_CLUSTER
142 done
143
144 # CLIENT
145 echo; echo -n "adding CLIENT on: "
146 for CLIENT in $CLIENTS; do
147         echo -n " $CLIENT"
148         $LMC --node $CLIENT --add net --nid `h2$CLIENT_NETTYPE $CLIENT` \
149                 --cluster_id $CLIENT_CLUSTER --nettype $CLIENT_NETTYPE
150         $LMC --node $CLIENT --add mtpt --path $MOUNT --mds mds-$FSNAME  \
151                 --lov lov-$FSNAME $CLIENTOPT
152 done
153 echo
154
155 set -vx
156 echo "generating config $config from $BATCH"
157 $LMC_REAL --batch $BATCH