1#!/bin/sh 2# Copyright (C) 2008 Red Hat, Inc. All rights reserved. 3# 4# This copyrighted material is made available to anyone wishing to use, 5# modify, copy, or redistribute it subject to the terms and conditions 6# of the GNU General Public License v.2. 7# 8# You should have received a copy of the GNU General Public License 9# along with this program; if not, write to the Free Software Foundation, 10# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 11 12. ./test-utils.sh 13 14aux prepare_devs 4 15 16for mdatype in 1 2 17do 18 # setup PVs 19 pvcreate -M$mdatype $dev1 $dev2 20 21 # (lvm$mdatype) vgreduce removes only the specified pv from vg (bz427382)" ' 22 vgcreate -M$mdatype $vg1 $dev1 $dev2 23 vgreduce $vg1 $dev1 24 check_pv_field_ $dev2 vg_name $vg1 25 vgremove -f $vg1 26 27 # (lvm$mdatype) vgreduce rejects removing the last pv (--all) 28 vgcreate -M$mdatype $vg1 $dev1 $dev2 29 not vgreduce --all $vg1 30 vgremove -f $vg1 31 32 # (lvm$mdatype) vgreduce rejects removing the last pv 33 vgcreate -M$mdatype $vg1 $dev1 $dev2 34 not vgreduce $vg1 $dev1 $dev2 35 vgremove -f $vg1 36 37 pvremove -ff $dev1 $dev2 38done 39 40mdatype=2 # we only expect the following to work for lvm2 metadata 41 42# (lvm$mdatype) setup PVs (--metadatacopies 0) 43pvcreate -M$mdatype $dev1 $dev2 44pvcreate --metadatacopies 0 -M$mdatype $dev3 $dev4 45 46# (lvm$mdatype) vgreduce rejects removing pv with the last mda copy (bz247448) 47vgcreate -M$mdatype $vg1 $dev1 $dev3 48not vgreduce $vg1 $dev1 49vgremove -f $vg1 50 51#COMM "(lvm$mdatype) vgreduce --removemissing --force repares to linear (bz221921)" 52# (lvm$mdatype) setup: create mirror & damage one pv 53vgcreate -M$mdatype $vg1 $dev1 $dev2 $dev3 54lvcreate -n $lv1 -m1 -l 4 $vg1 55lvcreate -n $lv2 -l 4 $vg1 $dev2 56lvcreate -n $lv3 -l 4 $vg1 $dev3 57vgchange -an $vg1 58aux disable_dev $dev1 59# (lvm$mdatype) vgreduce --removemissing --force repares to linear 60vgreduce --removemissing --force $vg1 61check_lv_field_ $vg1/$lv1 segtype linear 62vg_validate_pvlv_counts_ $vg1 2 3 0 63# cleanup 64aux enable_dev $dev1 65vgremove -ff $vg1 66 67#COMM "vgreduce rejects --removemissing --mirrorsonly --force when nonmirror lv lost too" 68# (lvm$mdatype) setup: create mirror + linear lvs 69vgcreate -M$mdatype $vg1 $devs 70lvcreate -n $lv2 -l 4 $vg1 71lvcreate -m1 -n $lv1 -l 4 $vg1 $dev1 $dev2 $dev3 72lvcreate -n $lv3 -l 4 $vg1 $dev3 73pvs --segments -o +lv_name # for record only 74# (lvm$mdatype) setup: damage one pv 75vgchange -an $vg1 76aux disable_dev $dev1 77#pvcreate -ff -y $dev1 78# vgreduce rejects --removemissing --mirrorsonly --force when nonmirror lv lost too 79not vgreduce --removemissing --mirrorsonly --force $vg1 80 81aux enable_dev $dev1 82 83pvs -P # for record 84lvs -P # for record 85vgs -P # for record 86