2018-08-17 23:45:52 +03:00
#!/usr/bin/env bash
2018-11-08 12:21:13 +03:00
# Copyright (C) 2018 Red Hat, Inc. All rights reserved.
2018-08-17 23:45:52 +03: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,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
# Test single lv cache with non-linear lvs
SKIP_WITH_LVMPOLLD = 1
. lib/inittest
2019-09-11 21:48:03 +03:00
aux have_cache 1 10 0 || skip
2018-11-08 19:19:39 +03:00
aux have_raid 1 3 5 || skip
2018-11-08 12:21:13 +03:00
which mkfs.xfs || skip
2018-08-17 23:45:52 +03:00
mount_dir = "mnt"
2018-11-08 12:21:13 +03:00
mkdir -p " $mount_dir "
2018-08-17 23:45:52 +03:00
# generate random data
2018-11-08 12:21:13 +03:00
dd if = /dev/urandom of = pattern1 bs = 512K count = 1
2018-08-17 23:45:52 +03:00
aux prepare_devs 4 64
vgcreate $SHARED $vg " $dev1 " " $dev2 " " $dev3 " " $dev4 "
2018-11-08 23:08:41 +03:00
lvcreate --type raid1 -m 1 -n $lv1 -l 8 $vg " $dev1 " " $dev2 "
2018-08-17 23:45:52 +03:00
2018-11-08 23:08:41 +03:00
lvcreate --type raid1 -m 1 -n $lv2 -l 4 $vg " $dev3 " " $dev4 "
2018-08-17 23:45:52 +03:00
# test1: create fs on LV before cache is attached
mkfs.xfs -f -s size = 4096 " $DM_DEV_DIR / $vg / $lv1 "
2018-11-08 12:21:13 +03:00
mount " $DM_DEV_DIR / $vg / $lv1 " " $mount_dir "
2018-08-17 23:45:52 +03:00
2018-11-08 12:21:13 +03:00
cp pattern1 " $mount_dir /pattern1 "
2018-08-17 23:45:52 +03:00
2018-11-08 12:21:13 +03:00
umount " $mount_dir "
2018-08-17 23:45:52 +03:00
lvchange -an $vg /$lv1
2019-01-30 18:55:34 +03:00
lvconvert -y --type cache --cachevol $lv2 $vg /$lv1
2018-08-17 23:45:52 +03:00
check lv_field $vg /$lv1 segtype cache
2019-10-13 01:02:58 +03:00
lvs -a $vg /${ lv2 } _cvol --noheadings -o segtype >out
2018-08-17 23:45:52 +03:00
grep raid1 out
lvchange -ay $vg /$lv1
2018-11-08 12:21:13 +03:00
mount " $DM_DEV_DIR / $vg / $lv1 " " $mount_dir "
2018-08-17 23:45:52 +03:00
2018-11-08 12:21:13 +03:00
diff pattern1 " $mount_dir /pattern1 "
2018-08-17 23:45:52 +03:00
2018-11-08 12:21:13 +03:00
cp pattern1 " $mount_dir /pattern1b "
2018-08-17 23:45:52 +03:00
2018-11-08 12:21:13 +03:00
ls -l " $mount_dir "
2018-08-17 23:45:52 +03:00
2018-11-08 12:21:13 +03:00
umount " $mount_dir "
2018-08-17 23:45:52 +03:00
lvchange -an $vg /$lv1
lvconvert --splitcache $vg /$lv1
check lv_field $vg /$lv1 segtype raid1
check lv_field $vg /$lv2 segtype raid1
lvchange -ay $vg /$lv1
lvchange -ay $vg /$lv2
2018-11-08 12:21:13 +03:00
mount " $DM_DEV_DIR / $vg / $lv1 " " $mount_dir "
2018-08-17 23:45:52 +03:00
2018-11-08 12:21:13 +03:00
ls -l " $mount_dir "
2018-08-17 23:45:52 +03:00
2018-11-08 12:21:13 +03:00
diff pattern1 " $mount_dir /pattern1 "
diff pattern1 " $mount_dir /pattern1b "
2018-08-17 23:45:52 +03:00
2018-11-08 12:21:13 +03:00
umount " $mount_dir "
2018-08-17 23:45:52 +03:00
lvchange -an $vg /$lv1
lvchange -an $vg /$lv2
vgremove -ff $vg