Whamcloud - gitweb
corrected an error made in setepall in test-framework.sh, which affects
[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 # OSTNODE
83 COUNT=1
84 for OSTNODE in $OSTNODES; do
85         OST=ost$COUNT
86         eval OSTDEV=\$OSTDEV$COUNT
87         if [ -z "$OSTDEV" ]; then
88                 eval OSTDEV=${!OSTDEV:=$TMP/$OST-$OSTNODE}
89         fi
90         DEV=`basename $OSTDEV`
91         echo; echo -n "adding OST on: $OSTNODE[$DEV]"
92         if [ "`eval echo \\$NODE$OSTNODE`" != "y" ]; then
93                 $LMC --add net --node $OSTNODE --nid $OSTNODE           \
94                         --nettype $SERVER_NETTYPE --cluster_id $SERVER_CLUSTER
95                 # OST route to elan clients
96                 for R in $ROUTERS; do
97                         echo -n " [r=$R]"
98                         $LMC --node $OSTNODE --add route                \
99                                 --nettype $SERVER_NETTYPE               \
100                                 --gw `h2$CLIENT_NETTYPE $R`             \
101                                 --lo `h2$CLIENT_NETTYPE $CLIENT_LO`     \
102                                 --hi `h2$CLIENT_NETTYPE $CLIENT_HI`     \
103                                 --gateway_cluster_id $SERVER_CLUSTER    \
104                                 --target_cluster_id $SERVER_CLUSTER
105                 done
106                 eval "NODE$OSTNODE=y"
107         fi
108
109         $LMC --add ost --node $OSTNODE --ost ost-$FSNAME-$OSTNODE-$DEV  \
110                 --lov lov-$FSNAME $OSTFAILOVER --dev $OSTDEV --size $OSTSIZE \
111                 $OSTOPT
112         COUNT=`expr $COUNT + 1`
113 done
114
115 # ROUTER
116 echo; echo -n "adding ROUTER on: "
117 for ROUTER in $ROUTERS; do
118         echo -n " $ROUTER"
119         $LMC --node $ROUTER --add net --nid `h2$CLIENT_NETTYPE $ROUTER` \
120                 --cluster_id $SERVER_CLUSTER --nettype $SERVER_NETTYPE  \
121                 --hostaddr $ROUTER --router
122         $LMC --node $ROUTER --add net --nid `h2$CLIENT_NETTYPE $ROUTER` \
123                 --cluster_id $CLIENT_CLUSTER --nettype $CLIENT_NETTYPE  \
124                 --router
125         # ROUTER route to OSTs and MDS
126         for NODE in `echo $MDSNODE $OSTNODES | tr -s " " "\n" | sort -u`; do
127                 $LMC --node $ROUTER --add route                         \
128                         --nettype $SERVER_NETTYPE                       \
129                         --gw `h2$CLIENT_NETTYPE $ROUTER`                \
130                         --lo `h2$SERVER_NETTYPE $NODE`                  \
131                         --gateway_cluster_id $SERVER_CLUSTER            \
132                         --target_cluster_id $SERVER_CLUSTER
133         done
134         # ROUTER route to clients
135         $LMC --node $ROUTER --add route --nettype $CLIENT_NETTYPE       \
136                 --gw `h2$CLIENT_NETTYPE $ROUTER`                        \
137                 --lo `h2$CLIENT_NETTYPE $CLIENT_LO`                     \
138                 --hi `h2$CLIENT_NETTYPE $CLIENT_HI`                     \
139                 --gateway_cluster_id $CLIENT_CLUSTER                    \
140                 --target_cluster_id $CLIENT_CLUSTER
141 done
142
143 # CLIENT
144 echo; echo -n "adding CLIENT on: "
145 for CLIENT in $CLIENTS; do
146         echo -n " $CLIENT"
147         $LMC --node $CLIENT --add net --nid `h2$CLIENT_NETTYPE $CLIENT` \
148                 --cluster_id $CLIENT_CLUSTER --nettype $CLIENT_NETTYPE
149         $LMC --node $CLIENT --add mtpt --path $MOUNT --mds mds-$FSNAME  \
150                 --lov lov-$FSNAME $CLIENTOPT
151 done
152 echo
153
154 set -vx
155 echo "generating config $config from $BATCH"
156 $LMC_REAL --batch $BATCH