]> sourceware.org Git - lvm2.git/log
lvm2.git
5 years agocachevol: add dm uuid suffixes to hidden lvs
David Teigland [Fri, 20 Sep 2019 14:46:03 +0000 (09:46 -0500)]
cachevol: add dm uuid suffixes to hidden lvs

to indicate they are private lvm devs

5 years agolvconvert: cachevol LV can have multiple segments
David Teigland [Wed, 18 Sep 2019 20:11:14 +0000 (15:11 -0500)]
lvconvert: cachevol LV can have multiple segments

5 years agospec: Move blkdeactivate to device-mapper
Marian Csontos [Fri, 20 Sep 2019 08:55:29 +0000 (10:55 +0200)]
spec: Move blkdeactivate to device-mapper

5 years agotests: check vdo
Zdenek Kabelac [Sat, 14 Sep 2019 07:50:18 +0000 (09:50 +0200)]
tests: check vdo

5 years agovdo: enhance activation with layer -vpool
Zdenek Kabelac [Fri, 13 Sep 2019 23:13:33 +0000 (01:13 +0200)]
vdo: enhance activation with layer -vpool

Enhance 'activation' experience for VDO pool to more closely match
what happens for thin-pools where we do use a 'fake' LV to keep pool
running even when no thinLVs are active. This gives user a choice
whether he want to keep thin-pool running (wihout possibly lenghty
activation/deactivation process)

As we do plan to support multple VDO LVs to be mapped into a single VDO,
we want to give user same experience and 'use-patter' as with thin-pools.

This patch gives option to activate VDO pool only without activating
VDO LV.

Also due to 'fake' layering LV we can protect usage of VDO pool from
command like 'mkfs' which do require exlusive access to the volume,
which is no longer possible.

Note: VDO pool contains 1024 initial sectors as 'empty' header - such
header is also exposed in layered LV (as read-only LV).
For blkid we are indentified as LV with UUID suffix - thus private DM
device of lvm2 - so we do not need to store any extra info in this
header space (aka zero is good enough).

5 years agothin: activate layer pool aas read-only LV
Zdenek Kabelac [Fri, 13 Sep 2019 23:08:14 +0000 (01:08 +0200)]
thin: activate layer pool aas read-only LV

When lvm2 is activating layered pool LV (to basically keep pool opened,
the other function used to be 'locking' be in sync with DM table)
use this LV in read-only mode - this prevents 'write' access into
data volume content of thin-pool.

Note: since EMPTY/unused thin-pool is created as 'public LV' for generic
use by any user who i.e. wish to maintain thin-pool and thins himself.
At this moment, thin-pool appears as writable LV.  As soon as the 1st.
thinLV is created, layer volume will appear is 'read-only' LV from this moment.

5 years agodevices: crypto skip
Zdenek Kabelac [Fri, 13 Sep 2019 11:22:07 +0000 (13:22 +0200)]
devices: crypto skip

Devices with UUID signature CRYPT-SUBDEV are internal crypto devices.

5 years agotests: pool conversion
Zdenek Kabelac [Tue, 17 Sep 2019 09:27:13 +0000 (11:27 +0200)]
tests: pool conversion

Test conversion of cached LV.

5 years agolvconvert: improve validation thin and cache pool conversion
Zdenek Kabelac [Fri, 6 Sep 2019 16:09:40 +0000 (18:09 +0200)]
lvconvert: improve validation thin and cache pool conversion

Limit convertible LVs to thin-pool and cache-pools.
Also fix return code on  interal error path to return ECMD_FAILED.

5 years agoRevert "tests: drop unnecessary pid from LVMTEST prefix"
David Teigland [Mon, 16 Sep 2019 18:01:50 +0000 (13:01 -0500)]
Revert "tests: drop unnecessary pid from LVMTEST prefix"

This reverts commit 51c105702f24d64f1adc25a692ef37e20878cec5.

it seems the test system still needs this for some reason

5 years agoRevert "lvmlockd: use commonly used define NOTIFYDBUS_SUPPORT"
David Teigland [Mon, 16 Sep 2019 16:42:23 +0000 (11:42 -0500)]
Revert "lvmlockd: use commonly used define NOTIFYDBUS_SUPPORT"

This reverts commit 71af650760c2b75b3c267277f47d8ba235421300.

It disabled sd_notify() which broke 'systemctl start lvmlockd'.

5 years agotests: drop unnecessary pid from LVMTEST prefix
David Teigland [Thu, 12 Sep 2019 19:52:13 +0000 (14:52 -0500)]
tests: drop unnecessary pid from LVMTEST prefix

