ZTS: zpool_trim tests throttle trim process
Otherwise trim may finish before progress checks. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: George Melikov <mail@gmelikov.ru> Closes #11296
This commit is contained in:
parent
07ca433973
commit
65c4c9a233
|
@ -30,6 +30,23 @@ function trim_progress # pool disk
|
||||||
trim_prog_line "$1" "$2" | sed 's/.*(\([0-9]\{1,\}\)% trimmed.*/\1/g'
|
trim_prog_line "$1" "$2" | sed 's/.*(\([0-9]\{1,\}\)% trimmed.*/\1/g'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Write a bit of data and sync several times.
|
||||||
|
#
|
||||||
|
function sync_and_rewrite_some_data_a_few_times
|
||||||
|
{
|
||||||
|
typeset pool=$1
|
||||||
|
typeset -i a_few_times=${2:-20}
|
||||||
|
|
||||||
|
typeset file="/$pool/tmpfile"
|
||||||
|
for i in {0..$a_few_times}; do
|
||||||
|
dd if=/dev/urandom of=${file} bs=128k count=10
|
||||||
|
sync_pool "$pool"
|
||||||
|
done
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
function cleanup
|
function cleanup
|
||||||
{
|
{
|
||||||
if poolexists $TESTPOOL; then
|
if poolexists $TESTPOOL; then
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
# Trimming automatically resumes across offline/online.
|
# Trimming automatically resumes across offline/online.
|
||||||
#
|
#
|
||||||
# STRATEGY:
|
# STRATEGY:
|
||||||
# 1. Create a pool with a two-way mirror.
|
# 1. Create a pool with a two-way mirror, prepare blocks to trim.
|
||||||
# 2. Start trimming one of the disks and verify that trimming is active.
|
# 2. Start trimming one of the disks and verify that trimming is active.
|
||||||
# 3. Offline the disk.
|
# 3. Offline the disk.
|
||||||
# 4. Online the disk.
|
# 4. Online the disk.
|
||||||
|
@ -39,8 +39,10 @@
|
||||||
DISK1=${DISKS%% *}
|
DISK1=${DISKS%% *}
|
||||||
DISK2="$(echo $DISKS | cut -d' ' -f2)"
|
DISK2="$(echo $DISKS | cut -d' ' -f2)"
|
||||||
|
|
||||||
log_must zpool create -f $TESTPOOL mirror $DISK1 $DISK2
|
log_must zpool create -f $TESTPOOL mirror $DISK1 $DISK2 -O recordsize=4k
|
||||||
log_must zpool trim -r 128M $TESTPOOL $DISK1
|
sync_and_rewrite_some_data_a_few_times $TESTPOOL
|
||||||
|
|
||||||
|
log_must zpool trim -r 1 $TESTPOOL $DISK1
|
||||||
|
|
||||||
log_must zpool offline $TESTPOOL $DISK1
|
log_must zpool offline $TESTPOOL $DISK1
|
||||||
|
|
||||||
|
|
|
@ -39,8 +39,10 @@ DISK2="$(echo $DISKS | cut -d' ' -f2)"
|
||||||
DISK3="$(echo $DISKS | cut -d' ' -f3)"
|
DISK3="$(echo $DISKS | cut -d' ' -f3)"
|
||||||
|
|
||||||
log_must zpool list -v
|
log_must zpool list -v
|
||||||
log_must zpool create -f $TESTPOOL $DISK1 $DISK2 $DISK3
|
log_must zpool create -f $TESTPOOL $DISK1 $DISK2 $DISK3 -O recordsize=4k
|
||||||
log_must zpool trim -r 128M $TESTPOOL $DISK1
|
sync_and_rewrite_some_data_a_few_times $TESTPOOL
|
||||||
|
|
||||||
|
log_must zpool trim -r 1 $TESTPOOL $DISK1
|
||||||
|
|
||||||
[[ -z "$(trim_progress $TESTPOOL $DISK1)" ]] && \
|
[[ -z "$(trim_progress $TESTPOOL $DISK1)" ]] && \
|
||||||
log_fail "Trim did not start"
|
log_fail "Trim did not start"
|
||||||
|
|
Loading…
Reference in New Issue