mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-22 17:35:59 +03:00
4ebfd8e8eb
In case "lvconvert -mN RaidLV" was used on a degraded raid1 LV, success was returned instead of an error. Provide message to inform about the need to repair first before changing number of mirrors and exit with error. Add new lvconvert-m-raid1-degraded.sh test. Resolves: rhbz1573960
48 lines
1.2 KiB
Bash
48 lines
1.2 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# Copyright (C) 2018 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
|
|
# 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,
|
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
|
|
SKIP_WITH_LVMLOCKD=1
|
|
SKIP_WITH_LVMPOLLD=1
|
|
|
|
. lib/inittest
|
|
|
|
aux have_raid 1 3 0 || skip
|
|
|
|
aux lvmconf 'activation/raid_fault_policy = "warn"'
|
|
|
|
aux prepare_vg 3 32
|
|
get_devs
|
|
|
|
# Create 2-legged RAID1 and wait for it to complete initial resync
|
|
lvcreate --type raid1 -m 1 -l 4 -n $lv $vg "$dev1" "$dev2"
|
|
aux wait_for_sync $vg $lv
|
|
|
|
# Disable first PV thus erroring first leg
|
|
aux disable_dev "$dev1"
|
|
|
|
# Reduce VG by missing PV
|
|
vgreduce --force --removemissing $vg
|
|
check raid_leg_status $vg $lv "DA"
|
|
|
|
# Conversion to 2 legs must fail on degraded 2-legged raid1 LV
|
|
not lvconvert -y -m1 $vg/$lv
|
|
check raid_leg_status $vg $lv "DA"
|
|
|
|
# Repair has to succeed
|
|
lvconvert -y --repair $vg/$lv
|
|
aux wait_for_sync $vg $lv
|
|
check raid_leg_status $vg $lv "AA"
|
|
|
|
lvremove -ff $vg/$lv
|
|
|
|
vgremove -ff $vg
|