5 years agotests: don't change real test output
David Teigland [Thu, 12 Sep 2019 19:45:13 +0000 (14:45 -0500)]
tests: don't change real test output

5 years agotests: metadata-zero-space more debugging
David Teigland [Thu, 12 Sep 2019 19:38:20 +0000 (14:38 -0500)]
tests: metadata-zero-space more debugging

5 years agotests: unnecessary braces causes test failures
David Teigland [Thu, 12 Sep 2019 17:55:00 +0000 (12:55 -0500)]
tests: unnecessary braces causes test failures

5 years agotests: skip some without wipefs
David Teigland [Thu, 12 Sep 2019 16:23:30 +0000 (11:23 -0500)]
tests: skip some without wipefs

5 years agotests: more debug in metadata-zero-space
David Teigland [Thu, 12 Sep 2019 16:19:44 +0000 (11:19 -0500)]
tests: more debug in metadata-zero-space

5 years agotests: use standard md devices
David Teigland [Wed, 11 Sep 2019 18:26:41 +0000 (13:26 -0500)]
tests: use standard md devices

5 years agotests: metadata-zero-space add info for debugging
David Teigland [Wed, 11 Sep 2019 19:20:59 +0000 (14:20 -0500)]
tests: metadata-zero-space add info for debugging

5 years agotests: skip without xxd
David Teigland [Wed, 11 Sep 2019 18:59:16 +0000 (13:59 -0500)]
tests: skip without xxd

5 years agotests: open-file-limit skip without prlimit
David Teigland [Wed, 11 Sep 2019 18:55:47 +0000 (13:55 -0500)]
tests: open-file-limit skip without prlimit

5 years agotests: allow-mixed-block-sizes skip with older losetup
David Teigland [Wed, 11 Sep 2019 18:52:51 +0000 (13:52 -0500)]
tests: allow-mixed-block-sizes skip with older losetup

5 years agotests: cache-single tests require version 1 10
David Teigland [Wed, 11 Sep 2019 18:48:03 +0000 (13:48 -0500)]
tests: cache-single tests require version 1 10

5 years agopvscan: allow use of noudevsync option
David Teigland [Tue, 10 Sep 2019 14:47:33 +0000 (09:47 -0500)]
pvscan: allow use of noudevsync option

When pvscan is used to activate a VG via an
asynchronous service (i.e. lvm2-pvscan), there
is no requirement that the command wait for
udev to create device nodes before returning.

It's possible that waiting for udev is slow
enough to cause the service running the command
to time out.  So, allow the --noudevsync option
to be given to pvscan to skip waiting for udev.

(This commit is not changing the lvm2-pvscan
service itself to use --noudevsync.)

Still unknown is whether there are any complex
LV activation cases in which lvm itself requires
access to a device node, in which case the udev
wait could be needed by lvm itself.

(When running an activation command directly
from the command line, it's generally expected
that the activated LVs are ready to use when
the command is finished, so lvm waits for
udev to finish creating the dev nodes.)

5 years agolvchange: add --resync help/manual text relative to 'R' attribute
Heinz Mauelshagen [Fri, 6 Sep 2019 12:08:29 +0000 (14:08 +0200)]
lvchange: add --resync help/manual text relative to 'R' attribute

Add information that --resync clears the 'R' attribute
on not initially synchronized mirror/RAID LVs.

Related: 1708299

5 years agotests: metadata-bad-text.sh with lvmlockd
David Teigland [Thu, 5 Sep 2019 20:27:52 +0000 (15:27 -0500)]
tests: metadata-bad-text.sh with lvmlockd

skip part of test that doesn't apply

5 years agobcache: change log level for prefetch message
David Teigland [Tue, 3 Sep 2019 17:02:09 +0000 (12:02 -0500)]
bcache: change log level for prefetch message

The "new new blocks" message was printed as an error
but it's not an error condition.

5 years agopvscan: avoid full scan for activation
David Teigland [Mon, 26 Aug 2019 22:07:18 +0000 (17:07 -0500)]
pvscan: avoid full scan for activation

When an online PV completed a VG, the standard
activation functions were used to activate the VG.
These functions use a full scan of all devs.
When many pvscans are run during startup and need
to activate many VGs, scanning all devs from all
the pvscans can take a long time.

Optimize VG activation in pvscan to scan only the
devs in the VG being activated.  This makes use of
the online file info that was used to determine
the VG was complete.

The downside of this approach is that pvscan activation
will not detect duplicate PVs and block activation,
where a normal activation command (which scans all
devices) would.

