5 export PATH=`dirname $0`/../utils:$PATH
7 config=${1:-`basename $0 .sh`.xml}
9 BATCH=/tmp/lmc-batch.$$
14 LMC_REAL="${LMC:-lmc} -m $config"
19 MOUNT=${MOUNT:-/mnt/lustre}
21 STRIPE_BYTES=$((1024*1024))
24 # specific journal size for the ost, in MB
27 [ "$JSIZE" -gt 0 ] && JARG="--journal_size $JSIZE"
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"}
38 CLIENT_CLUSTER=${CLIENT_CLUSTER:-0x0000}
39 CLIENT_LO=${CLIENT_LO:-cli3}
40 CLIENT_HI=${CLIENT_HI:-cli4}
41 CLIENTS=${CLIENTS:-client}
43 SERVER_CLUSTER=${SERVER_CLUSTER:-0x1000}
53 h2elan () { # assumes node names of the form fooN, where N is elan node ID
56 *) echo $1 | sed "s/[^0-9]*//" ;;
63 echo; echo -n "adding MDS on: $MDSNODE"
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 \
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
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
82 --dev $OSTDEV --size $OSTSIZE
85 for OSTNODE in $OSTNODES; do
87 eval OSTDEV=\$OSTDEV$COUNT
88 if [ -z "$OSTDEV" ]; then
89 eval OSTDEV=${!OSTDEV:=$TMP/$OST-$OSTNODE}
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
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
107 eval "NODE$OSTNODE=y"
110 $LMC --add ost --node $OSTNODE --ost ost-$FSNAME-$OSTNODE-$DEV \
111 --lov lov-$FSNAME $OSTFAILOVER --dev $OSTDEV --size $OSTSIZE \
113 COUNT=`expr $COUNT + 1`
117 echo; echo -n "adding ROUTER on: "
118 for ROUTER in $ROUTERS; do
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 \
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
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
145 echo; echo -n "adding CLIENT on: "
146 for CLIENT in $CLIENTS; do
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
156 echo "generating config $config from $BATCH"
157 $LMC_REAL --batch $BATCH