return
fi
- setup
- check_mount || return 41
- cleanup || return $?
+ setup
+ check_mount || return 41
+ cleanup || return $?
- echo "Remove mds config log"
- if ! combined_mgs_mds ; then
- stop mgs
- fi
+ echo "Remove mds config log"
+ if ! combined_mgs_mds ; then
+ stop mgs
+ fi
- do_facet mgs "$DEBUGFS -w -R 'unlink CONFIGS/$FSNAME-MDT0000' $MGSDEV || return \$?" || return $?
+ do_facet mgs "$DEBUGFS -w -R 'unlink CONFIGS/$FSNAME-MDT0000' \
+ $(mgsdevname) || return \$?" || return $?
- if ! combined_mgs_mds ; then
- start_mgs
- fi
+ if ! combined_mgs_mds ; then
+ start_mgs
+ fi
- start_ost
- start_mds && return 42
- reformat_and_config
+ start_ost
+ start_mds && return 42
+ reformat_and_config
}
run_test 17 "Verify failed mds_postsetup won't fail assertion (2936) (should return errs)"
}
run_test 31 "Connect to non-existent node (shouldn't crash)"
+
+T32_QID=60000
+T32_BLIMIT=20480 # Kbytes
+T32_ILIMIT=2
+
#
# This is not really a test but a tool to create new disk
# image tarballs for the upgrade tests.
mkdir $tmp/src
tar cf - -C $src . | tar xf - -C $tmp/src
+ dd if=/dev/zero of=$tmp/src/t32_qf_old bs=1M \
+ count=$(($T32_BLIMIT / 1024 / 2))
+ chown $T32_QID.$T32_QID $tmp/src/t32_qf_old
formatall
setupall
+
+ [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.3.50) ] &&
+ $LFS quotacheck -ug /mnt/$FSNAME
+ $LFS setquota -u $T32_QID -b 0 -B $T32_BLIMIT -i 0 -I $T32_ILIMIT \
+ /mnt/$FSNAME
+
tar cf - -C $tmp/src . | tar xf - -C /mnt/$FSNAME
stopall
popd
$LCTL get_param -n version | head -n 1 |
sed -e 's/^lustre: *//' >$tmp/img/commit
+
+ [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.3.50) ] &&
+ $LFS quotaon -ug /mnt/$FSNAME
+ $LFS quota -u $T32_QID -v /mnt/$FSNAME
+ $LFS quota -v -u $T32_QID /mnt/$FSNAME |
+ awk 'BEGIN { num='1' } { if ($1 == "'/mnt/$FSNAME'") \
+ { if (NF == 1) { getline } else { num++ } ; print $num;} }' \
+ | tr -d "*" > $tmp/img/bspace
+ $LFS quota -v -u $T32_QID /mnt/$FSNAME |
+ awk 'BEGIN { num='5' } { if ($1 == "'/mnt/$FSNAME'") \
+ { if (NF == 1) { getline } else { num++ } ; print $num;} }' \
+ | tr -d "*" > $tmp/img/ispace
+
stopall
pushd $tmp/src
return 1
}
+t32_verify_quota() {
+ local node=$1
+ local fsname=$2
+ local mnt=$3
+ local fstype=$(facet_fstype $SINGLEMDS)
+ local qval
+ local cmd
+
+ $LFS quota -u $T32_QID -v $mnt
+
+ qval=$($LFS quota -v -u $T32_QID $mnt |
+ awk 'BEGIN { num='1' } { if ($1 == "'$mnt'") \
+ { if (NF == 1) { getline } else { num++ } ; print $num;} }' \
+ | tr -d "*")
+ [ $qval -eq $img_bspace ] || {
+ echo "bspace, act:$qval, exp:$img_bspace"
+ return 1
+ }
+
+ qval=$($LFS quota -v -u $T32_QID $mnt |
+ awk 'BEGIN { num='5' } { if ($1 == "'$mnt'") \
+ { if (NF == 1) { getline } else { num++ } ; print $num;} }' \
+ | tr -d "*")
+ [ $qval -eq $img_ispace ] || {
+ echo "ispace, act:$qval, exp:$img_ispace"
+ return 1
+ }
+
+ qval=$($LFS quota -v -u $T32_QID $mnt |
+ awk 'BEGIN { num='3' } { if ($1 == "'$mnt'") \
+ { if (NF == 1) { getline } else { num++ } ; print $num;} }' \
+ | tr -d "*")
+ [ $qval -eq $T32_BLIMIT ] || {
+ echo "blimit, act:$qval, exp:$T32_BLIMIT"
+ return 1
+ }
+
+ qval=$($LFS quota -v -u $T32_QID $mnt |
+ awk 'BEGIN { num='7' } { if ($1 == "'$mnt'") \
+ { if (NF == 1) { getline } else { num++ } ; print $num;} }' \
+ | tr -d "*")
+ [ $qval -eq $T32_ILIMIT ] || {
+ echo "ilimit, act:$qval, exp:$T32_ILIMIT"
+ return 1
+ }
+
+ do_node $node $LCTL conf_param $fsname.quota.mdt=ug
+ cmd="$LCTL get_param -n osd-$fstype.$fsname-MDT0000"
+ cmd=$cmd.quota_slave.enabled
+ wait_update $node "$cmd" "ug" || {
+ echo "Enable mdt quota failed"
+ return 1
+ }
+
+ do_node $node $LCTL conf_param $fsname.quota.ost=ug
+ cmd="$LCTL get_param -n osd-$fstype.$fsname-OST0000"
+ cmd=$cmd.quota_slave.enabled
+ wait_update $node "$cmd" "ug" || {
+ echo "Enable ost quota failed"
+ return 1
+ }
+
+ chmod 0777 $mnt
+ runas -u $T32_QID -g $T32_QID dd if=/dev/zero of=$mnt/t32_qf_new \
+ bs=1M count=$(($T32_BLIMIT / 1024)) oflag=sync && {
+ echo "Write succeed, but expect -EDQUOT"
+ return 1
+ }
+ rm -f $mnt/t32_qf_new
+
+ runas -u $T32_QID -g $T32_QID createmany -m $mnt/t32_qf_ \
+ $T32_ILIMIT && {
+ echo "Create succeed, but expect -EDQUOT"
+ return 1
+ }
+ unlinkmany $mnt/t32_qf_ $T32_ILIMIT
+
+ return 0
+}
+
t32_test() {
local tarball=$1
local writeconf=$2
local img_commit
local img_kernel
local img_arch
+ local img_bspace
+ local img_ispace
local fsname=t32fs
local nid=$($r $LCTL list_nids | head -1)
local mopts
local nrpcs_orig
local nrpcs
local list
+ local fstype=$(facet_fstype $SINGLEMDS)
trap 'trap - RETURN; t32_test_cleanup' RETURN
img_commit=$($r cat $tmp/commit)
img_kernel=$($r cat $tmp/kernel)
img_arch=$($r cat $tmp/arch)
+ img_bspace=$($r cat $tmp/bspace)
+ img_ispace=$($r cat $tmp/ispace)
echo "Upgrading from $(basename $tarball), created with:"
echo " Commit: $img_commit"
echo " Kernel: $img_kernel"
}
if [ "$writeconf" ]; then
mopts=loop,writeconf
+ if [ $fstype == "ldiskfs" ]; then
+ $r $TUNEFS --quota $tmp/mdt || {
+ error_noexit "Enable mdt quota feature"
+ return 1
+ }
+ fi
else
mopts=loop,exclude=$fsname-OST0000
fi
}
if [ "$writeconf" ]; then
mopts=loop,mgsnode=$nid,$writeconf
+ if [ $fstype == "ldiskfs" ]; then
+ $r $TUNEFS --quota $tmp/ost || {
+ error_noexit "Enable ost quota feature"
+ return 1
+ }
+ fi
else
mopts=loop,mgsnode=$nid
fi
}
if [ "$dne_upgrade" != "no" ]; then
- $r2 $LCTL conf_param \
+ $r $LCTL conf_param \
$fsname-MDT0001.mdc.max_rpcs_in_flight=9 || {
error_noexit "Setting MDT1 \"max_rpcs_in_flight\""
return 1
}
- $r2 $LCTL conf_param $fsname-MDT0001.failover.node=$nid || {
+ $r $LCTL conf_param $fsname-MDT0001.failover.node=$nid || {
error_noexit "Setting MDT1 \"failover.node\""
return 1
}
- $r2 $LCTL conf_param $fsname-MDT0001.lov.stripesize=4M || {
+ $r $LCTL conf_param $fsname-MDT0001.lov.stripesize=4M || {
error_noexit "Setting MDT1 \"lov.stripesize\""
return 1
}
}
shall_cleanup_lustre=true
$LCTL set_param debug="$PTLDEBUG"
+
+ t32_verify_quota $node $fsname $tmp/mnt/lustre || {
+ error_noexit "verify quota failed"
+ return 1
+ }
+
if [ "$dne_upgrade" != "no" ]; then
$LFS mkdir -i 1 $tmp/mnt/lustre/remote_dir || {
error_noexit "set remote dir failed"
setup_noconfig
check_mount || error "error after nid replace"
- cleanup
+ cleanup || error "cleanup failed"
reformat
}
run_test 66 "replace nids"
local cmd="$E2FSCK -fnvd $mdsdev"
local fn=3
+ [ "$(facet_fstype $SINGLEMDS)" != "ldiskfs" ] &&
+ skip "ldiskfs only test" && return
+
#tune MDT with "-O extents"
add $SINGLEMDS \
$(mkfs_opts $SINGLEMDS ${mdsdev}) --reformat $mdsdev ||