5 years agovgextend: check missing device during block size check
David Teigland [Tue, 3 Sep 2019 15:07:56 +0000 (10:07 -0500)]
vgextend: check missing device during block size check

Checking the block size when a device is missing could
trigger a segfault.

5 years agofix segfault for invalid characters in vg name
David Teigland [Thu, 29 Aug 2019 16:35:46 +0000 (11:35 -0500)]
fix segfault for invalid characters in vg name

Fixes a regression from commit ba7ff96faff0
"improve reading and repairing vg metadata"

where the error path for a vg name with invalid
charaters was missing an error flag, which led
to the caller not recognizing an error occured.
Previously, an error flag was hidden in the old
_vg_make_handle function.

5 years agohints: check for malloc failure
David Teigland [Wed, 28 Aug 2019 17:39:50 +0000 (12:39 -0500)]
hints: check for malloc failure

5 years agohints: fix copy of filter
David Teigland [Wed, 28 Aug 2019 17:33:04 +0000 (12:33 -0500)]
hints: fix copy of filter

Only the first entry of the filter array was being
included in the copy of the filter, rather than the
entire thing.  The result is that hints would not be
refreshed if the filter was changed but the first
entry was unchanged.

5 years agofix duplicate pv size check
David Teigland [Tue, 27 Aug 2019 20:40:24 +0000 (15:40 -0500)]
fix duplicate pv size check

Fixes a segfault in the recent commit e01fddc57:
"improve duplicate pv handling for md components"

While choosing between duplicates, the info struct is
not always valid; it may have been dropped already.

Remove the code that was still using the info struct for
size comparisons.  The size comparisons were a bogus check
anyway because it was just preferring the dev that had
already been chosen, it wasn't actually comparing the
dev size to the PV size.  It would be good to use a
dev/PV size comparison in the duplicate handling code, but
the PV size is not available until after vg_read, not
from the scan.

5 years agoFix converting dbus.UInt types to string
Vojtech Trefny [Mon, 26 Aug 2019 12:35:51 +0000 (14:35 +0200)]
Fix converting dbus.UInt types to string

With Python 3.8 converting these directly to string using str()
no longer works, we need to convert these to integer first.

On Python 3.8:

>>> str(dbus.Int64(1))
'dbus.Int64(1)'

On Python 3.7 (and older):
>>> str(dbus.UInt64(1))
'1'

This is probably related to removing __str__ function from method
from int (dbus.UInt is subclass of int) which happened in 3.8, see
https://docs.python.org/3.8/whatsnew/3.8.html

Signed-off-by: Vojtech Trefny <vtrefny@redhat.com>
5 years agoactivation: use cmd pending mem for pending_delete
Zdenek Kabelac [Tue, 27 Aug 2019 10:18:47 +0000 (12:18 +0200)]
activation: use cmd pending mem for pending_delete

Since we need to preserve allocated strings across 2 separate
activation calls of '_tree_action()' we need to use other mem
pool them dm->mem - but since cmd->mem is released between
individual lvm2 locking calls, we rather introduce a new separate
mem pool just for pending deletes with easy to see life-span.
(not using 'libmem' as it would basicaly keep allocations over
the whole lifetime of clvmd)

This patch is fixing previous commmit where the memory was
improperly used after pool release.

5 years agoconfigure: continue build if prlimit is missing
Zdenek Kabelac [Mon, 26 Aug 2019 15:34:45 +0000 (17:34 +0200)]
configure: continue build if prlimit is missing

5 years agoconfigure: check for prlimit
Zdenek Kabelac [Mon, 26 Aug 2019 15:19:16 +0000 (17:19 +0200)]
configure: check for prlimit

Update configure and make code compilable if prlimit() is not present.
Since the code is suspicious do not cope yet with it's replacement
with  set/getrlimit().

5 years agodmsetup: missed trailing newline
Zdenek Kabelac [Mon, 26 Aug 2019 13:37:57 +0000 (15:37 +0200)]
dmsetup: missed trailing newline

5 years agolv_manip: add synchronizations
Zdenek Kabelac [Mon, 26 Aug 2019 11:28:17 +0000 (13:28 +0200)]
lv_manip: add synchronizations

New udev in rawhide seems to be 'dropping' udev rule operations for devices
that are no longer existing - while this is 'probably' a bug - it's
revealing moments in lvm2 that likely should not run in a single
transaction and we should wait for a cookie before submitting more work.

TODO: it seem more 'error' paths should always include synchronization
before starting deactivating 'just activated' devices.
We should probably figure out some 'automatic' solution for this instead
of placing sync_local_dev_name() all over the place...

