1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-10-28 03:27:58 +03:00

tests: fix md raid test on real /dev

Zero raid signatures when raid is stopped - so signatures
are not requiring wipe when pvcreate follows.

Handle real /dev
This commit is contained in:
Zdenek Kabelac 2015-04-23 20:26:19 +02:00
parent 8853462528
commit de0ce46361
2 changed files with 22 additions and 14 deletions

View File

@ -38,6 +38,8 @@ cleanup_md() {
# see: https://bugzilla.redhat.com/show_bug.cgi?id=509908#c25
aux udev_wait
mdadm --stop "$mddev" || true
# also remove singnatures
mdadm --zero-superblock "$dev1" "$dev2" || true
aux udev_wait
if [ -b "$mddev" ]; then
# mdadm doesn't always cleanup the device node
@ -53,25 +55,29 @@ cleanup_md_and_teardown() {
# create 2 disk MD raid0 array (stripe_width=128K)
test -b "$mddev" && skip
mdadm --create --metadata=1.0 "$mddev" --auto=md --level 0 --raid-devices=2 --chunk 64 "$dev1" "$dev2"
trap 'cleanup_md_and_teardown' EXIT # cleanup this MD device at the end of the test
mdadm --create --metadata=1.0 "$mddev" --auto=md --level 0 --raid-devices=2 --chunk 64 "$dev1" "$dev2"
test -b "$mddev" || skip
cp -LR "$mddev" "$DM_DEV_DIR" # so that LVM/DM can see the device
lvmdev="$DM_DEV_DIR/md_lvm_test0"
if test "$DM_DEV_DIR" != "/dev" ; then
cp -LR "$mddev" "$DM_DEV_DIR" # so that LVM/DM can see the device
pvdev="$DM_DEV_DIR/md_lvm_test0"
else
pvdev=$(readlink -f "$mddev")
fi
# TODO end MD-creation code
# maj=$(($(stat -L --printf=0x%t "$dev2")))
# min=$(($(stat -L --printf=0x%T "$dev2")))
pvcreate $lvmdev
pvcreate "$pvdev"
pvscan --cache "$lvmdev"
pvscan --cache "$pvdev"
# ensure that lvmetad can only see the toplevel MD device
pvscan --cache "$dev1" 2>&1 | grep "not found"
pvscan --cache "$dev2" 2>&1 | grep "not found"
pvs | grep $lvmdev
pvs | tee out
grep "$pvdev" out
pvs | not grep "$dev1"
pvs | not grep "$dev2"

View File

@ -40,6 +40,7 @@ cleanup_md() {
# see: https://bugzilla.redhat.com/show_bug.cgi?id=509908#c25
aux udev_wait
mdadm --stop "$mddev" || true
mdadm --zero-superblock "$dev1" "$dev2" || true
aux udev_wait
if [ -b "$mddev" ]; then
# mdadm doesn't always cleanup the device node
@ -55,10 +56,10 @@ cleanup_md_and_teardown() {
# create 2 disk MD raid0 array (stripe_width=128K)
test -b "$mddev" && skip
mdadm --create --metadata=1.0 "$mddev" --auto=md --level 0 --raid-devices=2 --chunk 64 "$dev1" "$dev2"
trap 'cleanup_md_and_teardown' EXIT # cleanup this MD device at the end of the test
mdadm --create --metadata=1.0 "$mddev" --auto=md --level 0 --raid-devices=2 --chunk 64 "$dev1" "$dev2"
test -b "$mddev" || skip
cp -LR "$mddev" "$DM_DEV_DIR" # so that LVM/DM can see the device
test "$DM_DEV_DIR" != "/dev" && cp -LR "$mddev" "$DM_DEV_DIR" # so that LVM/DM can see the device
lvmdev="$DM_DEV_DIR/md_lvm_test0"
# Test alignment of PV on MD without any MD-aware or topology-aware detection
@ -113,7 +114,7 @@ EOF
# wait here for created device node on tmpfs
aux udev_wait "$mddev_p"
test -b "$mddev_p" || skip
cp -LR "$mddev_p" "$DM_DEV_DIR"
test "$DM_DEV_DIR" != "/dev" && cp -LR "$mddev_p" "$DM_DEV_DIR"
lvmdev_p="$DM_DEV_DIR/$base_mddev_p"
# Checking for 'alignment_offset' in sysfs implies Linux >= 2.6.31
@ -132,13 +133,14 @@ EOF
fi
fi
# make sure we're clean for another test
test -b "$mddev" && cleanup_md
dd if=/dev/zero of="$dev1" bs=512 count=1
dd if=/dev/zero of="$dev2" bs=512 count=1
# Test newer topology-aware alignment detection w/ --dataalignment override
if kernel_at_least 2 6 33 ; then
# make sure we're clean for another test
test -b "$mddev" && cleanup_md
dd if=/dev/zero of="$dev1" bs=512 count=1
dd if=/dev/zero of="$dev2" bs=512 count=1
pvcreate -f "$dev1"
pvcreate -f "$dev2"