(( $count == 100 )) ||
error "subdirs are not evenly distributed"
elif (( $i == $stripe_index )); then
- (( $count == 100 * $MDSCOUNT )) ||
+ (( $count == 100 * MDSCOUNT )) ||
error "$count subdirs created on MDT$i"
else
(( $count == 0 )) ||
grep -c -P "^\s+$i\t")
echo "$count stripes created on MDT$i"
# deviation should < 5% of average
- (( $count >= 95 * $stripe_count &&
- $count <= 105 * $stripe_count)) ||
+ (( $count >= 95 * stripe_count &&
+ $count <= 105 * stripe_count)) ||
error "stripes are not evenly distributed"
fi
done
if [ $stripe_count -gt 1 ]; then
count=$($LFS getdirstripe $testdir/* |
- grep -P "^\s+$i\t" | wc -l)
+ grep -c -P "^\s+$i\t")
echo "$count stripes created on MDT$i"
fi
done
fi
}
+most_full_mdt() {
+ local ffree
+ local bavail
+ local bsize
+ local min
+ local min_index
+ local tmp
+
+ ffree=($(lctl get_param -n mdc.*[mM][dD][cC]-[^M]*.filesfree))
+ bavail=($(lctl get_param -n mdc.*[mM][dD][cC]-[^M]*.kbytesavail))
+ bsize=$(lctl get_param -n mdc.*MDT0000*.blocksize)
+
+ min=$(((${ffree[0]} >> 8) * (${bavail[0]} * bsize >> 16)))
+ min_index=0
+ for ((i = 1; i < ${#ffree[@]}; i++)); do
+ tmp=$(((${ffree[i]} >> 8) * (${bavail[i]} * bsize >> 16)))
+ (( tmp < min )) && min=$tmp && min_index=$i
+ done
+
+ echo -n $min_index
+}
+
test_413a() {
[ $MDSCOUNT -lt 2 ] &&
skip "We need at least 2 MDTs for this test"
for stripe_count in $(seq 1 $((MDSCOUNT - 1))); do
mkdir $DIR/$tdir-s$stripe_count || error "mkdir failed"
mkdir $DIR/$tdir-s$stripe_count/rr || error "mkdir failed"
- mkdir $DIR/$tdir-s$stripe_count/qos || error "mkdir failed"
+ $LFS mkdir -i $(most_full_mdt) $DIR/$tdir-s$stripe_count/qos ||
+ error "mkdir failed"
test_qos_mkdir "$LFS mkdir -i -1 -c $stripe_count" $stripe_count
done
}
testdir=$DIR/$tdir-s$stripe_count
mkdir $testdir || error "mkdir $testdir failed"
mkdir $testdir/rr || error "mkdir rr failed"
- mkdir $testdir/qos || error "mkdir qos failed"
+ $LFS mkdir -i $(most_full_mdt) $testdir/qos ||
+ error "mkdir qos failed"
$LFS setdirstripe -D -c $stripe_count --max-inherit-rr 2 \
$testdir/rr || error "setdirstripe rr failed"
$LFS setdirstripe -D -c $stripe_count $testdir/qos ||
run_test 413b "QoS mkdir under dir whose default LMV starting MDT offset is -1"
test_413c() {
- [ $MDSCOUNT -ge 2 ] ||
+ (( $MDSCOUNT >= 2 )) ||
skip "We need at least 2 MDTs for this test"
[ $MDS1_VERSION -ge $(version_code 2.14.0) ] ||
testdir=$DIR/${tdir}-s1
mkdir -v $testdir || error "mkdir $testdir failed"
mkdir -v $testdir/rr || error "mkdir rr failed"
- mkdir -v $testdir/qos || error "mkdir qos failed"
+ $LFS mkdir -i $(most_full_mdt) $testdir/qos || error "mkdir qos failed"
# default max_inherit is -1, default max_inherit_rr is 0
$LFS setdirstripe -D -c 1 $testdir/rr ||
error "setdirstripe rr failed"
inherit=$($LFS getdirstripe -D -X $testdir/rr/level1)
(( $inherit == -1 )) || error "rr/level1 inherit $inherit != -1"
inherit_rr=$($LFS getdirstripe -D --max-inherit-rr $testdir/rr/level1)
- (( $inherit_rr == 0 )) ||
- error "rr/level1 inherit-rr $inherit_rr != 0"
+ (( $inherit_rr == 0 )) || error "rr/level1 inherit-rr $inherit_rr != 0"
mkdir -v $testdir/qos/level1 || error "mkdir qos/level1 failed"
inherit=$($LFS getdirstripe -D -X $testdir/qos/level1)