5 years agocache: improve vgremove loop
Zdenek Kabelac [Mon, 26 Aug 2019 11:28:00 +0000 (13:28 +0200)]
cache: improve vgremove loop

Support internal removal of 'cache origin' volume - which we
do not normally expose to a user - however internal processing
loops may hit this condition (depending on order of list LVs).

So when this operation is internally requested - we automatically
try to remove it's 'holding' LV (cache LV) - which will also
remove the origin.

5 years agosnapshot: always activate
Zdenek Kabelac [Mon, 26 Aug 2019 13:13:55 +0000 (15:13 +0200)]
snapshot: always activate

Drop the 'cluster-only' optimization so we do resume ALL device
before we try to wait on cookie before 'removal' operation.

It's more correct order of operation - alhtough possibly slightly
less efficient - but until we have correct list of operations
'in-progress' we can't do anything better.

5 years agoactivation: extend handling of pending_delete
Zdenek Kabelac [Fri, 23 Aug 2019 11:08:34 +0000 (13:08 +0200)]
activation: extend handling of pending_delete

With previous patch 30a98e4d6710a543692d40d11428ae4baea11b7b we
started to put devices one pending_delete list instead
of directly scheduling their removal.

However we have operations like 'snapshot merge' where we are
resuming device tree in 2 subsequent activation calls - so
1st such call will still have suspened devices and no chance
to push 'remove' ioctl.

Since we curently cannot easily solve this by doing just single
activation call (which would be preferred solution) - we introduce
a preservation of pending_delete via command structure and
then restore it on next activation call.

This way we keep to remove devices later - although it might be
not the best moment - this may need futher tunning.

Also we don't keep the list of operation in 1 trasaction
(unless we do verify udev symlinks) - this could probably
also make it more correct in terms of which 'remove' can
be combined we already running 'resume'.

5 years agodmsetup: debug print
Zdenek Kabelac [Fri, 16 Aug 2019 21:49:38 +0000 (23:49 +0200)]
dmsetup: debug print

Udev debugging is a bit tricky, so to more easily pair cookie ID,
which is the lowest 16 bit - print cookie as hexa number.
This simplify pairing of processed cookies while the 'higher bit flags'
are changed for the same cookie.

5 years agoactivation: add synchronization point
Zdenek Kabelac [Fri, 16 Aug 2019 21:49:59 +0000 (23:49 +0200)]
activation: add synchronization point

Resuming of 'error' table entry followed with it's dirrect removal
is now troublesame with latest udev as it may skip processing of
udev rules for already 'dropped' device nodes.

As we cannot 'synchronize' with udev while we know we have devices
in suspended state - rework 'cleanup' so it collects nodes
for removal into pending_delete list and process the list with
synchronization once we are without any suspended nodes.

5 years agopvmove: add missing synchronization
Zdenek Kabelac [Tue, 20 Aug 2019 10:23:08 +0000 (12:23 +0200)]
pvmove: add missing synchronization

Between 'resume' and 'remove' we need to wait for udev to synchronize,
otherwise udev may 'skip' resume event processing if the udev node
is already gone.

5 years agopvmove: correcting read_ahead setting
Zdenek Kabelac [Tue, 20 Aug 2019 10:30:25 +0000 (12:30 +0200)]
pvmove: correcting read_ahead setting

When pvmove is finished, we do a tricky operation since we try to
resume multiple different device that were all joined into 1 big tree.

Currently we use the infromation from existing live DM table,
where we can get list of all holders of pvmove device.
We look for these nodes (by uuid) in new metadata, and we do now a full
regular device add into dm tree structure.  All devices should be
already PRELOAD with correct table before entering suspend state,
however for correctly working readahead we need to put correct info
also into RESUME tree.  Since table are preloaded, the same table
is skip and resume, but correct read ahead is now set.

5 years agoman lvmthin: remove nonexistent topic
David Teigland [Mon, 19 Aug 2019 19:06:32 +0000 (14:06 -0500)]
man lvmthin: remove nonexistent topic

5 years agoconfigure: Fix setting of CLDFLAGS default
Marian Csontos [Mon, 19 Aug 2019 12:54:43 +0000 (14:54 +0200)]
configure: Fix setting of CLDFLAGS default

5 years agoconfigure: Fix the default in help string
Marian Csontos [Wed, 31 Jul 2019 14:24:18 +0000 (16:24 +0200)]
configure: Fix the default in help string

5 years agopvscan: disable sleeping and retrying for udev
David Teigland [Fri, 16 Aug 2019 19:35:17 +0000 (14:35 -0500)]
pvscan: disable sleeping and retrying for udev

