mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-22 17:35:59 +03:00
b0485a996f
Current lvm1 allocation code seems to not properly map segments on missing PVs. For now disable this functionality. (It never worked and previous commit just introduced segfault here.) So the partial mode in lvm1 can only process missing PVs with no LV segments only. Also do not use random PV UUID for missing part but use fixed string derived from VG UUID (to not confuse clvmd tests).
55 lines
1.8 KiB
Bash
55 lines
1.8 KiB
Bash
#!/bin/sh
|
|
# Copyright (C) 2008 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
|
. ./test-utils.sh
|
|
|
|
aux prepare_pvs 4
|
|
|
|
# vgcfgbackup handles similar VG names (bz458941)
|
|
vg1=${PREFIX}vg00
|
|
vg2=${PREFIX}vg01
|
|
vgcreate $vg1 $dev1
|
|
vgcreate $vg2 $dev2
|
|
vgcfgbackup -f $TESTDIR/bak-%s >out
|
|
grep "Volume group \"$vg1\" successfully backed up." out
|
|
grep "Volume group \"$vg2\" successfully backed up." out
|
|
vgremove -ff $vg1
|
|
vgremove -ff $vg2
|
|
|
|
# vgcfgbackup correctly stores metadata with missing PVs
|
|
# and vgcfgrestore able to restore them when device reappears
|
|
pv1_uuid=$(pvs --noheadings -o pv_uuid $dev1)
|
|
pv2_uuid=$(pvs --noheadings -o pv_uuid $dev2)
|
|
vgcreate $vg $devs
|
|
lvcreate -l1 -n $lv1 $vg $dev1
|
|
lvcreate -l1 -n $lv2 $vg $dev2
|
|
lvcreate -l1 -n $lv3 $vg $dev3
|
|
vgchange -a n $vg
|
|
pvcreate -ff -y $dev1
|
|
pvcreate -ff -y $dev2
|
|
vgcfgbackup -f "$(pwd)/backup.$$" $vg
|
|
sed 's/flags = \[\"MISSING\"\]/flags = \[\]/' "$(pwd)/backup.$$" > "$(pwd)/backup.$$1"
|
|
pvcreate -ff -y --norestorefile -u $pv1_uuid $dev1
|
|
pvcreate -ff -y --norestorefile -u $pv2_uuid $dev2
|
|
vgcfgrestore -f "$(pwd)/backup.$$1" $vg
|
|
vgremove -ff $vg
|
|
|
|
# vgcfgbackup correctly stores metadata LVM1 with missing PVs
|
|
# FIXME: clvmd seems to have problem with metadata format change here
|
|
# fix it and remove this vgscan
|
|
vgscan
|
|
pvcreate -M1 $devs
|
|
vgcreate -M1 -c n $vg $devs
|
|
lvcreate -l1 -n $lv1 $vg $dev1
|
|
pvremove -ff -y $dev2
|
|
not lvcreate -l1 -n $lv1 $vg $dev3
|
|
vgcfgbackup -f "$(pwd)/backup.$$" $vg
|