[lvm-devel] master - tests: use delayzero_dev
Zdenek Kabelac
zkabelac at sourceware.org
Fri Sep 4 16:13:51 UTC 2020
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=10fc3610c46be494c6d15c845b2b85a3ca955d79
Commit: 10fc3610c46be494c6d15c845b2b85a3ca955d79
Parent: 76b1f43e812189ea325eed979786a07b4cf7d684
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 Sep 4 18:11:42 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 e38634ba7..abd4cc508 100644
--- a/test/shell/lvextend-raid.sh
+++ b/test/shell/lvextend-raid.sh
@@ -20,7 +20,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
@@ -34,7 +34,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
@@ -44,10 +51,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"
@@ -63,4 +77,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