From: Zdenek Kabelac <zkabelac@sourceware.org>
To: lvm-devel@redhat.com
Subject: main - tests: more usage of new aux mdadm_create
Date: Mon, 22 Mar 2021 21:53:54 +0000 (GMT) [thread overview]
Message-ID: <20210322215354.1FD7D3854820@sourceware.org> (raw)
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=b1483dcbac0ffbc3e449e6fb8b17988203f45c57
Commit: b1483dcbac0ffbc3e449e6fb8b17988203f45c57
Parent: 76d203517bc78508234706f3ee5ce8ce6d38bee4
Author: Zdenek Kabelac <zkabelac@redhat.com>
AuthorDate: Mon Mar 22 21:45:39 2021 +0100
Committer: Zdenek Kabelac <zkabelac@redhat.com>
CommitterDate: Mon Mar 22 22:49:11 2021 +0100
tests: more usage of new aux mdadm_create
Condense tests and use the new mdadm_create.
---
test/shell/lvm-on-md.sh | 262 +++++++-----------------------------
test/shell/pvcreate-operation-md.sh | 23 +---
2 files changed, 59 insertions(+), 226 deletions(-)
diff --git a/test/shell/lvm-on-md.sh b/test/shell/lvm-on-md.sh
index 910ebc742..22d5b4ca4 100644
--- a/test/shell/lvm-on-md.sh
+++ b/test/shell/lvm-on-md.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
-# Copyright (C) 2018 Red Hat, Inc. All rights reserved.
+# Copyright (C) 2018-2021 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing to use,
# modify, copy, or redistribute it subject to the terms and conditions
@@ -22,166 +22,40 @@ HINTS="$RUNDIR/lvm/hints"
_clear_online_files() {
# wait till udev is finished
aux udev_wait
- rm -f "$PVS_ONLINE_DIR"/*
- rm -f "$VGS_ONLINE_DIR"/*
+ rm -f "$PVS_ONLINE_DIR"/* "$VGS_ONLINE_DIR"/*
}
. lib/inittest
-test -f /proc/mdstat && grep -q raid1 /proc/mdstat || \
- modprobe raid1 || skip
-
-mddev="/dev/md33"
-not grep $mddev /proc/mdstat || skip
-
-aux lvmconf 'devices/md_component_detection = 1'
# This stops lvm from taking advantage of hints which
# will have already excluded md components.
-aux lvmconf 'devices/hints = "none"'
# This stops lvm from asking udev if a dev is an md component.
# LVM will ask udev if a dev is an md component, but we don't
# want to rely on that ability in this test.
-aux lvmconf 'devices/obtain_device_list_from_udev = 0'
+aux lvmconf "devices/md_component_detection = 1" \
+ "devices/hints = \"none\"" \
+ "devices/obtain_device_list_from_udev = 0"
aux extend_filter_md "a|/dev/md|"
aux prepare_devs 3
-# create 2 disk MD raid1 array
-# by default using metadata format 1.0 with data at the end of device
-
-mdadm --create --metadata=1.0 "$mddev" --level 1 --chunk=64 --raid-devices=2 "$dev1" "$dev2"
-aux wait_md_create "$mddev"
-vgcreate $vg "$mddev"
-
-PVIDMD=`pvs $mddev --noheading -o uuid | tr -d - | awk '{print $1}'`
-echo $PVIDMD
-
-lvcreate -n $lv1 -l 2 $vg
-lvcreate -n $lv2 -l 2 -an $vg
-
-lvchange -ay $vg/$lv2
-check lv_field $vg/$lv1 lv_active "active"
-
-# lvm does not show md components as PVs
-pvs "$mddev"
-not pvs "$dev1"
-not pvs "$dev2"
-pvs > out
-not grep "$dev1" out
-not grep "$dev2" out
-
-sleep 1
-
-vgchange -an $vg
-sleep 1
-
-# When the md device is started, lvm will see that and know to
-# scan for md components, so stop the md device to remove this
-# advantage so we will test the fallback detection.
-mdadm --stop "$mddev"
-aux udev_wait
-
-# The md components should still be detected and excluded.
-not pvs "$dev1"
-not pvs "$dev2"
-pvs > out
-not grep "$dev1" out
-not grep "$dev2" out
-
-pvs 2>&1|tee out
-not grep "Not using device" out
-
-# should not activate from the md legs
-not vgchange -ay $vg
-
-# should not show an active lv
-rm out
-lvs -o active $vg |tee out || true
-not grep "active" out
-
-# should not allow updating vg
-not lvcreate -l1 $vg
-
-# should not activate from the md legs
-_clear_online_files
-pvscan --cache -aay "$dev1"
-pvscan --cache -aay "$dev2"
-
-not ls "$RUNDIR/lvm/pvs_online/$PVIDMD"
-not ls "$RUNDIR/lvm/vgs_online/$vg"
-
-# should not show an active lv
-rm out
-lvs -o active $vg |tee out || true
-not grep "active" out
-
-mdadm --assemble "$mddev" "$dev1" "$dev2"
-aux udev_wait
+for level in 1 0 ; do
-not pvs "$dev1"
-not pvs "$dev2"
-pvs > out
-not grep "$dev1" out
-not grep "$dev2" out
-
-lvs $vg
-vgchange -an $vg
-
-# should not activate from the md legs
-_clear_online_files
-pvscan --cache -aay "$dev1"
-pvscan --cache -aay "$dev2"
-
-not ls "$RUNDIR/lvm/pvs_online/$PVIDMD"
-not ls "$RUNDIR/lvm/vgs_online/$vg"
-
-# should not show an active lv
-rm out
-lvs -o active $vg |tee out || true
-not grep "active" out
-
-vgchange -ay $vg
-
-check lv_field $vg/$lv1 lv_active "active"
-
-vgchange -an $vg
-
-_clear_online_files
-pvscan --cache -aay "$mddev"
-
-ls "$RUNDIR/lvm/pvs_online/$PVIDMD"
-ls "$RUNDIR/lvm/vgs_online/$vg"
-
-lvs -o active $vg |tee out || true
-grep "active" out
-
-vgchange -an $vg
-
-aux udev_wait
-
-vgremove -f $vg
-
-mdadm --stop "$mddev"
-aux udev_wait
-aux wipefs_a "$dev1"
-aux wipefs_a "$dev2"
-aux udev_wait
-
-
-# create 2 disk MD raid0 array
+# create 2 disk MD raid1 array
# by default using metadata format 1.0 with data at the end of device
+#
# When a raid0 md array is stopped, the components will not look like
# duplicate PVs as they do with raid1.
-mdadm --create --metadata=1.0 "$mddev" --level 0 --chunk=64 --raid-devices=2 "$dev1" "$dev2"
-aux wait_md_create "$mddev"
+aux mdadm_create --metadata=1.0 --level=$level --chunk=64 --raid-devices=2 "$dev1" "$dev2"
+mddev=$(< MD_DEV)
+
vgcreate $vg "$mddev"
-PVIDMD=`pvs $mddev --noheading -o uuid | tr -d - | awk '{print $1}'`
-echo $PVIDMD
+PVIDMD=$(get pv_field "$mddev" uuid | tr -d - )
lvcreate -n $lv1 -l 2 $vg
lvcreate -n $lv2 -l 2 -an $vg
@@ -193,14 +67,11 @@ check lv_field $vg/$lv1 lv_active "active"
pvs "$mddev"
not pvs "$dev1"
not pvs "$dev2"
-pvs > out
+pvs | tee out
not grep "$dev1" out
not grep "$dev2" out
-sleep 1
-
vgchange -an $vg
-sleep 1
# When the md device is started, lvm will see that and know to
# scan for md components, so stop the md device to remove this
@@ -211,7 +82,7 @@ aux udev_wait
# The md components should still be detected and excluded.
not pvs "$dev1"
not pvs "$dev2"
-pvs > out
+pvs | tee out
not grep "$dev1" out
not grep "$dev2" out
@@ -222,9 +93,7 @@ not grep "Not using device" out
not vgchange -ay $vg
# should not show an active lv
-rm out
-lvs -o active $vg |tee out || true
-not grep "active" out
+not dmsetup table $vg-$lv1
# should not allow updating vg
not lvcreate -l1 $vg
@@ -234,21 +103,18 @@ _clear_online_files
pvscan --cache -aay "$dev1"
pvscan --cache -aay "$dev2"
-not ls "$RUNDIR/lvm/pvs_online/$PVIDMD"
-not ls "$RUNDIR/lvm/vgs_online/$vg"
+test ! -f "$RUNDIR/lvm/pvs_online/$PVIDMD"
+test ! -f "$RUNDIR/lvm/vgs_online/$vg"
# should not show an active lv
-rm out
-lvs -o active $vg |tee out || true
-not grep "active" out
+not dmsetup table $vg-$lv1
-# start the md dev
mdadm --assemble "$mddev" "$dev1" "$dev2"
aux udev_wait
not pvs "$dev1"
not pvs "$dev2"
-pvs > out
+pvs | tee out
not grep "$dev1" out
not grep "$dev2" out
@@ -260,13 +126,11 @@ _clear_online_files
pvscan --cache -aay "$dev1"
pvscan --cache -aay "$dev2"
-not ls "$RUNDIR/lvm/pvs_online/$PVIDMD"
-not ls "$RUNDIR/lvm/vgs_online/$vg"
+test ! -f "$RUNDIR/lvm/pvs_online/$PVIDMD"
+test ! -f "$RUNDIR/lvm/vgs_online/$vg"
# should not show an active lv
-rm out
-lvs -o active $vg |tee out || true
-not grep "active" out
+not dmsetup table $vg-$lv1
vgchange -ay $vg
@@ -277,37 +141,34 @@ vgchange -an $vg
_clear_online_files
pvscan --cache -aay "$mddev"
-ls "$RUNDIR/lvm/pvs_online/$PVIDMD"
-ls "$RUNDIR/lvm/vgs_online/$vg"
+test -f "$RUNDIR/lvm/pvs_online/$PVIDMD"
+test -f "$RUNDIR/lvm/vgs_online/$vg"
-lvs -o active $vg |tee out || true
-grep "active" out
+check active $vg $lv1
vgchange -an $vg
-
-aux udev_wait
-
vgremove -f $vg
-mdadm --stop "$mddev"
-aux udev_wait
+aux cleanup_md_dev
aux wipefs_a "$dev1"
aux wipefs_a "$dev2"
aux udev_wait
+done
+
# Repeat tests using the default config settings
-aux lvmconf 'devices/hints = "all"'
-aux lvmconf 'devices/obtain_device_list_from_udev = 1'
+aux lvmconf "devices/hints = \"all\"" \
+ "devices/obtain_device_list_from_udev = 1"
# create 2 disk MD raid0 array
# by default using metadata format 1.0 with data at the end of device
# When a raid0 md array is stopped, the components will not look like
# duplicate PVs as they do with raid1.
-mdadm --create --metadata=1.0 "$mddev" --level 0 --chunk=64 --raid-devices=2 "$dev1" "$dev2"
-aux wait_md_create "$mddev"
+aux mdadm_create --metadata=1.0 --level=0 --chunk=64 --raid-devices=2 "$dev1" "$dev2"
+mddev=$(< MD_DEV)
# Create an unused PV so that there is@least one PV in the hints
# when the MD dev is stopped. If there are no PVs, the hints are
@@ -317,8 +178,7 @@ pvcreate "$dev3"
vgcreate $vg "$mddev"
-PVIDMD=`pvs $mddev --noheading -o uuid | tr -d - | awk '{print $1}'`
-echo $PVIDMD
+PVIDMD=$(get pv_field "$mddev" uuid | tr -d - )
lvcreate -n $lv1 -l 2 $vg
lvcreate -n $lv2 -l 2 -an $vg
@@ -334,15 +194,12 @@ pvs > out
not grep "$dev1" out
not grep "$dev2" out
-grep "$mddev" $HINTS
-grep "$dev3" $HINTS
-not grep "$dev1" $HINTS
-not grep "$dev2" $HINTS
-
-sleep 1
+grep "$mddev" "$HINTS"
+grep "$dev3" "$HINTS"
+not grep "$dev1" "$HINTS"
+not grep "$dev2" "$HINTS"
vgchange -an $vg
-sleep 1
# When the md device is started, lvm will see that and know to
# scan for md components, so stop the md device to remove this
@@ -367,7 +224,7 @@ not grep "$mddev" out2
not grep "$dev1" out2
not grep "$dev2" out2
grep "$dev3" out2
-cat $HINTS
+cat "$HINTS"
pvs 2>&1|tee out1
grep -v WARNING out1 > out2
@@ -376,12 +233,12 @@ not grep "$mddev" out2
not grep "$dev1" out2
not grep "$dev2" out2
grep "$dev3" out2
-cat $HINTS
+cat "$HINTS"
# The md components should still be detected and excluded.
not pvs "$dev1"
not pvs "$dev2"
-pvs > out
+pvs | tee out
not grep "$dev1" out
not grep "$dev2" out
grep "$dev3" out
@@ -390,9 +247,7 @@ grep "$dev3" out
not vgchange -ay $vg
# should not show an active lv
-rm out
-lvs -o active $vg |tee out || true
-not grep "active" out
+not dmsetup table $vg-$lv1
# should not allow updating vg
not lvcreate -l1 $vg
@@ -402,13 +257,11 @@ _clear_online_files
pvscan --cache -aay "$dev1"
pvscan --cache -aay "$dev2"
-not ls "$RUNDIR/lvm/pvs_online/$PVIDMD"
-not ls "$RUNDIR/lvm/vgs_online/$vg"
+test ! -f "$RUNDIR/lvm/pvs_online/$PVIDMD"
+test ! -f "$RUNDIR/lvm/vgs_online/$vg"
# should not show an active lv
-rm out
-lvs -o active $vg |tee out || true
-not grep "active" out
+not dmsetup table $vg-$lv1
# start the md dev
mdadm --assemble "$mddev" "$dev1" "$dev2"
@@ -416,7 +269,7 @@ aux udev_wait
not pvs "$dev1"
not pvs "$dev2"
-pvs > out
+pvs | tee out
not grep "$dev1" out
not grep "$dev2" out
@@ -428,13 +281,11 @@ _clear_online_files
pvscan --cache -aay "$dev1"
pvscan --cache -aay "$dev2"
-not ls "$RUNDIR/lvm/pvs_online/$PVIDMD"
-not ls "$RUNDIR/lvm/vgs_online/$vg"
+test ! -f "$RUNDIR/lvm/pvs_online/$PVIDMD"
+test ! -f "$RUNDIR/lvm/vgs_online/$vg"
# should not show an active lv
-rm out
-lvs -o active $vg |tee out || true
-not grep "active" out
+not dmsetup table $vg-$lv1
vgchange -ay $vg
@@ -445,21 +296,12 @@ vgchange -an $vg
_clear_online_files
pvscan --cache -aay "$mddev"
-ls "$RUNDIR/lvm/pvs_online/$PVIDMD"
-ls "$RUNDIR/lvm/vgs_online/$vg"
+test -f "$RUNDIR/lvm/pvs_online/$PVIDMD"
+test -f "$RUNDIR/lvm/vgs_online/$vg"
-lvs -o active $vg |tee out || true
-grep "active" out
+check active $vg $lv1
vgchange -an $vg
-
-aux udev_wait
-
vgremove -f $vg
-mdadm --stop "$mddev"
-aux udev_wait
-aux wipefs_a "$dev1"
-aux wipefs_a "$dev2"
-aux udev_wait
-
+aux cleanup_md_dev
diff --git a/test/shell/pvcreate-operation-md.sh b/test/shell/pvcreate-operation-md.sh
index f4b2a0d92..fa76eb459 100644
--- a/test/shell/pvcreate-operation-md.sh
+++ b/test/shell/pvcreate-operation-md.sh
@@ -18,19 +18,14 @@ SKIP_WITH_LVMPOLLD=1
# skip this test if mdadm or sfdisk (or others) aren't available
which sfdisk || skip
-test -f /proc/mdstat && grep -q raid0 /proc/mdstat || \
- modprobe raid0 || skip
-mddev="/dev/md33"
-not grep $mddev /proc/mdstat || skip
-
aux lvmconf 'devices/md_component_detection = 1'
aux extend_filter_md "a|/dev/md|"
aux prepare_devs 2
# create 2 disk MD raid0 array (stripe_width=128K)
-mdadm --create --metadata=1.0 "$mddev" --level 0 --chunk=64 --raid-devices=2 "$dev1" "$dev2"
-aux wait_md_create "$mddev"
+aux mdadm_create --metadata=1.0 --level=0 --chunk=64 --raid-devices=2 "$dev1" "$dev2"
+mddev=$(< MD_DEV)
pvdev="$mddev"
@@ -111,17 +106,16 @@ EOF
fi
fi
-mdadm --stop "$mddev"
-aux udev_wait
+aux cleanup_md_dev
aux wipefs_a "$dev1"
aux wipefs_a "$dev2"
-aux udev_wait
# Test newer topology-aware alignment detection w/ --dataalignment override
if aux kernel_at_least 2 6 33 ; then
- mdadm --create --metadata=1.0 "$mddev" --level 0 --chunk=1024 --raid-devices=2 "$dev1" "$dev2"
- aux wait_md_create "$mddev"
+ aux mdadm_create --metadata=1.0 --level 0 --chunk=1024 --raid-devices=2 "$dev1" "$dev2"
+ mddev=$(< MD_DEV)
+
pvdev="$mddev"
# optimal_io_size=2097152, minimum_io_size=1048576
@@ -138,10 +132,7 @@ if aux kernel_at_least 2 6 33 ; then
--config 'devices { md_chunk_alignment=0 }' "$pvdev"
check pv_field "$pvdev" pe_start "192.00k"
- mdadm --stop "$mddev"
- aux udev_wait
+ aux cleanup_md_dev
aux wipefs_a "$dev1"
aux wipefs_a "$dev2"
- aux udev_wait
-
fi
reply other threads:[~2021-03-22 21:53 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210322215354.1FD7D3854820@sourceware.org \
--to=zkabelac@sourceware.org \
--cc=lvm-devel@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.