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
84 for OSTNODE in $OSTNODES; do
86 eval OSTDEV=\$OSTDEV$COUNT
87 if [ -z "$OSTDEV" ]; then
88 eval OSTDEV=${!OSTDEV:=$TMP/$OST-$OSTNODE}
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
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
106 eval "NODE$OSTNODE=y"
109 $LMC --add ost --node $OSTNODE --ost ost-$FSNAME-$OSTNODE-$DEV \
110 --lov lov-$FSNAME $OSTFAILOVER --dev $OSTDEV --size $OSTSIZE \
112 COUNT=`expr $COUNT + 1`
116 echo; echo -n "adding ROUTER on: "
117 for ROUTER in $ROUTERS; do
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 \
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
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
144 echo; echo -n "adding CLIENT on: "
145 for CLIENT in $CLIENTS; do
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
155 echo "generating config $config from $BATCH"
156 $LMC_REAL --batch $BATCH