When systemd is running pvscans, udev may not be
entirely initialized, so the pvscan should not
sleep and retry waiting for udev info.

5 years agobcache: increase max allowed bcache size
David Teigland [Fri, 16 Aug 2019 18:35:09 +0000 (13:35 -0500)]
bcache: increase max allowed bcache size

from 128MB to 512MB (the default remains 8MB)

5 years agotests: duplicate-pvs-md
David Teigland [Fri, 16 Aug 2019 18:22:58 +0000 (13:22 -0500)]
tests: duplicate-pvs-md

Testing duplicate PV handling for various md device setups/states.

5 years agopvscan cache: use lvmcache_label_scan
David Teigland [Thu, 1 Aug 2019 20:07:59 +0000 (15:07 -0500)]
pvscan cache: use lvmcache_label_scan

instead of the lower level label_scan.  The lvmcache wrapper
around label_scan checks for and eliminates more duplicate devs
and md components.

5 years agoimprove duplicate pv handling for md components
David Teigland [Thu, 1 Aug 2019 20:04:10 +0000 (15:04 -0500)]
improve duplicate pv handling for md components

Eliminate md components at the start so they don't
interfere with actual duplicates, and don't need
to be removed later.  This also allows for choosing
no copy of a PVID if they all happen to be md
components.

5 years agolvmcache: use devl list helper
David Teigland [Thu, 1 Aug 2019 18:58:14 +0000 (13:58 -0500)]
lvmcache: use devl list helper

5 years agolvmcache: replace found_duplicates variable
David Teigland [Thu, 1 Aug 2019 18:53:20 +0000 (13:53 -0500)]
lvmcache: replace found_duplicates variable

With just checking if the duplicates lists are empty.

5 years agolvmcache: renaming functions and variables
David Teigland [Thu, 1 Aug 2019 18:50:04 +0000 (13:50 -0500)]
lvmcache: renaming functions and variables

related to duplicates, no functional changes.

5 years agomd component detection addition in vg_read
David Teigland [Thu, 1 Aug 2019 19:43:19 +0000 (14:43 -0500)]
md component detection addition in vg_read

Usually md components are eliminated in label scan and/or
duplicate resolution, but they could sometimes get into
the vg_read stage, where set_pv_devices compares the
device to the PV.

If set_pv_devices runs an md component check and finds
one, vg_read should eliminate the components.

In set_pv_devices, run an md component check always
if the PV is smaller than the device (this is not
very common.)  If the PV is larger than the device,
(more common), do the component check when the config
setting is "auto" (the default).

5 years agodmeventd: avoid bail out preventing repair in raid plugin
Heinz Mauelshagen [Fri, 16 Aug 2019 14:25:08 +0000 (16:25 +0200)]
dmeventd: avoid bail out preventing repair in raid plugin

Problem:
even though dead raid component devices are detected, the
raid plugin is bailing out thus preventing a repair attempt.

Rational:
in case of component device errors, the MD resynchronization
thread runs in parallel with the thrown event being processed
by the raid plugin.  The plugin retrieves the raid device status
but that still reflects insync regions as 0 (when it should
already be total regions) because the MD thread didn't update it yet.

Solution:
Remove the insync regions check and let lvconvert carry out its
pre-repair checks and optionally carry out a repair attempt.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1560739
Related:  https://bugzilla.redhat.com/show_bug.cgi?id=1468590
Related:  https://bugzilla.redhat.com/show_bug.cgi?id=1654860
Related:  https://bugzilla.redhat.com/show_bug.cgi?id=1729303
Related:  https://bugzilla.redhat.com/show_bug.cgi?id=1741016

5 years agoudev: remove unsupported OPTIONS+="event_timeout" rule
Peter Rajnoha [Tue, 13 Aug 2019 13:18:30 +0000 (15:18 +0200)]
udev: remove unsupported OPTIONS+="event_timeout" rule

The OPTIONS+="event_timeout" is Unsupported since systemd/udev version 216,
that is ~5 years ago.

Since systemd/udev version 243, there's a new message printed if unsupported
OPTIONS value is used:

  Invalid value for OPTIONS key, ignoring: 'event_timeout=180'

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1740666

5 years agotests: simplify some var settings
Zdenek Kabelac [Wed, 19 Jun 2019 22:03:18 +0000 (00:03 +0200)]
tests: simplify some var settings

scan_lvs now automatically comes with extend_filter_LVMTEST

5 years agotests: for cluster testing we always need exclusive mirrors
Zdenek Kabelac [Thu, 20 Jun 2019 09:07:43 +0000 (11:07 +0200)]
tests: for cluster testing we always need exclusive mirrors

