mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-22 17:35:59 +03:00
cc8178e911
vdo wrapper tool uses some 'locally installed' binaries for vdoformat and vdoprepareforlvm Chech for their presence. Skip this test with lvmlockd.
82 lines
2.5 KiB
Bash
82 lines
2.5 KiB
Bash
#!/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
|
|
|
|
# Test conversion of VDO volumes made by vdo manager into VDO LV.
|
|
|
|
SKIP_WITH_LVMLOCKD=1
|
|
SKIP_WITH_LVMPOLLD=1
|
|
|
|
. lib/inittest
|
|
|
|
# Use local for this test vdo configuratoin
|
|
VDO_CONFIG="vdotestconf.yml"
|
|
VDOCONF="-f $VDO_CONFIG"
|
|
#VDOCONF=""
|
|
export VDOCONF VDO_CONFIG
|
|
VDONAME="${PREFIX}-TESTVDO"
|
|
export DM_UUID_PREFIX=$PREFIX
|
|
|
|
# Conversion can be made with this version of vdo driver
|
|
aux have_vdo 6 2 3 || skip
|
|
|
|
if not which vdo ; then
|
|
which lvm_vdo_wrapper || skip "Missing 'lvm_vdo_wrapper'."
|
|
which oldvdoformat || skip "Emulation of vdo manager 'oldvdoformat' missing."
|
|
which oldvdoprepareforlvm || skip "Emulation of vdo manager 'oldvdoprepareforlvm' missing."
|
|
# enable expansion of aliasis within script itself
|
|
shopt -s expand_aliases
|
|
alias vdo='lvm_vdo_wrapper'
|
|
export VDO_BINARY=lvm_vdo_wrapper
|
|
echo "Using 'lvm_vdo_wrapper' emulation of 'vdo' manager."
|
|
fi
|
|
|
|
# VDO automatically starts dmeventd
|
|
aux prepare_dmeventd
|
|
|
|
which mkfs.ext4 || skip
|
|
export MKE2FS_CONFIG="$TESTDIR/lib/mke2fs.conf"
|
|
export TMPDIR=$PWD
|
|
|
|
######################################################################
|
|
#
|
|
# !!! This is rather tricky way how to 'play' with large SCSI !!!
|
|
#
|
|
# Use 311/313MB 'wrap-around' RAM for 4GiB virtual disk.
|
|
# (using prime number for dev_size_mb)
|
|
#
|
|
# ATM this seems work with the test for layout of VDO written data.
|
|
# Minimal required size for VDO volume is ~4GiB
|
|
#
|
|
aux prepare_scsi_debug_dev 311 "virtual_gb=4"
|
|
SCSI_DEV=$(< SCSI_DEBUG_DEV)
|
|
|
|
# this non-scsi backend should always work, but we want to get DEVLINKS
|
|
#aux prepare_devs 1 6144
|
|
#SCSI_DEV=$dev1
|
|
|
|
blockdev --getsize64 "$SCSI_DEV"
|
|
|
|
aux extend_filter_LVMTEST "a|$SCSI_DEV|"
|
|
|
|
# use some not so 'well' aligned virtual|logical size
|
|
vdo create $VDOCONF --name "$VDONAME" --device "$SCSI_DEV" \
|
|
--vdoSlabSize 128M --vdoLogicalSize 5M
|
|
|
|
mkfs.ext4 -E nodiscard "$DM_DEV_DIR/mapper/$VDONAME"
|
|
# Try just dry run and observe logging
|
|
lvm_import_vdo --dry-run -y -v --name $lv1 "$SCSI_DEV"
|
|
|
|
lvm_import_vdo -y --name $vg/$lv "$SCSI_DEV"
|
|
check lv_field $vg/$lv size "6.00m"
|
|
|
|
vgremove -f $vg
|