mirror of
git://sourceware.org/git/lvm2.git
synced 2025-04-01 18:50:41 +03:00
tests: adjust for check_devicesfile
This commit is contained in:
parent
b0bda7c25b
commit
4df6931c4c
@ -1023,8 +1023,9 @@ prepare_devs() {
|
||||
if test -n "$LVM_TEST_DEVICES_FILE"; then
|
||||
mkdir -p "$TESTDIR/etc/lvm/devices" || true
|
||||
rm "$TESTDIR/etc/lvm/devices/system.devices" || true
|
||||
touch "$TESTDIR/etc/lvm/devices/system.devices"
|
||||
for d in "${DEVICES[@]}"; do
|
||||
lvmdevices --adddev "$dev" || true
|
||||
lvmdevices --adddev "$d" || true
|
||||
done
|
||||
fi
|
||||
|
||||
@ -1342,9 +1343,19 @@ prepare_vg() {
|
||||
vgcreate $SHARED -s 512K "$vg" "${DEVICES[@]}"
|
||||
}
|
||||
|
||||
extend_devices() {
|
||||
test -z "$LVM_TEST_DEVICES_FILE" && return
|
||||
|
||||
for dev in "$@"; do
|
||||
lvmdevices --adddev $dev
|
||||
done
|
||||
}
|
||||
|
||||
extend_filter() {
|
||||
local filter
|
||||
|
||||
test -n "$LVM_TEST_DEVICES_FILE" && return
|
||||
|
||||
filter=$(grep ^devices/global_filter CONFIG_VALUES | tail -n 1)
|
||||
for rx in "$@"; do
|
||||
filter=$(echo "$filter" | sed -e "s:\\[:[ \"$rx\", :")
|
||||
@ -1355,6 +1366,8 @@ extend_filter() {
|
||||
extend_filter_md() {
|
||||
local filter
|
||||
|
||||
test -n "$LVM_TEST_DEVICES_FILE" && return
|
||||
|
||||
filter=$(grep ^devices/global_filter CONFIG_VALUES | tail -n 1)
|
||||
for rx in "$@"; do
|
||||
filter=$(echo "$filter" | sed -e "s:\\[:[ \"$rx\", :")
|
||||
@ -1370,21 +1383,33 @@ extend_filter_LVMTEST() {
|
||||
hide_dev() {
|
||||
local filter
|
||||
|
||||
filter=$(grep ^devices/global_filter CONFIG_VALUES | tail -n 1)
|
||||
for dev in "$@"; do
|
||||
filter=$(echo "$filter" | sed -e "s:\\[:[ \"r|$dev|\", :")
|
||||
done
|
||||
lvmconf "$filter"
|
||||
if test -n "$LVM_TEST_DEVICES_FILE"; then
|
||||
for dev in "$@"; do
|
||||
lvmdevices --deldev $dev
|
||||
done
|
||||
else
|
||||
filter=$(grep ^devices/global_filter CONFIG_VALUES | tail -n 1)
|
||||
for dev in "$@"; do
|
||||
filter=$(echo "$filter" | sed -e "s:\\[:[ \"r|$dev|\", :")
|
||||
done
|
||||
lvmconf "$filter"
|
||||
fi
|
||||
}
|
||||
|
||||
unhide_dev() {
|
||||
local filter
|
||||
|
||||
filter=$(grep ^devices/global_filter CONFIG_VALUES | tail -n 1)
|
||||
for dev in "$@"; do
|
||||
filter=$(echo "$filter" | sed -e "s:\"r|$dev|\", ::")
|
||||
done
|
||||
lvmconf "$filter"
|
||||
if test -n "$LVM_TEST_DEVICES_FILE"; then
|
||||
for dev in "$@"; do
|
||||
lvmdevices -y --adddev $dev
|
||||
done
|
||||
else
|
||||
filter=$(grep ^devices/global_filter CONFIG_VALUES | tail -n 1)
|
||||
for dev in "$@"; do
|
||||
filter=$(echo "$filter" | sed -e "s:\"r|$dev|\", ::")
|
||||
done
|
||||
lvmconf "$filter"
|
||||
fi
|
||||
}
|
||||
|
||||
mkdev_md5sum() {
|
||||
@ -1433,13 +1458,13 @@ backup/backup = 0
|
||||
devices/cache_dir = "$TESTDIR/etc"
|
||||
devices/default_data_alignment = 1
|
||||
devices/dir = "$DM_DEV_DIR"
|
||||
devices/filter = "a|.*|"
|
||||
devices/global_filter = [ "a|$DM_DEV_DIR/mapper/${PREFIX}.*pv[0-9_]*$|", "r|.*|" ]
|
||||
devices/md_component_detection = 0
|
||||
devices/scan = "$DM_DEV_DIR"
|
||||
devices/sysfs_scan = 1
|
||||
devices/write_cache_state = 0
|
||||
devices/use_devicesfile = $LVM_TEST_DEVICES_FILE
|
||||
devices/filter = "a|.*|"
|
||||
devices/global_filter = [ "a|$DM_DEV_DIR/mapper/${PREFIX}.*pv[0-9_]*$|", "r|.*|" ]
|
||||
global/abort_on_internal_errors = 1
|
||||
global/cache_check_executable = "$LVM_TEST_CACHE_CHECK_CMD"
|
||||
global/cache_dump_executable = "$LVM_TEST_CACHE_DUMP_CMD"
|
||||
|
@ -63,6 +63,8 @@ test -n "$SKIP_WITH_LVMPOLLD" && test -n "$LVM_TEST_LVMPOLLD" && test -z "$LVM_T
|
||||
|
||||
test -n "$SKIP_WITH_LVMLOCKD" && test -n "$LVM_TEST_LVMLOCKD" && initskip
|
||||
|
||||
test -n "$SKIP_WITH_DEVICES_FILE" && test -n "$LVM_TEST_DEVICES_FILE" && initskip
|
||||
|
||||
unset CDPATH
|
||||
|
||||
export LVM_TEST_BACKING_DEVICE LVM_TEST_DEVDIR LVM_TEST_NODEBUG LVM_TEST_FAILURE
|
||||
|
@ -45,6 +45,7 @@ for i in "$LOOP1" "$LOOP2"; do
|
||||
done
|
||||
|
||||
aux extend_filter "a|$dev1|" "a|$dev2|"
|
||||
aux extend_devices "$dev1" "$dev2"
|
||||
|
||||
not vgcreate --config 'devices/allow_mixed_block_sizes=0' $vg "$dev1" "$dev2"
|
||||
vgcreate --config 'devices/allow_mixed_block_sizes=1' $vg "$dev1" "$dev2"
|
||||
|
@ -287,35 +287,6 @@ pvscan --devices "$dev4" --cache -aay "$dev4"
|
||||
check lv_field $vg2/$lv2 lv_active "active"
|
||||
vgchange -an $vg2
|
||||
|
||||
|
||||
# verify --devicesfile and --devices are not affected by a filter
|
||||
# hide_dev excludes using existing filter
|
||||
aux hide_dev "$dev2"
|
||||
aux hide_dev "$dev4"
|
||||
pvs --devicesfile test.devices "$dev1"
|
||||
pvs --devicesfile test.devices "$dev2"
|
||||
not pvs --devicesfile test.devices "$dev3"
|
||||
not pvs --devicesfile test.devices "$dev4"
|
||||
pvs --devices "$dev1" "$dev1"
|
||||
pvs --devices "$dev2" "$dev2"
|
||||
pvs --devices "$dev3" "$dev3"
|
||||
pvs --devices "$dev4" "$dev4"
|
||||
pvs --devices "$dev5" "$dev5"
|
||||
pvs --devices "$dev1","$dev2","$dev3","$dev4","$dev5" "$dev1" "$dev2" "$dev3" "$dev4" "$dev5" | tee out
|
||||
grep "$dev1" out
|
||||
grep "$dev2" out
|
||||
grep "$dev3" out
|
||||
grep "$dev4" out
|
||||
grep "$dev5" out
|
||||
vgchange --devices "$dev1","$dev2" -ay $vg1
|
||||
check lv_field $vg1/$lv1 lv_active "active"
|
||||
lvchange --devices "$dev1","$dev2" -an $vg1/$lv1
|
||||
vgchange --devices "$dev3","$dev4" -ay $vg2
|
||||
check lv_field $vg2/$lv2 lv_active "active"
|
||||
lvchange --devices "$dev3","$dev4" -an $vg2/$lv2
|
||||
aux unhide_dev "$dev2"
|
||||
aux unhide_dev "$dev4"
|
||||
|
||||
vgchange --devicesfile "" -an
|
||||
vgremove --devicesfile "" -y $vg1
|
||||
vgremove --devicesfile "" -y $vg2
|
||||
@ -636,3 +607,61 @@ grep "$dev2" "$DFDIR/test.devices"
|
||||
rm "$DFDIR/test.devices"
|
||||
vgcreate --devicesfile test.devices $vg3 "$dev3"
|
||||
grep "$dev3" "$DFDIR/test.devices"
|
||||
|
||||
#
|
||||
# verify --devicesfile and --devices are not affected by a filter
|
||||
# This is last because it sets lvm.conf filter and
|
||||
# I haven't found a way of removing the filter from
|
||||
# the config after setting it.
|
||||
#
|
||||
|
||||
aux lvmconf 'devices/use_devicesfile = 0'
|
||||
wipe_all
|
||||
rm -f "$DF"
|
||||
rm -f "$DFDIR/test.devices"
|
||||
|
||||
vgcreate --devicesfile test.devices $vg1 "$dev1" "$dev2"
|
||||
grep "$dev1" "$DFDIR/test.devices"
|
||||
grep "$dev2" "$DFDIR/test.devices"
|
||||
not ls "$DFDIR/system.devices"
|
||||
|
||||
# create two VGs outside the special devices file
|
||||
vgcreate $vg2 "$dev3" "$dev4"
|
||||
vgcreate $vg3 "$dev5" "$dev6"
|
||||
not grep "$dev3" "$DFDIR/test.devices"
|
||||
not grep "$dev5" "$DFDIR/test.devices"
|
||||
not ls "$DFDIR/system.devices"
|
||||
|
||||
lvcreate -l4 -an -i2 -n $lv1 $vg1
|
||||
lvcreate -l4 -an -i2 -n $lv2 $vg2
|
||||
lvcreate -l4 -an -i2 -n $lv3 $vg3
|
||||
|
||||
aux lvmconf "devices/filter = [ \"r|$dev2|\" \"r|$dev4|\" ]"
|
||||
|
||||
pvs --devicesfile test.devices "$dev1"
|
||||
pvs --devicesfile test.devices "$dev2"
|
||||
not pvs --devicesfile test.devices "$dev3"
|
||||
not pvs --devicesfile test.devices "$dev4"
|
||||
pvs --devices "$dev1" "$dev1"
|
||||
pvs --devices "$dev2" "$dev2"
|
||||
pvs --devices "$dev3" "$dev3"
|
||||
pvs --devices "$dev4" "$dev4"
|
||||
pvs --devices "$dev5" "$dev5"
|
||||
pvs --devices "$dev1","$dev2","$dev3","$dev4","$dev5" "$dev1" "$dev2" "$dev3" "$dev4" "$dev5" | tee out
|
||||
grep "$dev1" out
|
||||
grep "$dev2" out
|
||||
grep "$dev3" out
|
||||
grep "$dev4" out
|
||||
grep "$dev5" out
|
||||
vgchange --devices "$dev1","$dev2" -ay $vg1
|
||||
check lv_field $vg1/$lv1 lv_active "active"
|
||||
lvchange --devices "$dev1","$dev2" -an $vg1/$lv1
|
||||
vgchange --devices "$dev3","$dev4" -ay $vg2
|
||||
check lv_field $vg2/$lv2 lv_active "active"
|
||||
lvchange --devices "$dev3","$dev4" -an $vg2/$lv2
|
||||
|
||||
vgchange -an --devicesfile test.devices $vg1
|
||||
vgremove -y --devicesfile test.devices $vg1
|
||||
vgremove -y $vg2
|
||||
vgremove -y $vg3
|
||||
|
||||
|
@ -60,6 +60,7 @@ for pass in "auto" "start" ; do
|
||||
#
|
||||
aux mdadm_create --metadata=1.0 --level="$MD_LEVEL" --chunk=64 --raid-devices=2 "$dev1" "$dev2"
|
||||
mddev=$(< MD_DEV)
|
||||
lvmdevices --adddev $mddev || true
|
||||
|
||||
pvcreate "$mddev"
|
||||
PVIDMD=$(get pv_field "$mddev" uuid | tr -d - )
|
||||
@ -118,6 +119,7 @@ check inactive $vg $lv1
|
||||
|
||||
vgchange -an $vg
|
||||
vgremove -f $vg
|
||||
lvmdevices --deldev $mddev || true
|
||||
aux cleanup_md_dev
|
||||
|
||||
|
||||
@ -129,6 +131,7 @@ aux cleanup_md_dev
|
||||
|
||||
aux mdadm_create --metadata=1.0 --level="$MD_LEVEL" --chunk=64 --raid-devices=2 "$dev1" "$dev2"
|
||||
mddev=$(< MD_DEV)
|
||||
lvmdevices --adddev $mddev || true
|
||||
|
||||
pvcreate "$mddev"
|
||||
PVIDMD=$(get pv_field "$mddev" uuid | tr -d - )
|
||||
@ -188,6 +191,7 @@ aux udev_wait
|
||||
|
||||
aux mdadm_create --metadata=1.0 --level="$MD_LEVEL" --chunk=64 --raid-devices=2 "$dev1" "$dev2"
|
||||
mddev=$(< MD_DEV)
|
||||
lvmdevices --adddev $mddev || true
|
||||
|
||||
pvcreate "$mddev"
|
||||
PVIDMD=$(get pv_field "$mddev" uuid | tr -d - )
|
||||
@ -235,6 +239,7 @@ test ! -f "$RUNDIR/lvm/pvs_online/$PVIDMD"
|
||||
test ! -f "$RUNDIR/lvm/vgs_online/$vg"
|
||||
|
||||
aux enable_dev "$dev2"
|
||||
lvmdevices --deldev $mddev || true
|
||||
aux cleanup_md_dev
|
||||
|
||||
aux wipefs_a "$dev1"
|
||||
@ -250,6 +255,7 @@ if [ "$MD_LEVEL" = "1" ] ; then
|
||||
#
|
||||
aux mdadm_create --metadata=1.0 --level="$MD_LEVEL" --chunk=64 --raid-devices=3 "$dev1" "$dev2" "$dev4"
|
||||
mddev=$(< MD_DEV)
|
||||
lvmdevices --adddev $mddev || true
|
||||
|
||||
pvcreate "$mddev"
|
||||
PVIDMD=$(get pv_field "$mddev" uuid | tr -d - )
|
||||
|
@ -141,6 +141,12 @@ not cat $NEWHINTS
|
||||
# Test that adding a new device and removing a device
|
||||
# causes hints to be recreated.
|
||||
#
|
||||
# with a devices file the appearance of a new device on
|
||||
# the system does not disturb lvm, so this test doesn't
|
||||
# apply
|
||||
#
|
||||
|
||||
if ! lvmdevices; then
|
||||
|
||||
not pvs "$dev5"
|
||||
|
||||
@ -183,6 +189,9 @@ grep devs_hash $PREV > devs_hash1
|
||||
grep devs_hash $HINTS > devs_hash2
|
||||
not diff devs_hash1 devs_hash2
|
||||
|
||||
# end of new device test for non-devicesfile case
|
||||
fi
|
||||
|
||||
#
|
||||
# Test that hints don't change from a bunch of commands
|
||||
# that use hints and shouldn't change it.
|
||||
|
@ -72,6 +72,10 @@ aux extend_filter "a|$LOOP1|"
|
||||
aux extend_filter "a|$LOOP2|"
|
||||
aux extend_filter "a|$LOOP3|"
|
||||
aux extend_filter "a|$LOOP4|"
|
||||
aux extend_devices "$LOOP1"
|
||||
aux extend_devices "$LOOP2"
|
||||
aux extend_devices "$LOOP3"
|
||||
aux extend_devices "$LOOP4"
|
||||
|
||||
aux lvmconf 'devices/scan = "/dev"'
|
||||
|
||||
|
@ -34,6 +34,7 @@ ls -la "${LOOP}"*
|
||||
test -e "${LOOP}p1"
|
||||
|
||||
aux extend_filter "a|$LOOP|"
|
||||
aux extend_devices "$LOOP"
|
||||
|
||||
# creation should fail for 'partitioned' loop device
|
||||
not pvcreate -y "$LOOP"
|
||||
@ -57,6 +58,7 @@ ls -la "${LOOP}"*
|
||||
test ! -e "${LOOP}p1"
|
||||
|
||||
aux extend_filter "a|$LOOP|"
|
||||
aux extend_devices "$LOOP"
|
||||
|
||||
# creation should pass for 'non-partitioned' loop device
|
||||
pvcreate -y "$LOOP"
|
||||
|
@ -11,6 +11,16 @@ test_description='Test duplicate PVs'
|
||||
SKIP_WITH_LVMPOLLD=1
|
||||
SKIP_WITH_CLVMD=1
|
||||
|
||||
# This test should work with real device ids (not devnames).
|
||||
# When PVs are being overwritten by the test, the devices file is
|
||||
# excluding them since with idtype=devname the devices file falls
|
||||
# back to including devs based on PVIDs in the devices file,
|
||||
# but the 'dd' is clobbering the PVIDs so those devs aren't included
|
||||
# so the 'pvs' commands below don't report them.
|
||||
# In general this is better behavior, but needs to be tested
|
||||
# with proper device ids.
|
||||
SKIP_WITH_DEVICES_FILE=1
|
||||
|
||||
. lib/inittest
|
||||
|
||||
aux prepare_devs 6 16
|
||||
|
@ -20,8 +20,8 @@ aux prepare_devs 3
|
||||
|
||||
pvcreate "$dev1"
|
||||
UUID1=$(get pv_field "$dev1" uuid)
|
||||
pvcreate --config "devices{filter=[\"a|$dev2|\",\"r|.*|\"]}" -u "$UUID1" --norestorefile "$dev2"
|
||||
pvcreate --config "devices{filter=[\"a|$dev3|\",\"r|.*|\"]}" -u "$UUID1" --norestorefile "$dev3"
|
||||
pvcreate --devices "$dev2" -u "$UUID1" --norestorefile "$dev2"
|
||||
pvcreate --devices "$dev3" -u "$UUID1" --norestorefile "$dev3"
|
||||
|
||||
pvscan --cache 2>&1 | tee out
|
||||
|
||||
@ -35,7 +35,7 @@ test "$(grep -c $UUID1 main)" -eq 1
|
||||
COUNT=$(grep --count "Not using device" warn)
|
||||
[ "$COUNT" -eq 2 ]
|
||||
|
||||
pvs -o+uuid --config "devices{filter=[\"a|$dev2|\",\"r|.*|\"]}" 2>&1 | tee out
|
||||
pvs -o+uuid --devices $dev2 2>&1 | tee out
|
||||
|
||||
rm warn main || true
|
||||
grep WARNING out > warn || true
|
||||
|
@ -64,6 +64,7 @@ dd if=dev1_backup of="$dev1" bs=1M
|
||||
# prepare a VG with $dev1 and $dev both having 1 MDA
|
||||
aux enable_dev "$dev2"
|
||||
vgremove -ff $vg1
|
||||
pvremove -ff -y "$dev1"
|
||||
pvcreate --metadatacopies 1 "$dev1"
|
||||
vgcreate $vg1 "$dev1" "$dev2"
|
||||
|
||||
@ -122,6 +123,7 @@ dd if=dev1_backup of="$dev1" bs=1M
|
||||
# prepare a VG with $dev1 and $dev both having 1 MDA
|
||||
aux enable_dev "$dev2"
|
||||
vgremove -ff $vg1
|
||||
pvremove -ff -y "$dev1"
|
||||
pvcreate --metadatacopies 1 "$dev1"
|
||||
vgcreate $vg1 "$dev1" "$dev2"
|
||||
|
||||
|
@ -22,6 +22,10 @@ lvcreate --type snapshot -s -L10 -n $lv2 $vg --virtualsize 4T
|
||||
lvcreate --type snapshot -s -L10 -n $lv3 $vg --virtualsize 4194300M
|
||||
|
||||
aux extend_filter_LVMTEST
|
||||
aux lvmconf "devices/scan_lvs = 1"
|
||||
aux extend_devices "$DM_DEV_DIR/$vg/$lv1"
|
||||
aux extend_devices "$DM_DEV_DIR/$vg/$lv2"
|
||||
aux extend_devices "$DM_DEV_DIR/$vg/$lv3"
|
||||
|
||||
vgcreate $vg1 "$DM_DEV_DIR/$vg/$lv2"
|
||||
|
||||
|
@ -26,6 +26,9 @@ aux extend_filter_LVMTEST
|
||||
|
||||
lvcreate -L10 -V10 -n $lv1 -T $vg/pool1
|
||||
|
||||
aux extend_devices "$DM_DEV_DIR/$vg/$lv1"
|
||||
aux lvmconf "devices/scan_lvs = 1"
|
||||
|
||||
pvcreate "$DM_DEV_DIR/$vg/$lv1"
|
||||
pvremove "$DM_DEV_DIR/$vg/$lv1"
|
||||
|
||||
|
@ -15,8 +15,8 @@ SKIP_WITH_LVMPOLLD=1
|
||||
|
||||
. lib/inittest
|
||||
|
||||
# Sets 'scan_lvs = 1'
|
||||
aux extend_filter_LVMTEST
|
||||
aux lvmconf "devices/scan_lvs = 1"
|
||||
|
||||
aux prepare_pvs 1
|
||||
|
||||
@ -24,6 +24,7 @@ vgcreate $SHARED $vg1 "$dev1"
|
||||
|
||||
lvcreate -l1 -n $lv1 $vg1
|
||||
|
||||
aux extend_devices "$DM_DEV_DIR/$vg1/$lv1"
|
||||
pvcreate "$DM_DEV_DIR/$vg1/$lv1"
|
||||
|
||||
pvs "$DM_DEV_DIR/$vg1/$lv1"
|
||||
|
@ -23,10 +23,11 @@ aux prepare_vg 5
|
||||
|
||||
# Create stacked device
|
||||
lvcreate --type snapshot -s -L10 -n $lv1 $vg --virtualsize 100M
|
||||
aux lvmconf "devices/scan_lvs = 1"
|
||||
aux extend_filter_LVMTEST
|
||||
aux extend_devices "$DM_DEV_DIR"/$vg/$lv1
|
||||
vgcreate $vg1 "$DM_DEV_DIR"/$vg/$lv1
|
||||
|
||||
|
||||
lvcreate -L20 -n $lv1 $vg1
|
||||
lvcreate -L10 -n snap -s $vg1/$lv1
|
||||
|
||||
|
@ -26,7 +26,10 @@ get_devs
|
||||
# Prepare large enough backend device
|
||||
vgcreate -s 4M "$vg" "${DEVICES[@]}"
|
||||
lvcreate --type snapshot -s -l 100%FREE -n $lv $vg --virtualsize 15P
|
||||
|
||||
aux lvmconf "devices/scan_lvs = 1"
|
||||
aux extend_filter_LVMTEST
|
||||
aux extend_devices "$DM_DEV_DIR/$vg/$lv"
|
||||
|
||||
# Check usability with largest extent size
|
||||
pvcreate "$DM_DEV_DIR/$vg/$lv"
|
||||
|
@ -77,6 +77,8 @@ lvremove -f $vg
|
||||
lvcreate --type snapshot -s -l 100%FREE -n $lv $vg --virtualsize $TSIZE
|
||||
|
||||
aux extend_filter_LVMTEST
|
||||
aux extend_devices "$DM_DEV_DIR/$vg/$lv"
|
||||
aux lvmconf "devices/scan_lvs = 1"
|
||||
aux lvmconf "activation/snapshot_autoextend_percent = 20" \
|
||||
"activation/snapshot_autoextend_threshold = 50"
|
||||
|
||||
|
@ -27,6 +27,19 @@ aux prepare_devs 1
|
||||
SIDFILE="etc/lvm_test.conf"
|
||||
LVMLOCAL="etc/lvmlocal.conf"
|
||||
|
||||
DFDIR="$LVM_SYSTEM_DIR/devices"
|
||||
DF="$DFDIR/system.devices"
|
||||
|
||||
# Avoid system id validation in the devices file
|
||||
# which gets in the way of the test switching the
|
||||
# local system id.
|
||||
clear_df_systemid() {
|
||||
if [[ -f $DF ]]; then
|
||||
sed -e "s|SYSTEMID=.||" "$DF" > tmpdf
|
||||
cp tmpdf $DF
|
||||
fi
|
||||
}
|
||||
|
||||
# create vg with system_id using each source
|
||||
|
||||
## none
|
||||
@ -38,7 +51,8 @@ check vg_field $vg1 systemid "$SID"
|
||||
vgremove $vg1
|
||||
|
||||
# FIXME - print 'life' config data
|
||||
eval "$(lvmconfig global/etc 2>/dev/null || lvmconfig --type default global/etc)"
|
||||
#eval "$(lvmconfig global/etc 2>/dev/null || lvmconfig --type default global/etc)"
|
||||
etc="/etc"
|
||||
|
||||
## machineid
|
||||
if [ -e "$etc/machine-id" ]; then
|
||||
@ -77,6 +91,7 @@ rm -f "$LVMLOCAL"
|
||||
|
||||
SID=sidfoofile
|
||||
echo "$SID" > "$SIDFILE"
|
||||
clear_df_systemid
|
||||
aux lvmconf "global/system_id_source = file" \
|
||||
"global/system_id_file = \"$SIDFILE\""
|
||||
vgcreate $vg1 "$dev1"
|
||||
@ -89,6 +104,7 @@ vgremove $vg1
|
||||
SID1=sidfoofile1
|
||||
SID2=sidfoofile2
|
||||
echo "$SID1" > "$SIDFILE"
|
||||
clear_df_systemid
|
||||
aux lvmconf "global/system_id_source = file" \
|
||||
"global/system_id_file = \"$SIDFILE\""
|
||||
# create a vg, overriding the local system_id so the vg looks foreign
|
||||
@ -108,6 +124,7 @@ vgs --foreign $vg1 >err
|
||||
grep $vg1 err
|
||||
# change the local system_id to the second value, making the vg not foreign
|
||||
echo "$SID2" > "$SIDFILE"
|
||||
clear_df_systemid
|
||||
# we can now see and remove the vg
|
||||
vgs $vg1 >err
|
||||
grep $vg1 err
|
||||
@ -118,6 +135,7 @@ vgremove $vg1
|
||||
SID1=sidfoofile1
|
||||
SID2=sidfoofile2
|
||||
echo "$SID1" > "$SIDFILE"
|
||||
clear_df_systemid
|
||||
aux lvmconf "global/system_id_source = file" \
|
||||
"global/system_id_file = \"$SIDFILE\""
|
||||
# create a vg
|
||||
@ -127,6 +145,7 @@ vgs >err
|
||||
grep $vg1 err
|
||||
# change the local system_id, making the vg foreign
|
||||
echo "$SID2" > "$SIDFILE"
|
||||
clear_df_systemid
|
||||
# normal vgs doesn't see the vg
|
||||
vgs >err
|
||||
not grep $vg1 err
|
||||
@ -135,6 +154,7 @@ vgs --foreign >err
|
||||
grep $vg1 err
|
||||
# change the local system_id back to the first value, making the vg not foreign
|
||||
echo "$SID1" > "$SIDFILE"
|
||||
clear_df_systemid
|
||||
vgs >err
|
||||
grep $vg1 err
|
||||
vgremove $vg1
|
||||
@ -144,6 +164,7 @@ vgremove $vg1
|
||||
SID1=sidfoofile1
|
||||
SID2=sidfoofile2
|
||||
echo "$SID1" > "$SIDFILE"
|
||||
clear_df_systemid
|
||||
aux lvmconf "global/system_id_source = file" \
|
||||
"global/system_id_file = \"$SIDFILE\""
|
||||
# create a vg
|
||||
@ -161,6 +182,7 @@ vgs --foreign >err
|
||||
grep $vg1 err
|
||||
# change the local system_id to the second system_id so we can remove the vg
|
||||
echo "$SID2" > "$SIDFILE"
|
||||
clear_df_systemid
|
||||
vgs >err
|
||||
grep $vg1 err
|
||||
vgremove $vg1
|
||||
@ -172,6 +194,7 @@ vgremove $vg1
|
||||
SID1=sidfoofile1
|
||||
SID2=sidfoofile2
|
||||
echo "$SID1" > "$SIDFILE"
|
||||
clear_df_systemid
|
||||
aux lvmconf "global/system_id_source = file" \
|
||||
"global/system_id_file = \"$SIDFILE\""
|
||||
# create a vg
|
||||
@ -183,6 +206,7 @@ grep $vg1 err
|
||||
check lv_exists $vg1 $lv1
|
||||
# change our system_id, making the vg foreign, but accessible
|
||||
echo "$SID2" > "$SIDFILE"
|
||||
clear_df_systemid
|
||||
vgs >err
|
||||
grep $vg1 err
|
||||
check lv_exists $vg1 $lv1
|
||||
@ -193,6 +217,7 @@ not lvremove $vg1/$lv1
|
||||
not vgremove $vg1
|
||||
# change our system_id back to match the vg so it's not foreign
|
||||
echo "$SID1" > "$SIDFILE"
|
||||
clear_df_systemid
|
||||
vgs >err
|
||||
grep $vg1 err
|
||||
lvremove $vg1/$lv1
|
||||
@ -202,6 +227,7 @@ vgremove $vg1
|
||||
|
||||
SID1=sidfoofile1
|
||||
echo "$SID1" > "$SIDFILE"
|
||||
clear_df_systemid
|
||||
aux lvmconf "global/system_id_source = file" \
|
||||
"global/system_id_file = \"$SIDFILE\""
|
||||
# create a vg
|
||||
@ -220,12 +246,14 @@ vgremove $vg1
|
||||
|
||||
SID1=sidfoofile1
|
||||
rm -f "$SIDFILE"
|
||||
clear_df_systemid
|
||||
# create a vg with no system_id
|
||||
aux lvmconf "global/system_id_source = none"
|
||||
vgcreate $vg1 "$dev1"
|
||||
check vg_field $vg1 systemid ""
|
||||
# set a local system_id
|
||||
echo "$SID1" > "$SIDFILE"
|
||||
clear_df_systemid
|
||||
aux lvmconf "global/system_id_source = file" \
|
||||
"global/system_id_file = \"$SIDFILE\""
|
||||
# check we can see and use the vg with no system_id
|
||||
@ -239,6 +267,7 @@ vgremove $vg1
|
||||
|
||||
SID1=sidfoofile1
|
||||
echo "$SID1" > "$SIDFILE"
|
||||
clear_df_systemid
|
||||
aux lvmconf "global/system_id_source = file" \
|
||||
"global/system_id_file = \"$SIDFILE\""
|
||||
# create a vg
|
||||
@ -269,6 +298,7 @@ SID2=012345678901234567890123456789012345678901234567890123456789012345678901234
|
||||
|
||||
# max len system_id should appear normally
|
||||
echo "$SID1" > "$SIDFILE"
|
||||
clear_df_systemid
|
||||
aux lvmconf "global/system_id_source = file" \
|
||||
"global/system_id_file = \"$SIDFILE\""
|
||||
# create a vg
|
||||
@ -281,6 +311,7 @@ vgremove $vg1
|
||||
|
||||
# max+1 len system_id should be missing the last character
|
||||
echo "$SID2" > "$SIDFILE"
|
||||
clear_df_systemid
|
||||
aux lvmconf "global/system_id_source = file" \
|
||||
"global/system_id_file = \"$SIDFILE\""
|
||||
# create a vg
|
||||
@ -300,6 +331,7 @@ SID1=012345678901234567890123456789012345678901234567890123456789012345678901234
|
||||
# The string is truncated to max length (128) before the invalid character is omitted
|
||||
SID2=012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789abcdefg
|
||||
echo "$SID1" > "$SIDFILE"
|
||||
clear_df_systemid
|
||||
aux lvmconf "global/system_id_source = file" \
|
||||
"global/system_id_file = \"$SIDFILE\""
|
||||
# create a vg
|
||||
@ -316,6 +348,7 @@ SID1="?%$&A.@1]"
|
||||
# SID1 without the invalid characters
|
||||
SID2=A.1
|
||||
echo "$SID1" > "$SIDFILE"
|
||||
clear_df_systemid
|
||||
aux lvmconf "global/system_id_source = file" \
|
||||
"global/system_id_file = \"$SIDFILE\""
|
||||
# create a vg
|
||||
@ -334,6 +367,7 @@ vgremove $vg1
|
||||
SID1=sidfoofile1
|
||||
SID2=sidfoofile2
|
||||
echo "$SID1" > "$SIDFILE"
|
||||
clear_df_systemid
|
||||
aux lvmconf "global/system_id_source = file" \
|
||||
"global/system_id_file = \"$SIDFILE\""
|
||||
# create a vg
|
||||
@ -344,6 +378,7 @@ grep $vg1 err
|
||||
grep "$dev1" err
|
||||
# change the local system_id, making the vg foreign
|
||||
echo "$SID2" > "$SIDFILE"
|
||||
clear_df_systemid
|
||||
# normal pvs does not see the vg or pv
|
||||
pvs >err
|
||||
not grep $vg1 err
|
||||
@ -354,6 +389,7 @@ grep $vg1 err
|
||||
grep "$dev1" err
|
||||
# change the local system_id back so the vg can be removed
|
||||
echo "$SID1" > "$SIDFILE"
|
||||
clear_df_systemid
|
||||
vgremove $vg1
|
||||
rm -f "$SIDFILE"
|
||||
|
||||
@ -363,6 +399,7 @@ rm -f "$SIDFILE"
|
||||
SID1=sidfoofile1
|
||||
SID2=sidfoofile2
|
||||
echo "$SID1" > "$SIDFILE"
|
||||
clear_df_systemid
|
||||
aux lvmconf "global/system_id_source = file" \
|
||||
"global/system_id_file = \"$SIDFILE\""
|
||||
# create a vg
|
||||
@ -375,6 +412,7 @@ grep $vg1 err
|
||||
grep $lv1 err
|
||||
# change the local system_id, making the vg foreign
|
||||
echo "$SID2" > "$SIDFILE"
|
||||
clear_df_systemid
|
||||
# normal lvs does not see the vg or lv
|
||||
lvs >err
|
||||
not grep $vg1 err
|
||||
@ -385,6 +423,7 @@ grep $vg1 err
|
||||
grep $lv1 err
|
||||
# change the local system_id back so the vg can be removed
|
||||
echo "$SID1" > "$SIDFILE"
|
||||
clear_df_systemid
|
||||
lvremove $vg1/$lv1
|
||||
vgremove $vg1
|
||||
rm -f "$SIDFILE"
|
||||
@ -395,6 +434,7 @@ SID1=sidfoofile1
|
||||
SID2=sidfoofile2
|
||||
rm -f "$LVMLOCAL"
|
||||
echo "$SID1" > "$SIDFILE"
|
||||
clear_df_systemid
|
||||
aux lvmconf "global/system_id_source = file" \
|
||||
"global/system_id_file = \"$SIDFILE\""
|
||||
# create a vg
|
||||
@ -404,6 +444,7 @@ vgs >err
|
||||
grep $vg1 err
|
||||
# change the local system_id, making the vg foreign
|
||||
echo "$SID2" > "$SIDFILE"
|
||||
clear_df_systemid
|
||||
# normal vgs doesn't see the vg
|
||||
vgs >err
|
||||
not grep $vg1 err
|
||||
@ -420,6 +461,7 @@ rm -f "$LVMLOCAL"
|
||||
# vgcreate --systemid "" creates a vg without a system_id even if source is set
|
||||
SID1=sidfoofile1
|
||||
echo "$SID1" > "$SIDFILE"
|
||||
clear_df_systemid
|
||||
aux lvmconf "global/system_id_source = file" \
|
||||
"global/system_id_file = \"$SIDFILE\""
|
||||
# create a vg
|
||||
@ -436,6 +478,7 @@ rm -f "$SIDFILE"
|
||||
# vgchange --systemid "" clears the system_id on owned vg
|
||||
SID1=sidfoofile1
|
||||
echo "$SID1" > "$SIDFILE"
|
||||
clear_df_systemid
|
||||
aux lvmconf "global/system_id_source = file" \
|
||||
"global/system_id_file = \"$SIDFILE\""
|
||||
# create a vg
|
||||
@ -461,6 +504,7 @@ SID1=sidfoofile1
|
||||
SID2=sidfoofile2
|
||||
rm -f "$LVMLOCAL"
|
||||
echo "$SID1" > "$SIDFILE"
|
||||
clear_df_systemid
|
||||
aux lvmconf "global/system_id_source = file" \
|
||||
"global/system_id_file = \"$SIDFILE\""
|
||||
# create a vg
|
||||
@ -470,6 +514,7 @@ vgs >err
|
||||
grep $vg1 err
|
||||
# change the local system_id, making the vg foreign
|
||||
echo "$SID2" > "$SIDFILE"
|
||||
clear_df_systemid
|
||||
# normal vgs doesn't see the vg
|
||||
vgs >err
|
||||
not grep $vg1 err
|
||||
@ -482,6 +527,7 @@ not vgchange --yes --systemid "" $vg1
|
||||
not vgchange --yes --systemid foo $vg1
|
||||
# change our system_id back so we can remove the vg
|
||||
echo "$SID1" > "$SIDFILE"
|
||||
clear_df_systemid
|
||||
vgremove $vg1
|
||||
|
||||
# vgcfgbackup backs up foreign vg with --foreign
|
||||
@ -489,6 +535,7 @@ SID1=sidfoofile1
|
||||
SID2=sidfoofile2
|
||||
rm -f "$LVMLOCAL"
|
||||
echo "$SID1" > "$SIDFILE"
|
||||
clear_df_systemid
|
||||
aux lvmconf "global/system_id_source = file" \
|
||||
"global/system_id_file = \"$SIDFILE\""
|
||||
# create a vg
|
||||
@ -498,6 +545,7 @@ vgs >err
|
||||
grep $vg1 err
|
||||
# change the local system_id, making the vg foreign
|
||||
echo "$SID2" > "$SIDFILE"
|
||||
clear_df_systemid
|
||||
# normal vgs doesn't see the vg
|
||||
vgs >err
|
||||
not grep $vg1 err
|
||||
@ -506,6 +554,7 @@ not vgcfgbackup $vg1
|
||||
vgcfgbackup --foreign $vg1
|
||||
# change our system_id back so we can remove the vg
|
||||
echo "$SID1" > "$SIDFILE"
|
||||
clear_df_systemid
|
||||
vgremove $vg1
|
||||
rm -f "$SIDFILE"
|
||||
|
||||
@ -562,6 +611,7 @@ rm -f $LVMLOCAL
|
||||
# vgcreate with source file, but no system_id_file config
|
||||
SID=""
|
||||
rm -f "$SIDFILE"
|
||||
clear_df_systemid
|
||||
aux lvmconf "global/system_id_source = file"
|
||||
vgcreate $vg1 "$dev1" 2>&1 | tee err
|
||||
vgs -o+systemid $vg1
|
||||
@ -572,6 +622,7 @@ vgremove $vg1
|
||||
# vgcreate with source file, but system_id_file does not exist
|
||||
SID=""
|
||||
rm -f "$SIDFILE"
|
||||
clear_df_systemid
|
||||
aux lvmconf "global/system_id_source = file" \
|
||||
"global/system_id_file = \"$SIDFILE\""
|
||||
vgcreate $vg1 "$dev1" 2>&1 | tee err
|
||||
|
@ -23,7 +23,7 @@ aux prepare_devs 3 8
|
||||
vgcreate $SHARED "$vg" "$dev1" "$dev2"
|
||||
lvcreate -l100%FREE -n $lv $vg
|
||||
dd if="$dev1" of="$dev3" bs=1M oflag=direct
|
||||
pvs --config "devices/global_filter = [ \"a|$dev2|\", \"a|$dev3|\", \"r|.*|\" ]" 2>err
|
||||
pvs --devices $dev2,$dev3 2>err
|
||||
grep "WARNING: Device mismatch detected for $vg/$lv which is accessing $dev1 instead of $dev3" err
|
||||
|
||||
dd if=/dev/zero of="$dev3" bs=1M count=8 oflag=direct
|
||||
|
@ -16,11 +16,15 @@ SKIP_WITH_LVMPOLLD=1
|
||||
. lib/inittest
|
||||
|
||||
aux extend_filter_LVMTEST
|
||||
aux lvmconf "devices/scan_lvs = 1"
|
||||
|
||||
aux prepare_pvs 3
|
||||
|
||||
vgcreate $SHARED $vg1 "$dev1" "$dev2"
|
||||
lvcreate -n $lv1 -l 100%FREE $vg1
|
||||
|
||||
aux extend_devices "$DM_DEV_DIR/$vg1/$lv1"
|
||||
|
||||
#top VG
|
||||
pvcreate "$DM_DEV_DIR/$vg1/$lv1"
|
||||
vgcreate $SHARED $vg "$DM_DEV_DIR/$vg1/$lv1" "$dev3"
|
||||
|
@ -201,6 +201,7 @@ blockdev --getpbsz "$LOOP1" | grep 512
|
||||
blockdev --getpbsz "$LOOP2" | grep 512
|
||||
|
||||
aux extend_filter "a|$dev3|" "a|$dev4|"
|
||||
aux extend_devices "$dev3" "$dev4"
|
||||
|
||||
# place main LV on dev1 with LBS 512, PBS 4096
|
||||
# and the cache on dev3 with LBS 512, PBS 512
|
||||
|
Loading…
x
Reference in New Issue
Block a user