Cluster test would fail without exlusively activated mirror.
FIXME: test is still broken, since LV2 is not active after split.

5 years agotests: accept also value 512
Zdenek Kabelac [Thu, 20 Jun 2019 12:20:35 +0000 (14:20 +0200)]
tests: accept also value 512

Older kernels provide fixed value 512 instead of 0.

5 years agotests: add settle wait before issue remove
Zdenek Kabelac [Thu, 4 Jul 2019 14:58:27 +0000 (16:58 +0200)]
tests: add settle wait before issue remove

Some older BB with older cryptsetup tool do not 'retry' on remove
and when  remove is issued right after 'fsck'  - it might be
rejected with:

Device @PREFIX@-tcrypt2 is busy.

Try to use udevadm settle.

5 years agotests: fix ra checking
Zdenek Kabelac [Tue, 18 Jun 2019 11:20:27 +0000 (13:20 +0200)]
tests: fix ra checking

Since with some installed package like 'tuned' the value of 'RA' on
PV origin device can be different, adapting tests to count with this.

5 years agotests: replaces grep -q usage
Zdenek Kabelac [Mon, 17 Jun 2019 20:47:35 +0000 (22:47 +0200)]
tests: replaces grep -q usage

Since we use 'set -euE -o pipefail' for shell execution,
any failure of any command in the 'piped' shell can result
in failure of whole executed chain - resulting in typically
unsually test skip, that was left unnoticed.

Since checked command have usually short output, the simplest
fix seems to be to let grep parse whole output instead
of quiting after first match.

5 years agomake: generate
Zdenek Kabelac [Fri, 9 Aug 2019 10:56:28 +0000 (12:56 +0200)]
make: generate

Run make generate.

5 years agocov: check for socket_path being set
Zdenek Kabelac [Tue, 25 Jun 2019 13:11:05 +0000 (15:11 +0200)]
cov: check for socket_path being set

As we check for existince on entering path
let's ensure it's there also on exit path.

5 years agocov: ensure cname exists before derefering it
Zdenek Kabelac [Tue, 25 Jun 2019 13:29:26 +0000 (15:29 +0200)]
cov: ensure cname exists before derefering it

Just make it clear to analyzers  cname can't be NULL.
TODO: maybe exclude NULL at front of the function...

5 years agolibdm: implement search for device names for older kernels
Zdenek Kabelac [Fri, 5 Jul 2019 23:21:39 +0000 (01:21 +0200)]
libdm: implement search for device names for older kernels

Kernels <2.6.27 don't have /sys/dev dir - add code for looking
out device name via longre seach in /sys/block

This makes commands like 'dmsetup dep -o blkdevname' working.

5 years agoexported_symbols: comment old symbols
Zdenek Kabelac [Tue, 30 Jul 2019 13:31:51 +0000 (15:31 +0200)]
exported_symbols: comment old symbols

Fix versioning for updated symbols dm_stats_create_region
and dm_stats_create_region.

Only the latest symbol should have global entry.

Since I'm not sure what is currenlty the best option for
old symbols - we added support for easy commenting of them
(so we do not lose information when the symbol appeared
for the first time.)

Note: some old already deleted symbols should have been
restored as comments.

5 years agomake: support comments in exported symbols
Zdenek Kabelac [Tue, 30 Jul 2019 13:31:01 +0000 (15:31 +0200)]
make: support comments in exported symbols

Now the lines starting with '#' in exported symbols files are treated as
comments (ignored).

5 years agotests: open-file-limit
David Teigland [Thu, 8 Aug 2019 20:21:26 +0000 (15:21 -0500)]
tests: open-file-limit

5 years agoincrease soft open file limit
David Teigland [Thu, 8 Aug 2019 18:11:05 +0000 (13:11 -0500)]
increase soft open file limit

When there are more devices than the current soft
open file limit (default 1024), raise the soft limit
to the hard/max limit (default 4096).

Do this prior to scanning in case enough of the
devices are PVs that need to be kept open.

5 years agodevices: put ifdef around BLKPBSZGET
David Teigland [Thu, 8 Aug 2019 20:43:09 +0000 (15:43 -0500)]
devices: put ifdef around BLKPBSZGET

BLKPBSZGET is not defined before kernel version 2.6.32
(e.g. rhel5)

5 years agodevices: clean up block size functions
David Teigland [Wed, 7 Aug 2019 16:38:06 +0000 (11:38 -0500)]
devices: clean up block size functions

Replace calls to the old dev_get_block_size function
with calls to the new dev_get_direct_block_size function,
and remove the old function.

