test/shell/lvcreate-vdo-cache.sh | 17 +------- test/shell/lvrename-vdo.sh | 88 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+), 15 deletions(-) create mode 100644 test/shell/lvrename-vdo.sh diff --git a/test/shell/lvcreate-vdo-cache.sh b/test/shell/lvcreate-vdo-cache.sh index c31cccc..6cf8437 100644 --- a/test/shell/lvcreate-vdo-cache.sh +++ b/test/shell/lvcreate-vdo-cache.sh @@ -32,22 +32,9 @@ export MKE2FS_CONFIG="$TESTDIR/lib/mke2fs.conf" aux prepare_vg 1 9000 -lvcreate --vdo -L4G -V2G --name $lv1 $vg/vpool1 - +lvcreate --vdo -L4G -V2G --name $lv1 $vg/vpool # Test caching VDOPoolLV -lvcreate -H -L10 $vg/vpool1 - -# Current VDO target driver cannot handle online rename -# once this will be supported - update this test -not lvrename $vg/vpool1 $vg/vpool 2>&1 | tee out -grep "Cannot rename" out - -lvchange -an $vg - -# Ofline should work -lvrename $vg/vpool1 $vg/vpool - -lvchange -ay $vg +lvcreate -H -L10 $vg/vpool mkfs.ext4 -E nodiscard "$DM_DEV_DIR/$vg/$lv1" diff --git a/test/shell/lvrename-vdo.sh b/test/shell/lvrename-vdo.sh new file mode 100644 index 0000000..1417d9f --- /dev/null +++ b/test/shell/lvrename-vdo.sh @@ -0,0 +1,88 @@ +#!/usr/bin/env bash + +# Copyright (C) 2021 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 + +# Check online renaming of VDO devices works + + +SKIP_WITH_LVMPOLLD=1 + +. lib/inittest + +# +# Main +# + +aux have_vdo 6 2 1 || skip +aux have_cache 1 3 0 || skip +aux have_raid 1 3 0 || skip + +aux prepare_vg 2 5000 + +lvcreate --vdo -L4G -V2G --name $lv1 $vg/vpool1 +lvrename $vg/vpool1 vpool2 +check lv_exists $vg $lv1 vpool2 vpool2_vdata + +lvremove -ff $vg + +# With version >= 6.2.3 online rename should work +if aux have_vdo 6 2 3 ; then + +### CACHE #### +lvcreate --vdo -L4G -V2G --name $lv1 $vg/vpool1 +lvcreate -H -L10 $vg/vpool1 +lvrename $vg/vpool1 $vg/vpool2 +check lv_exists $vg vpool2 vpool2_vdata +lvremove -ff $vg + +### RAID #### +lvcreate --type raid1 -L4G --nosync --name vpool1 $vg +lvconvert --yes --type vdo-pool $vg/vpool1 +lvrename $vg/vpool1 $vg/vpool2 +check lv_exists $vg vpool2 vpool2_vdata vpool2_vdata_rimage_0 +lvremove -ff $vg + +fi # >= 6.2.3 + +# Check when VDO target does not support online resize +aux lvmconf "global/vdo_disabled_features = [ \"online_rename\" ]" + + +### CACHE #### +lvcreate --vdo -L4G -V2G --name $lv1 $vg/vpool1 +lvcreate -H -L10 $vg/vpool1 + +# VDO target driver cannot handle online rename +not lvrename $vg/vpool1 $vg/vpool2 2>&1 | tee out +grep "Cannot rename" out + +# Ofline should work +lvchange -an $vg +lvrename $vg/vpool1 $vg/vpool2 +lvchange -ay $vg +check lv_exists $vg $lv1 vpool2 vpool2_vdata +lvremove -ff $vg + + +### RAID #### +lvcreate --type raid1 -L4G --nosync --name vpool1 $vg +lvconvert --yes --type vdo-pool $vg/vpool1 +not lvrename $vg/vpool1 $vg/vpool2 2>&1 | tee out +grep "Cannot rename" out + +# Ofline should work +lvchange -an $vg +lvrename $vg/vpool1 $vg/vpool2 +lvchange -ay $vg +check lv_exists $vg vpool2 vpool2_vdata vpool2_vdata_rimage_0 +lvremove -ff $vg + +vgremove -ff $vg