[lvm-devel] stable-2.02 - tests: use delayzero_dev
Zdenek Kabelac
zkabelac at sourceware.org
Fri Oct 16 19:11:15 UTC 2020
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=8ad7c344cd06e14f40bd66a98315db68665cd79e
Commit: 8ad7c344cd06e14f40bd66a98315db68665cd79e
Parent: 5ac48c0655c9b0da6846dca30e1250f9a1f78f70
Author: Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate: Fri Sep 4 18:05:01 2020 +0200
Committer: Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Fri Oct 16 17:07:58 2020 +0200
tests: use delayzero_dev
Speed-up a bit the first synchronization with just 50ms write delay,
but later set also delay on read to slowdown lvextend.
FIXME: there are still things to look at:
0 229376 raid raid1 2 AA 229376/229376 idle 0 0
0 229376 raid raid1 2 AA 0/229376 frozen 0 0 -
0 262144 raid raid1 2 AA 229376/262144 repair 0 0 -
0 262144 raid raid1 2 AA 229376/262144 repair 0 0 -
0 262144 raid raid1 2 AA 245888/262144 repair 0 0 -
---
test/shell/lvextend-raid.sh | 23 ++++++++++++++++++++---
1 file changed, 20 insertions(+), 3 deletions(-)
diff --git a/test/shell/lvextend-raid.sh b/test/shell/lvextend-raid.sh
index 471097e45..04e9adf87 100644
--- a/test/shell/lvextend-raid.sh
+++ b/test/shell/lvextend-raid.sh
@@ -21,7 +21,7 @@ v1_15_0=0
aux have_raid 1 15 0 && v1_15_0=1
# Use smallest regionsize to save VG space
-regionsize=`getconf PAGESIZE` # in bytes
+regionsize=$(getconf PAGESIZE) # in bytes
let pageregions=regionsize*8 # number of regions per MD bitmap page
# in KiB
@@ -35,7 +35,14 @@ aux prepare_pvs 2 $(($lvsz + 3 * $lvext))
get_devs
vgcreate -s 4k $vg ${DEVICES[@]}
-aux delay_dev "$dev1" 0 150
+# Keep $dev1 & $dev2 always open via small active LVs.
+# This trick avoids race on system with scanning udev service
+# when device is 'in-use' and we cleared _rimage & _rmeta.
+lvcreate -l1 $vg "$dev1"
+lvcreate -l1 $vg "$dev2"
+
+sector=$(( $(get first_extent_sector "$dev2") + 2048 ))
+aux delayzero_dev "$dev2" 0 50 "${sector}:"
# Create raid1 LV consuming 1 MD bitmap page
lvcreate --yes --type raid1 --regionsize ${regionsize}K -L$(($lvsz-$lvext))M -n $lv1 $vg
@@ -45,10 +52,17 @@ aux wait_for_sync $vg $lv1
check lv_field $vg/$lv1 sync_percent "100.00"
check lv_field $vg/$lv1 region_size "4.00k"
+# to slow down extension - slowdown readings
+aux delayzero_dev "$dev1" 50 0 "${sector}:"
+
+dmsetup table
+dmsetup info -c
+dmsetup status
# Extend so that full MD bitmap page is consumed
-lvextend -y -L+${lvext}M $vg/$lv1
+lvextend -vvvv -y -L+${lvext}M $vg/$lv1
not check lv_field $vg/$lv1 sync_percent "100.00"
check lv_field $vg/$lv1 size "$(($lvsz)).00m" $vg/$lv1
+lvs -a $vg
aux wait_for_sync $vg $lv1
check lv_field $vg/$lv1 sync_percent "100.00"
@@ -64,4 +78,7 @@ aux wait_for_sync $vg $lv1
check lv_field $vg/$lv1 sync_percent "100.00"
check lv_field $vg/$lv1 size "$(($lvsz+$lvext)).00m" $vg/$lv1
+aux enable_dev "$dev1"
+aux enable_dev "$dev2"
+
vgremove -ff $vg
More information about the lvm-devel
mailing list