5 years agoRevert "config: cache_policy should be cfg_runtime"
David Teigland [Wed, 7 Aug 2019 16:35:45 +0000 (11:35 -0500)]
Revert "config: cache_policy should be cfg_runtime"

This reverts commit 29eee32ac2fb3879eea04a8499219106411b4a37.

Some other changes are needed to make this runtime.

5 years agoconfig: cache_policy should be cfg_runtime
David Teigland [Mon, 5 Aug 2019 18:44:37 +0000 (13:44 -0500)]
config: cache_policy should be cfg_runtime

5 years agoconfig: set deprecated version for segment_libraries
David Teigland [Mon, 5 Aug 2019 18:31:59 +0000 (13:31 -0500)]
config: set deprecated version for segment_libraries

Stopped being used some time ago.

5 years agoWHATS_NEW: vgcreate/vgextend logical block size
David Teigland [Thu, 1 Aug 2019 15:15:27 +0000 (10:15 -0500)]
WHATS_NEW: vgcreate/vgextend logical block size

5 years agotests: allow-mixed-block-sizes
David Teigland [Thu, 1 Aug 2019 15:13:41 +0000 (10:13 -0500)]
tests: allow-mixed-block-sizes

5 years agovgcreate/vgextend: restrict PVs with mixed block sizes
David Teigland [Thu, 1 Aug 2019 15:06:47 +0000 (10:06 -0500)]
vgcreate/vgextend: restrict PVs with mixed block sizes

Avoid having PVs with different logical block sizes in the same VG.
This prevents LVs from having mixed block sizes, which can produce
file system errors.

The new config setting devices/allow_mixed_block_sizes (default 0)
can be changed to 1 to return to the unrestricted mode.

5 years agoWHATS_NEW: fix large physical block size
David Teigland [Tue, 30 Jul 2019 21:14:28 +0000 (16:14 -0500)]
WHATS_NEW: fix large physical block size

5 years agotests: large-physical-sector-size
David Teigland [Tue, 30 Jul 2019 20:59:11 +0000 (15:59 -0500)]
tests: large-physical-sector-size

5 years agoFix rounding writes up to sector size
David Teigland [Fri, 26 Jul 2019 19:21:08 +0000 (14:21 -0500)]
Fix rounding writes up to sector size

Do this at two levels, although one would be enough to
fix the problem seen recently:

- Ignore any reported sector size other than 512 of 4096.
  If either sector size (physical or logical) is reported
  as 512, then use 512.  If neither are reported as 512,
  and one or the other is reported as 4096, then use 4096.
  If neither is reported as either 512 or 4096, then use 512.

- When rounding up a limited write in bcache to be a multiple
  of the sector size, check that the resulting write size is
  not larger than the bcache block itself.  (This shouldn't
  happen if the sector size is 512 or 4096.)

5 years agotests: Fix unbound variable
Marian Csontos [Tue, 23 Jul 2019 13:36:13 +0000 (15:36 +0200)]
tests: Fix unbound variable

Test `aux kernel_at_least 5 1` fails even for newer kernel
with `$3: unbound variable` when using `set -u`.

5 years agotests: lvm-on-md use variable run dir
David Teigland [Fri, 12 Jul 2019 21:51:49 +0000 (16:51 -0500)]
tests: lvm-on-md use variable run dir

for hints file

5 years agotests: metadata-zero-space
David Teigland [Fri, 12 Jul 2019 19:08:22 +0000 (14:08 -0500)]
tests: metadata-zero-space

Test zero padding between copies of metadata.

5 years agometadata: extend writes to zero space
David Teigland [Mon, 1 Jul 2019 20:00:34 +0000 (15:00 -0500)]
metadata: extend writes to zero space

Previously, consecutive copies of metadata would have garbage
data in the space between them.  After metadata wrapping,
the garbage would be portions of old metadata.  This made
analysis of the metadata area more difficult.

This would happen because the start of new copy of metadata
is advanced from the end of the last copy to start at the
next 512 byte boundary.

Zero the space between consecutive copies of metadata by
extending each metadata write to end at the next 512 byte
boundary.  The size of the metadata itself is not extended,
only the write.  The buffer being written contains the
metadata text followed by the necessary number of zeros.

5 years agopvck: fix looping dump metadata_all
David Teigland [Fri, 12 Jul 2019 17:21:27 +0000 (12:21 -0500)]
pvck: fix looping dump metadata_all

dump metadata_all wouldn't quit if the metadata wrapped.

