Whamcloud - gitweb
b=15621
authorgrev <grev>
Thu, 9 Oct 2008 20:16:23 +0000 (20:16 +0000)
committergrev <grev>
Thu, 9 Oct 2008 20:16:23 +0000 (20:16 +0000)
i=Umka
test_51bb, verifies CMD functionality

lustre/tests/sanity.sh

index 60b66ee..d227799 100644 (file)
@@ -2199,39 +2199,54 @@ test_51b() {
 run_test 51b "mkdir .../t-0 --- .../t-$NUMTEST ===================="
 
 test_51bb() {
-       [ -z "$CLIENTS" ] && skip "needs >= 2 CLIENTS" && return
        [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return 
-       NUMFREE=`df -i -P $DIR | tail -n 1 | awk '{ print $4 }'`
-       [ $NUMFREE -lt 21000 ] && \
-               skip "not enough free inodes ($NUMFREE)" && \
-               return
 
-       check_kernel_version 40 || NUMTEST=31000
-       [ $NUMFREE -lt $NUMTEST ] && NUMTEST=$(($NUMFREE - 50))
+       local ndirs=${TEST51BB_NDIRS:-10}
+       local nfiles=${TEST51BB_NFILES:-100}
 
-       mkdir -p $DIR/d51bb
+       local numfree=`df -i -P $DIR | tail -n 1 | awk '{ print $4 }'`
 
-       IUSED=$(lfs df -i $DIR | grep MDT | awk '{print $3}')
+       [ $numfree -lt $(( ndirs * nfiles)) ] && \
+               nfiles=$(( numfree / ndirs - 10 ))
+
+       local dir=$DIR/d51bb
+       mkdir -p $dir
+       local savePOLICY=$(lctl get_param -n lmv.*.placement)
+       lctl set_param -n lmv.*.placement=CHAR
+
+       lfs df -i $dir
+       local IUSED=$(lfs df -i $dir | grep MDT | awk '{print $3}')
        OLDUSED=($IUSED)
 
-       do_nodes $CLIENTS "mkdir -p $DIR/\$(hostname)"
+       declare -a dirs
+       for ((i=0; i < $ndirs; i++)); do
+               dirs[i]=$dir/$RANDOM
+               echo Creating directory ${dirs[i]} 
+               mkdir -p ${dirs[i]}
+               ls $dir
+               echo Creating $nfiles in dir ${dirs[i]} ...
+               echo "createmany -o ${dirs[i]}/$tfile- $nfiles"
+               createmany -o ${dirs[i]}/$tfile- $nfiles
+       done
+       ls $dir
 
-       ls $DIR
+       sleep 1
 
-       do_nodes $CLIENTS "createmany -d $DIR/\$(hostname)/t- $NUMTEST"
-       IUSED=$(lfs df -i $DIR | grep MDT | awk '{print $3}')
+       IUSED=$(lfs df -i $dir | grep MDT | awk '{print $3}')
        NEWUSED=($IUSED)
 
        local rc=0
        for ((i=0; i<${#NEWUSED[@]}; i++)); do
                echo "mds $i: inodes count OLD ${OLDUSED[$i]} NEW ${NEWUSED[$i]}"
-               [ ${OLDUSED[$i]} -lt ${NEWUSED[$i]} ] || rc=1
+               [ ${OLDUSED[$i]} -lt ${NEWUSED[$i]} ] || rc=$((rc + 1))
        done
        
-       [ $rc -ne 0 ] && error "no CMD functionality!"
+       lctl set_param -n lmv.*.placement=$savePOLICY
+
+       [ $rc -ne $MDSCOUNT ] || \
+               error "Objects/inodes are not distributed over all mds servers"
 }
-run_test 51bb "mkdir .../t-0 --- .../t-$NUMTEST (CMD) ===================="
+run_test 51bb "mkdir createmany CMD $MDSCOUNT  ===================="
 
 
 test_51c() {