2017-07-02 22:38:32 +03:00
#!/usr/bin/env bash
2018-04-23 22:26:05 +03:00
# Copyright (C) 2010-2018 Red Hat, Inc. All rights reserved.
2010-04-12 23:16:24 +04:00
#
# This copyrighted material is made available to anyone wishing to use,
# modify, copy, or redistribute it subject to the terms and conditions
# of the GNU General Public License v.2.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
2016-01-21 13:49:46 +03:00
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
2010-04-12 23:16:24 +04:00
2018-05-24 17:49:48 +03:00
2016-02-23 01:13:42 +03:00
2015-05-01 15:45:47 +03:00
. lib/inittest
2014-07-21 23:44:53 +04:00
2018-12-17 21:24:37 +03:00
aux lvmconf "global/support_mirrored_mirror_log=1"
2018-05-07 12:45:11 +03:00
aux prepare_pvs 5
2017-07-06 20:41:25 +03:00
get_devs
2013-05-31 23:11:51 +04:00
# proper DEVRANGE needs to be set according to extent size
DEVRANGE = "0-32"
2018-05-24 17:49:48 +03:00
vgcreate $SHARED -s 32k " $vg " " ${ DEVICES [@] } "
2012-03-04 20:02:19 +04:00
2013-06-20 02:50:10 +04:00
# convert from linear to 2-way mirror ("mirror" default type)
2013-05-31 23:11:51 +04:00
lvcreate -aey -l2 -n $lv1 $vg " $dev1 "
2017-03-16 23:17:58 +03:00
lvconvert -i1 -m+1 -R32k $vg /$lv1 " $dev2 " " $dev3 :0-1 " \
2013-06-20 02:50:10 +04:00
--config 'global { mirror_segtype_default = "mirror" }'
2013-09-26 07:25:43 +04:00
lvs --noheadings -o attr $vg /$lv1 | grep '^[[:space:]]*m'
2013-06-20 02:50:10 +04:00
lvremove -ff $vg
# convert from linear to 2-way mirror (override "raid1" default type)
lvcreate -aey -l2 -n $lv1 $vg " $dev1 "
2013-08-08 00:48:31 +04:00
lvconvert -i1 --type mirror -m+1 $vg /$lv1 " $dev2 " " $dev3 :0-1 " \
2013-06-20 02:50:10 +04:00
--config 'global { mirror_segtype_default = "raid1" }'
2013-09-26 07:25:43 +04:00
lvs --noheadings -o attr $vg /$lv1 | grep '^[[:space:]]*m'
2012-03-04 20:02:19 +04:00
lvremove -ff $vg
2010-04-12 23:16:24 +04:00
2012-05-05 06:08:46 +04:00
# convert from linear to 2-way mirror - with tags and volume_list (bz683270)
2013-05-31 23:11:51 +04:00
lvcreate -aey -l2 -n $lv1 $vg --addtag hello
2013-08-08 00:48:31 +04:00
lvconvert -i1 --type mirror -m+1 $vg /$lv1 \
2012-05-05 06:08:46 +04:00
--config 'activation { volume_list = [ "@hello" ] }'
lvremove -ff $vg
# convert from 2-way to 3-way mirror - with tags and volume_list (bz683270)
2013-08-08 00:48:31 +04:00
lvcreate -aey -l2 --type mirror -m1 -n $lv1 $vg --addtag hello
2012-05-05 06:08:46 +04:00
lvconvert -i1 -m+1 $vg /$lv1 \
--config 'activation { volume_list = [ "@hello" ] }'
lvremove -ff $vg
2010-04-12 23:16:24 +04:00
# convert from 2-way mirror to linear
2013-08-08 00:48:31 +04:00
lvcreate -aey -l2 --type mirror -m1 -n $lv1 $vg " $dev1 " " $dev2 " " $dev3 :0-1 "
2010-04-12 23:16:24 +04:00
lvconvert -m-1 $vg /$lv1
check linear $vg $lv1
lvremove -ff $vg
2010-04-12 23:32:58 +04:00
# and now try removing a specific leg (bz453643)
2013-08-08 00:48:31 +04:00
lvcreate -aey -l2 --type mirror -m1 -n $lv1 $vg " $dev1 " " $dev2 " " $dev3 :0-1 "
2012-03-16 17:00:05 +04:00
lvconvert -m0 $vg /$lv1 " $dev2 "
check lv_on $vg $lv1 " $dev1 "
2010-04-12 23:32:58 +04:00
lvremove -ff $vg
2010-04-12 23:16:24 +04:00
# convert from disklog to corelog, active
2013-08-08 00:48:31 +04:00
lvcreate -aey -l2 --type mirror -m1 -n $lv1 $vg " $dev1 " " $dev2 " " $dev3 :0-1 "
2010-04-12 23:16:24 +04:00
lvconvert -f --mirrorlog core $vg /$lv1
2010-05-12 14:08:35 +04:00
check mirror $vg $lv1 core
2010-04-12 23:16:24 +04:00
lvremove -ff $vg
# convert from corelog to disklog, active
2013-08-08 00:48:31 +04:00
lvcreate -aey -l2 --type mirror -m1 --mirrorlog core -n $lv1 $vg " $dev1 " " $dev2 "
2012-03-16 17:00:05 +04:00
lvconvert --mirrorlog disk $vg /$lv1 " $dev3 :0-1 "
check mirror $vg $lv1 " $dev3 "
2010-04-12 23:16:24 +04:00
lvremove -ff $vg
# convert linear to 2-way mirror with 1 PV
2013-05-31 23:11:51 +04:00
lvcreate -aey -l2 -n $lv1 $vg " $dev1 "
2012-03-16 17:00:05 +04:00
not lvconvert -m+1 --mirrorlog core $vg /$lv1 " $dev1 "
2010-04-12 23:16:24 +04:00
lvremove -ff $vg
2010-04-12 23:32:58 +04:00
2010-05-12 14:08:35 +04:00
# add 1 mirror to core log mirror, but
# implicitly keep log as 'core'
2013-08-08 00:48:31 +04:00
lvcreate -aey -l2 --type mirror -m1 --mirrorlog core -n $lv1 $vg " $dev1 " " $dev2 "
2010-05-12 14:08:35 +04:00
lvconvert -m +1 -i1 $vg /$lv1
check mirror $vg $lv1 core
check mirror_no_temporaries $vg $lv1
check mirror_legs $vg $lv1 3
2012-03-04 20:02:19 +04:00
lvremove -ff $vg
2010-05-12 14:08:35 +04:00
# remove 1 mirror from corelog'ed mirror; should retain 'core' log type
2013-08-08 00:48:31 +04:00
lvcreate -aey -l2 --type mirror -m2 --corelog -n $lv1 $vg
2010-05-12 14:08:35 +04:00
lvconvert -m -1 -i1 $vg /$lv1
check mirror $vg $lv1 core
check mirror_no_temporaries $vg $lv1
check mirror_legs $vg $lv1 2
2012-03-04 20:02:19 +04:00
lvremove -ff $vg
2010-05-12 14:08:35 +04:00
# add 1 mirror then add 1 more mirror during conversion
# FIXME this has been explicitly forbidden?
2013-08-08 00:48:31 +04:00
#lvcreate -l2 --type mirror -m1 -n $lv1 $vg "$dev1" "$dev2" "$dev3":0
2012-03-16 17:00:05 +04:00
#lvconvert -m+1 -b $vg/$lv1 "$dev4"
#lvconvert -m+1 $vg/$lv1 "$dev5"
2010-05-12 14:08:35 +04:00
#
2012-03-16 17:00:05 +04:00
#check mirror $vg $lv1 "$dev3"
2010-05-12 14:08:35 +04:00
#check mirror_no_temporaries $vg $lv1
#check mirror_legs $vg $lv1 4
2012-03-04 20:02:19 +04:00
#lvremove -ff $vg
2010-05-12 14:08:35 +04:00
# convert inactive mirror and start polling
2013-08-08 00:48:31 +04:00
lvcreate -aey -l2 --type mirror -m1 -n $lv1 $vg " $dev1 " " $dev2 " " $dev3 : $DEVRANGE "
2010-05-12 14:08:35 +04:00
lvchange -an $vg /$lv1
2012-03-16 17:00:05 +04:00
lvconvert -m+1 $vg /$lv1 " $dev4 "
2013-05-31 23:11:51 +04:00
lvchange -aey $vg /$lv1
2018-04-20 11:13:21 +03:00
lvconvert $vg /$lv1 # wait
2012-03-16 17:00:05 +04:00
check mirror $vg $lv1 " $dev3 "
2010-05-12 14:08:35 +04:00
check mirror_no_temporaries $vg $lv1
2012-03-04 20:02:19 +04:00
lvremove -ff $vg
2010-05-12 14:08:35 +04:00
# ---------------------------------------------------------------------
# removal during conversion
# "remove newly added mirror"
2013-08-08 00:48:31 +04:00
lvcreate -aey -l2 --type mirror -m1 -n $lv1 $vg " $dev1 " " $dev2 " " $dev3 : $DEVRANGE "
2015-04-28 16:31:47 +03:00
LVM_TEST_TAG = " kill_me_ $PREFIX " lvconvert -m+1 -b $vg /$lv1 " $dev4 "
2012-03-16 17:00:05 +04:00
lvconvert -m-1 $vg /$lv1 " $dev4 "
2018-04-20 11:13:21 +03:00
lvconvert $vg /$lv1 # wait
2010-05-12 14:08:35 +04:00
2012-03-16 17:00:05 +04:00
check mirror $vg $lv1 " $dev3 "
2010-05-12 14:08:35 +04:00
check mirror_no_temporaries $vg $lv1
check mirror_legs $vg $lv1 2
2012-03-04 20:02:19 +04:00
lvremove -ff $vg
2010-05-12 14:08:35 +04:00
# "remove one of newly added mirrors"
2013-08-08 00:48:31 +04:00
lvcreate -aey -l2 --type mirror -m1 -n $lv1 $vg " $dev1 " " $dev2 " " $dev3 : $DEVRANGE "
2015-04-28 16:31:47 +03:00
LVM_TEST_TAG = " kill_me_ $PREFIX " lvconvert -m+2 -b $vg /$lv1 " $dev4 " " $dev5 "
2012-03-16 17:00:05 +04:00
lvconvert -m-1 $vg /$lv1 " $dev4 "
2018-04-20 11:13:21 +03:00
lvconvert $vg /$lv1 # wait
2010-05-12 14:08:35 +04:00
2012-03-16 17:00:05 +04:00
check mirror $vg $lv1 " $dev3 "
2010-05-12 14:08:35 +04:00
check mirror_no_temporaries $vg $lv1
check mirror_legs $vg $lv1 3
2012-03-04 20:02:19 +04:00
lvremove -ff $vg
2010-05-12 14:08:35 +04:00
# "remove from original mirror (the original is still mirror)"
2013-08-08 00:48:31 +04:00
lvcreate -aey -l2 --type mirror -m2 -n $lv1 $vg " $dev1 " " $dev2 " " $dev5 " " $dev3 : $DEVRANGE "
2015-04-28 16:31:47 +03:00
LVM_TEST_TAG = " kill_me_ $PREFIX " lvconvert -m+1 -b $vg /$lv1 " $dev4 "
2014-02-24 13:56:02 +04:00
# FIXME: Extra wait here for mirror upconvert synchronization
# otherwise we may fail her on parallel upconvert and downconvert
# lvconvert-mirror-updown.sh tests this errornous case separately
2018-04-20 11:13:21 +03:00
lvconvert $vg /$lv1
2012-03-16 17:00:05 +04:00
lvconvert -m-1 $vg /$lv1 " $dev2 "
2018-04-20 11:13:21 +03:00
lvconvert $vg /$lv1
2010-05-12 14:08:35 +04:00
2012-03-16 17:00:05 +04:00
check mirror $vg $lv1 " $dev3 "
2010-05-12 14:08:35 +04:00
check mirror_no_temporaries $vg $lv1
check mirror_legs $vg $lv1 3
2012-03-04 20:02:19 +04:00
lvremove -ff $vg
2010-05-12 14:08:35 +04:00
# "remove from original mirror (the original becomes linear)"
2013-08-08 00:48:31 +04:00
lvcreate -aey -l2 --type mirror -m1 -n $lv1 $vg " $dev1 " " $dev2 " " $dev3 : $DEVRANGE "
2015-04-28 16:31:47 +03:00
LVM_TEST_TAG = " kill_me_ $PREFIX " lvconvert -m+1 -b $vg /$lv1 " $dev4 "
2014-05-19 16:30:15 +04:00
# FIXME: Extra wait here for mirror upconvert synchronization
# otherwise we may fail her on parallel upconvert and downconvert
# lvconvert-mirror-updown.sh tests this errornous case separately
2018-04-20 11:13:21 +03:00
lvconvert $vg /$lv1
2012-03-16 17:00:05 +04:00
lvconvert -m-1 $vg /$lv1 " $dev2 "
2018-04-20 11:13:21 +03:00
lvconvert $vg /$lv1
2010-05-12 14:08:35 +04:00
2012-03-16 17:00:05 +04:00
check mirror $vg $lv1 " $dev3 "
2010-05-12 14:08:35 +04:00
check mirror_no_temporaries $vg $lv1
check mirror_legs $vg $lv1 2
2012-03-04 20:02:19 +04:00
lvremove -ff $vg
2010-05-12 14:08:35 +04:00
2017-04-12 16:01:12 +03:00
# Check the same with new --startpool lvconvert command option
lvcreate -aey -l2 --type mirror -m1 -n $lv1 $vg " $dev1 " " $dev2 " " $dev3 : $DEVRANGE "
LVM_TEST_TAG = " kill_me_ $PREFIX " lvconvert -m+1 -b $vg /$lv1 " $dev4 "
# FIXME: Extra wait here for mirror upconvert synchronization
# otherwise we may fail her on parallel upconvert and downconvert
# lvconvert-mirror-updown.sh tests this errornous case separately
2018-04-20 11:13:21 +03:00
lvconvert $vg /$lv1
2017-04-12 16:01:12 +03:00
lvconvert -m-1 $vg /$lv1 " $dev2 "
2018-04-20 11:13:21 +03:00
lvconvert $vg /$lv1
2017-04-12 16:01:12 +03:00
check mirror $vg $lv1 " $dev3 "
check mirror_no_temporaries $vg $lv1
check mirror_legs $vg $lv1 2
lvremove -ff $vg
2010-05-12 14:08:35 +04:00
# ---------------------------------------------------------------------
2013-09-26 07:25:43 +04:00
# "rhbz264241: lvm mirror doesn't lose it's "M" --nosync attribute
# after being down and the up converted"
2013-08-08 00:48:31 +04:00
lvcreate -aey -l2 --type mirror -m1 -n $lv1 --nosync $vg
2010-05-12 14:08:35 +04:00
lvconvert -m0 $vg /$lv1
2013-09-26 07:25:43 +04:00
lvconvert --type mirror -m1 $vg /$lv1
lvs --noheadings -o attr $vg /$lv1 | grep '^[[:space:]]*m'
2012-03-04 20:02:19 +04:00
lvremove -ff $vg
2010-05-12 14:08:35 +04:00
# lvconvert from linear (on multiple PVs) to mirror
2013-05-31 23:11:51 +04:00
lvcreate -aey -l 8 -n $lv1 $vg " $dev1 :0-3 " " $dev2 :0-3 "
2017-07-07 22:18:56 +03:00
lvconvert --type mirror -m1 $vg /$lv1
2010-05-12 14:08:35 +04:00
2018-04-20 11:13:21 +03:00
# FIXME: lvm should be able to make legs redundant
#should check mirror $vg $lv1
2010-05-12 14:08:35 +04:00
check mirror_legs $vg $lv1 2
2012-03-04 20:02:19 +04:00
lvremove -ff $vg
2010-05-12 14:08:35 +04:00
# BZ 463272: disk log mirror convert option is lost if downconvert option is also given
2013-08-08 00:48:31 +04:00
lvcreate -aey -l1 --type mirror -m2 --corelog -n $lv1 $vg " $dev1 " " $dev2 " " $dev3 "
2012-07-24 23:20:30 +04:00
aux wait_for_sync $vg $lv1
2013-09-26 07:25:43 +04:00
lvconvert --type mirror -m1 --mirrorlog disk $vg /$lv1
2010-11-30 14:35:32 +03:00
check mirror $vg $lv1
not check mirror $vg $lv1 core
2012-03-04 20:02:19 +04:00
lvremove -ff $vg
2010-05-12 14:08:35 +04:00
# ---
# add mirror and disk log
2012-03-16 17:00:05 +04:00
# "add 1 mirror and disk log"
2013-08-08 00:48:31 +04:00
lvcreate -aey -l2 --type mirror -m1 --mirrorlog core -n $lv1 $vg " $dev1 " " $dev2 "
2010-05-12 14:08:35 +04:00
# FIXME on next line, specifying $dev3:0 $dev4 (i.e log device first) fails (!)
2013-05-31 23:11:51 +04:00
lvconvert -m+1 --mirrorlog disk -i1 $vg /$lv1 " $dev4 " " $dev3 : $DEVRANGE "
2010-05-12 14:08:35 +04:00
2012-03-16 17:00:05 +04:00
check mirror $vg $lv1 " $dev3 "
2010-05-12 14:08:35 +04:00
check mirror_no_temporaries $vg $lv1
check mirror_legs $vg $lv1 3
2012-03-04 20:02:19 +04:00
lvremove -ff $vg
2011-06-09 23:38:56 +04:00
# simple mirrored stripe
2013-05-31 23:11:51 +04:00
lvcreate -aey -i2 -l10 -n $lv1 $vg
2018-04-20 11:13:21 +03:00
# FIXME: ATM reduce LV still must be bigger then region size!
# LVM should do a better job here
lvconvert --type mirror -m1 -i1 --regionsize 16k $vg /$lv1
2011-06-09 23:38:56 +04:00
lvreduce -f -l1 $vg /$lv1
lvextend -f -l10 $vg /$lv1
lvremove -ff $vg /$lv1
2011-06-23 14:53:24 +04:00
# extents must be divisible
2013-05-31 23:11:51 +04:00
lvcreate -aey -l15 -n $lv1 $vg
2013-09-26 07:25:43 +04:00
not lvconvert --type mirror -m1 --corelog --stripes 2 $vg /$lv1
2012-03-04 20:02:19 +04:00
lvremove -ff $vg
2012-09-19 20:09:32 +04:00
2018-04-23 22:26:05 +03:00
2018-12-18 12:55:35 +03:00
# Linear to mirror with mirrored log using --alloc anywhere
lvcreate -aey -l2 -n $lv1 $vg " $dev1 "
if test -e LOCAL_CLVMD; then
# This is not supposed to work in cluster
not lvconvert --type mirror -m +1 --mirrorlog mirrored --alloc anywhere $vg /$lv1 " $dev1 " " $dev2 "
else
lvconvert --type mirror -m +1 --mirrorlog mirrored --alloc anywhere $vg /$lv1 " $dev1 " " $dev2 "
check mirror $vg $lv1
fi
lvremove -ff $vg
2018-04-23 22:26:05 +03:00
if test -e LOCAL_CLVMD; then
: # FIXME - cases which needs to be fixed to work in cluster
else
2012-09-19 20:09:32 +04:00
# Should not be able to add images to --nosync mirror
# but should be able to after 'lvchange --resync'
2013-08-08 00:48:31 +04:00
lvcreate -aey --type mirror -m 1 -l1 -n $lv1 $vg --nosync
2012-09-19 20:09:32 +04:00
not lvconvert -m +1 $vg /$lv1
2013-05-31 23:11:51 +04:00
lvchange -aey --resync -y $vg /$lv1
2012-09-19 20:09:32 +04:00
lvconvert -m +1 $vg /$lv1
lvremove -ff $vg
2013-08-08 00:48:31 +04:00
lvcreate -aey --type mirror -m 1 --corelog -l1 -n $lv1 $vg --nosync
2012-09-19 20:09:32 +04:00
not lvconvert -m +1 $vg /$lv1
2013-05-31 23:11:51 +04:00
lvchange -aey --resync -y $vg /$lv1
2012-09-19 20:09:32 +04:00
lvconvert -m +1 $vg /$lv1
lvremove -ff $vg
2013-05-31 23:11:51 +04:00
# FIXME: Cluster exclusive activation does not work here
# unsure why lib/metadata/mirror.c
# has this code:
#
# } else if (vg_is_clustered(vg)) {
# log_error("Unable to convert the log of an inactive "
# "cluster mirror, %s", lv->name);
# return 0;
# disabling this in the code passes this test
# bz192865: lvconvert log of an inactive mirror lv
# convert from disklog to corelog, inactive
2013-08-08 00:48:31 +04:00
lvcreate -aey -l2 --type mirror -m1 -n $lv1 $vg " $dev1 " " $dev2 " " $dev3 :0-1 "
2013-05-31 23:11:51 +04:00
lvchange -an $vg /$lv1
lvconvert -y -f --mirrorlog core $vg /$lv1
check mirror $vg $lv1 core
lvremove -ff $vg
# convert from corelog to disklog, inactive
2013-08-08 00:48:31 +04:00
lvcreate -aey -l2 --type mirror -m1 --mirrorlog core -n $lv1 $vg " $dev1 " " $dev2 "
2013-05-31 23:11:51 +04:00
lvchange -an $vg /$lv1
lvconvert --mirrorlog disk $vg /$lv1 " $dev3 :0-1 "
check mirror $vg $lv1 " $dev3 "
lvremove -ff $vg
2014-02-27 02:25:30 +04:00
2015-10-20 12:55:51 +03:00
# bz1272175: check lvconvert reports progress while waiting for mirror
# to get synced
lvcreate -l2 -n $lv1 $vg
lvconvert --type mirror -i1 -m1 $vg /$lv1 | tee out
2015-10-29 15:30:29 +03:00
grep -e " $vg / $lv1 : Converted: " out || die "Missing sync info in foreground mode"
2015-10-20 12:55:51 +03:00
lvremove -ff $vg
2018-04-23 22:26:05 +03:00
fi
#########################################################################
# Start w/ 3-way mirror
# Test that the correct devices remain in the mirror
# Make $dev2 & $dev4 zero backend device so large mirrors can be user
# without consuming any real space. Clearly such mirrors can't be read back
# but tests here are validating possibilies of those conversions
#
# Test pulling primary image before mirror in-sync (should fail)
# Test pulling primary image after mirror in-sync (should work)
#
2023-02-09 18:05:40 +03:00
aux zero_dev " $dev2 " " $( get first_extent_sector " $dev2 " ) : "
aux zero_dev " $dev4 " " $( get first_extent_sector " $dev4 " ) : "
2018-05-13 00:36:04 +03:00
SHOULD =
aux throttle_dm_mirror || SHOULD = should
2023-08-17 22:50:48 +03:00
test " ${ LVM_VALGRIND :- 0 } " -eq 0 || SHOULD = should
2018-04-23 22:26:05 +03:00
# Use large enough mirror that takes time to sychronize with small regionsize
2023-08-23 14:47:06 +03:00
lvcreate -aey -L20 -Zn -Wn --type mirror --regionsize 4k -m2 -n $lv1 $vg " $dev1 " " $dev2 " " $dev4 " " $dev3 : $DEVRANGE "
2018-05-13 00:36:04 +03:00
$SHOULD not lvconvert -m-1 $vg /$lv1 " $dev1 " 2>& 1 | tee out
2018-05-07 12:45:11 +03:00
aux restore_dm_mirror
2023-08-23 14:47:06 +03:00
$SHOULD grep "not in-sync" out
2018-04-23 22:26:05 +03:00
lvconvert $vg /$lv1 # wait
lvconvert -m-1 $vg /$lv1 " $dev1 "
check mirror_images_on $vg $lv1 " $dev2 " " $dev4 "
lvconvert -m-1 $vg /$lv1 " $dev2 "
check linear $vg $lv1
check lv_on $vg $lv1 " $dev4 "
lvremove -ff $vg
2018-05-07 12:45:11 +03:00
2018-05-13 00:36:04 +03:00
aux throttle_dm_mirror || :
2018-04-23 22:26:05 +03:00
# No parallel lvconverts on a single LV please
# Use big enough mirror size and small regionsize to run on all test machines succesfully
2023-08-23 14:47:06 +03:00
lvcreate -aey -Zn -Wn -L20 --type mirror --regionsize 4k -m1 -n $lv1 $vg " $dev1 " " $dev2 " " $dev3 :0-8 "
2018-04-23 22:26:05 +03:00
check mirror $vg $lv1
check mirror_legs $vg $lv1 2
LVM_TEST_TAG = " kill_me_ $PREFIX " lvconvert -m+1 -b $vg /$lv1 " $dev4 "
# ATM upconversion should be running
# Next convert should fail b/c we can't have 2 at once
2018-05-13 00:36:04 +03:00
$SHOULD not lvconvert -m+1 $vg /$lv1 " $dev5 " 2>& 1 | tee out
2018-05-07 12:45:11 +03:00
aux restore_dm_mirror
2018-04-23 22:26:05 +03:00
grep "is already being converted" out
lvconvert $vg /$lv1 # wait
check mirror $vg $lv1 " $dev3 "
check mirror_no_temporaries $vg $lv1
check mirror_legs $vg $lv1 3
lvremove -ff $vg
# "rhbz440405: lvconvert -m0 incorrectly fails if all PEs allocated"
lvcreate -aey -l " $( get pv_field " $dev1 " pe_count) " --type mirror -m1 -n $lv1 $vg " $dev1 " " $dev2 " " $dev3 : $DEVRANGE "
lvs -a -o+seg_pe_ranges $vg
aux wait_for_sync $vg $lv1
lvconvert -m0 $vg /$lv1 " $dev1 "
check linear $vg $lv1
lvremove -ff $vg
2014-02-27 02:25:30 +04:00
vgremove -ff $vg