5 years agotests: pvscan-autoactivate test unmatching dev and PV size
David Teigland [Thu, 11 Jul 2019 16:38:12 +0000 (11:38 -0500)]
tests: pvscan-autoactivate test unmatching dev and PV size

5 years agotests: extend lvm-on-md
David Teigland [Wed, 10 Jul 2019 19:13:01 +0000 (14:13 -0500)]
tests: extend lvm-on-md

5 years agoenable full md component detection at the right time
David Teigland [Tue, 9 Jul 2019 19:48:31 +0000 (14:48 -0500)]
enable full md component detection at the right time

An active md device with an end superblock causes lvm to
enable full md component detection.  This was being done
within the filter loop instead of before, so the full
filtering of some devs could be missed.

Also incorporate the recently added config setting that
controls the md component detection.

5 years agopvscan: fix PV online when device has a different size
David Teigland [Tue, 9 Jul 2019 18:45:09 +0000 (13:45 -0500)]
pvscan: fix PV online when device has a different size

Fix commit 7836e7aa1c17216ed368fda89cfc805a07efda81
"pvscan: ignore device with incorrect size"

which caused pvscan to not consider a PV online (for purposes
of event based activation) if the PV and device sizes differed.

This helped to avoid mistaking MD components for PVs, and is
replaced by triggering an md component check when PV and device
sizes differ (which happens in set_pv_device).

5 years agomd component detection for differing PV and device sizes
David Teigland [Tue, 9 Jul 2019 18:32:41 +0000 (13:32 -0500)]
md component detection for differing PV and device sizes

This check was mistakenly removed when shifting code in commit
"separate code for setting devices from metadata parsing".

Put it back with some new conditions.

5 years agoscan: remove unused arg to setup_bcache
David Teigland [Tue, 9 Jul 2019 18:16:26 +0000 (13:16 -0500)]
scan: remove unused arg to setup_bcache

5 years agolvconvert: allow --stripes/--stripesize in 'mirror' conversions
Heinz Mauelshagen [Mon, 8 Jul 2019 17:07:18 +0000 (19:07 +0200)]
lvconvert: allow --stripes/--stripesize in 'mirror' conversions

This allows the creation of a striped mirror leg(s) during upconvert
by adding lvconvert command line options --stripes/--stripesize
for 'mirror' to tools/command-lines.in.

In case multiple mirror legs are being added, all will have the
same requested striped layout.

Resolves: rhbz1720705

5 years agoudev: do not overwrite ID_MODEL in 69-dm-lvm-metad.rules
Peter Rajnoha [Thu, 4 Jul 2019 10:57:55 +0000 (12:57 +0200)]
udev: do not overwrite ID_MODEL in 69-dm-lvm-metad.rules

We've been assigning this in 69-dm-lvm-metad.rules:

  ENV{ID_MODEL}="LVM PV $env{ID_FS_UUID_ENC} on /dev/$name"

This was for the description to appear for each systemd device
unit representing this device, for example:

  $systemctl -a | grep "LVM PV"
  dev-block-252:2.device                                                                                         loaded    active   plugged   LVM PV JhxC7B-YTgk-3jIU-5GVo-c4gV-W8t3-UUz06p on /dev/vda2 2
  dev-disk-by\x2did-lvm\x2dpv\x2duuid\x2dJhxC7B\x2dYTgk\x2d3jIU\x2d5GVo\x2dc4gV\x2dW8t3\x2dUUz06p.device         loaded    active   plugged   LVM PV JhxC7B-YTgk-3jIU-5GVo-c4gV-W8t3-UUz06p on /dev/vda2 2
  ...

However, there could be an actual ID_MODEL that people are interested in
more than the fact that this is an LVM PV and so we shouldn't overwrite
the value.

Also, we already have a symlink /dev/disk/by-id/lvm-pv-uuid-<PV_UUID>
created which is then reflected as device unit (all device's symlinks
have systemd device unit representation) so we can still reach this
information in systemd unit listings even without setting the ID_MODEL.

Reported here: https://github.com/lvmteam/lvm2/issues/21

5 years agocache: warn and prompt for writeback with cachevol
David Teigland [Tue, 2 Jul 2019 15:59:40 +0000 (10:59 -0500)]
cache: warn and prompt for writeback with cachevol

The cache repair utility does not yet work with a cachevol
(where metadata and data exist on the same LV.)  So, warn
and prompt if writeback is specified with a cachevol.

5 years agotest: Remove now useless clvmd test
Marian Csontos [Thu, 27 Jun 2019 09:14:00 +0000 (11:14 +0200)]
test: Remove now useless clvmd test

This page took 0.074185 seconds and 5 git commands to generate.