]> sourceware.org Git - lvm2.git/log
lvm2.git
5 years agopre-release v2_03_04
Marian Csontos [Mon, 10 Jun 2019 14:59:49 +0000 (16:59 +0200)]
pre-release

5 years agobuild: make generate
Marian Csontos [Fri, 7 Jun 2019 15:59:43 +0000 (17:59 +0200)]
build: make generate

5 years agobuild: autoreconf
Marian Csontos [Fri, 7 Jun 2019 15:56:56 +0000 (17:56 +0200)]
build: autoreconf

5 years agoMerge remote-tracking branch 'origin/master'
Marian Csontos [Fri, 7 Jun 2019 15:29:45 +0000 (17:29 +0200)]
Merge remote-tracking branch 'origin/master'

* origin/master:
  lvmcache: remove unused_duplicate_devs list from cmd

5 years agopost-release
Marian Csontos [Fri, 7 Jun 2019 14:33:29 +0000 (16:33 +0200)]
post-release

5 years agopre-release v2_03_03
Marian Csontos [Fri, 7 Jun 2019 14:32:02 +0000 (16:32 +0200)]
pre-release

5 years agolvmcache: remove unused_duplicate_devs list from cmd
David Teigland [Fri, 7 Jun 2019 15:12:52 +0000 (10:12 -0500)]
lvmcache: remove unused_duplicate_devs list from cmd

Save the previous duplicate PVs in a global list instead
of a list on the cmd struct.  dmeventd reuses the cmd struct
for multiple commands, and the list entries between commands
were being freed (apparently), causing a segfault in dmeventd
when it tried to use items in cmd->unused_duplicate_devs
that had been saved there by the previous command.

5 years agotests: pvscan-autoactivate check for machine-id
David Teigland [Thu, 6 Jun 2019 20:32:42 +0000 (15:32 -0500)]
tests: pvscan-autoactivate check for machine-id

5 years agopvck: use new dump routines for old output
David Teigland [Wed, 5 Jun 2019 21:23:23 +0000 (16:23 -0500)]
pvck: use new dump routines for old output

Use the recently added dump routines to produce the
old/traditional pvck output, and remove the code that
had been used for that.

The validation/checking done by the new routines means
that new lines prefixed with CHECK are printed for
incorrect values.

5 years agotests: pvck-dump
David Teigland [Wed, 5 Jun 2019 18:58:26 +0000 (13:58 -0500)]
tests: pvck-dump

5 years agopvck: dump metadata_all
David Teigland [Wed, 5 Jun 2019 16:10:37 +0000 (11:10 -0500)]
pvck: dump metadata_all

This searches the entire metadata area for any
copy of the metadata and dumps it to file.

5 years agotests: check no_discard_passdown
Zdenek Kabelac [Wed, 5 Jun 2019 13:46:43 +0000 (15:46 +0200)]
tests: check no_discard_passdown

Check reporting works

5 years agotests: automatically set scan_lvs when using extend_filter
Zdenek Kabelac [Wed, 5 Jun 2019 13:45:30 +0000 (15:45 +0200)]
tests: automatically set scan_lvs when using extend_filter

When using 'aux extend_filter' we always want to use LV as PV.

5 years agocache: support no_discard_passdown
Zdenek Kabelac [Wed, 5 Jun 2019 12:31:34 +0000 (14:31 +0200)]
cache: support no_discard_passdown

Recent kernel version from kernel commit:
de7180ff908b2bc0342e832dbdaa9a5f1ecaa33a
started to report in cache status line new flag:
no_discard_passdown

Whenever lvm spots unknown status it reports:
Unknown feature in status:

So add reconginzing this feature flag and also report this with

'lvs -o+kernel_discards'

When no_discard_passdown is found in status 'nopassdown' gets reported
for this field  (roughly matching what we report for thin-pools).

5 years agopvck: dump headers and metadata
David Teigland [Fri, 31 May 2019 19:10:44 +0000 (14:10 -0500)]
pvck: dump headers and metadata

Add 'pvck --dump headers' to print all the
lvm ondisk structs.  Also checks the values
and prints any problems.

The previous dump metadata is also converted to
use these same routines, which do not depend on lvm
fully scanning/reading/processing the headers and
metadata on disk.  This makes it useful to get data in
cases where there is corruption that would otherwise
prevent the normal functions from working.

5 years agotest: Increase latency in pvmove-resume-multiseg
Marian Csontos [Mon, 3 Jun 2019 14:57:49 +0000 (16:57 +0200)]
test: Increase latency in pvmove-resume-multiseg

The test was failing consistently on some VMs (F25), and inconsistently
on Rawhide.

With increased latency these failures are no longer reproducible.

Reproducer:

    make check_lvmpolld T=pvmove-resume-multiseg.sh

5 years agotest: Restore testing of D-Bus API
Marian Csontos [Thu, 30 May 2019 16:02:55 +0000 (18:02 +0200)]
test: Restore testing of D-Bus API

5 years agotests: add debug to pvscan-cache deactivation
David Teigland [Thu, 23 May 2019 20:32:46 +0000 (15:32 -0500)]
tests: add debug to pvscan-cache deactivation

5 years agotests: pvscan-cache more attempts to fix
David Teigland [Thu, 23 May 2019 19:55:57 +0000 (14:55 -0500)]
tests: pvscan-cache more attempts to fix

5 years agoseparate code for setting devices from metadata parsing
David Teigland [Tue, 5 Feb 2019 17:32:54 +0000 (11:32 -0600)]
separate code for setting devices from metadata parsing

Pull the code that sets devs for PVs out of the metadata
parsing code and call it separately.

5 years agoWHATS_NEW: pvck --dump
David Teigland [Thu, 23 May 2019 16:50:16 +0000 (11:50 -0500)]
WHATS_NEW: pvck --dump

5 years agopvck: new dump option to extract metadata
David Teigland [Wed, 22 May 2019 19:25:08 +0000 (14:25 -0500)]
pvck: new dump option to extract metadata

The new command 'pvck --dump metadata PV' will extract
the current version of VG metadata from a PV for testing
and debugging.  --dump metadata_area extracts the entire
text metadata area.

5 years agotests: change mkfs usage in lvconvert raid tests
David Teigland [Thu, 23 May 2019 16:45:26 +0000 (11:45 -0500)]
tests: change mkfs usage in lvconvert raid tests

The "echo y | mkfs" was failing at times from echo y.
Remove echo y and replace with wipefs -a prior to mkfs.

5 years agotests: fix error detection in lvconvert-raid-takeover.sh
David Teigland [Thu, 23 May 2019 15:29:52 +0000 (10:29 -0500)]
tests: fix error detection in lvconvert-raid-takeover.sh

5 years agotests: pvscan-cache try to fix teardown problems
David Teigland [Wed, 22 May 2019 16:55:48 +0000 (11:55 -0500)]
tests: pvscan-cache try to fix teardown problems

teardown after the test was failing, probably because
of uncoordinated udev actions running on the test
system.  Try to avoid this by doing some work before
teardown.

5 years agotests: fsadm-crypt.sh update mkfs parameter
David Teigland [Tue, 21 May 2019 19:46:01 +0000 (14:46 -0500)]
tests: fsadm-crypt.sh update mkfs parameter

mkfs.xfs was rejecting previously working value

5 years agotests: pvscan-autoactivate.sh switch system_id_source
David Teigland [Tue, 21 May 2019 19:37:55 +0000 (14:37 -0500)]
tests: pvscan-autoactivate.sh switch system_id_source

to machineid instead of uname which would break if
the test system had no proper uname set.

5 years agotests: hints check if strace exists
David Teigland [Tue, 21 May 2019 19:23:01 +0000 (14:23 -0500)]
tests: hints check if strace exists

avoid test failure if test system does not
have strace

5 years agoscan: expand and update label scan comments
David Teigland [Tue, 21 May 2019 17:02:40 +0000 (12:02 -0500)]
scan: expand and update label scan comments

5 years agohints: exclude md components
David Teigland [Tue, 21 May 2019 16:58:01 +0000 (11:58 -0500)]
hints: exclude md components

In some cases md components could be included in
the hints, so add a check to hint creation to make
sure they are excluded.

5 years agomove the setting of use_full_md_check flag
David Teigland [Tue, 21 May 2019 16:51:58 +0000 (11:51 -0500)]
move the setting of use_full_md_check flag

from each command to one location in command init.
No functional change.

5 years agodevs: rename dev_is_md dev_is_md_component
David Teigland [Tue, 21 May 2019 16:44:39 +0000 (11:44 -0500)]
devs: rename dev_is_md dev_is_md_component

The naming was confusing and misleading since
it it's testing if a device is an md component,
not an md device.

5 years agotests: check accepting out-of-range creation_time
Zdenek Kabelac [Fri, 10 May 2019 13:00:21 +0000 (15:00 +0200)]
tests: check accepting out-of-range creation_time

5 years agometadata: allow reading metadata with invalid creation_time
Zdenek Kabelac [Fri, 10 May 2019 12:40:11 +0000 (14:40 +0200)]
metadata: allow reading metadata with invalid creation_time

lvm2 till version 2.02.169 (commit 78d004efa8a1809cea68283e6204edfa9d7c1091)
was printing invalid creation_time argument into metadata on 32bit arch.

However with commit ba9820b14223b731125c83dbc9709aa44fdcdbf1 we started
to properly validate all input numbers and thus we refused to accept
invalid metadata with 'garbage' string - but this results in the
situation where metadata produced on older lvm2 on 32 bit architecture
will become unreadable after upgrade.

To fix this case - extend libdm parser in a way, that whenever we
find error integer value, we also check if the parsed value is not for
creation_time node and in this case we let the metadata pass through
with made-up date 2018-05-24 (release date of 2.02.169).

5 years agotests: split args
Zdenek Kabelac [Mon, 6 May 2019 11:02:45 +0000 (13:02 +0200)]
tests: split args

Here we want args to be splited into individual strings.

5 years agotests: drop call of wipefs
Zdenek Kabelac [Sat, 4 May 2019 17:11:00 +0000 (19:11 +0200)]
tests: drop call of wipefs

wipefs might not be present on test system.
Devices are also already zeroed by cleanup_md_dev
(which 'fakes' missing wipefs eventually)

5 years agopvscan: fix segfault in recent commit
David Teigland [Fri, 3 May 2019 21:51:34 +0000 (16:51 -0500)]
pvscan: fix segfault in recent commit

commit aa75b31db5478
  "pvscan: handle case of scanning PV without metadata last"

failed to recognize that an arg may be null in the case of
'pvscan --cache' (without -aay) which does not keep track
of complete VGs because it does not need to activate them.

5 years agopvs: remove unnecessary label scan
David Teigland [Fri, 3 May 2019 21:12:43 +0000 (16:12 -0500)]
pvs: remove unnecessary label scan

The scanning rework missed removing this instance of label scan.
It's no longer needed because of the way that label scan is always
run once from the start of the command.  This unnecessary scan
would be triggered by running 'pvs @tag'.

5 years agotests: expand lvm-on-md
David Teigland [Fri, 3 May 2019 19:05:40 +0000 (14:05 -0500)]
tests: expand lvm-on-md

test both md raid0 and raid1

5 years agopvscan: don't record PV online after error reading metadata
David Teigland [Thu, 2 May 2019 21:54:28 +0000 (16:54 -0500)]
pvscan: don't record PV online after error reading metadata

5 years agoadd md component check in vg_read based on size
David Teigland [Thu, 2 May 2019 21:41:42 +0000 (16:41 -0500)]
add md component check in vg_read based on size

If an md component is not excluded by other means and
vg_read is used to read metadata from it, then this new
check compares the device size with the PV size, and runs
a full md check on the device if the sizes don't match.

5 years agotests: use luks1 for test
Zdenek Kabelac [Fri, 3 May 2019 11:11:09 +0000 (13:11 +0200)]
tests: use luks1 for test

Since we do not need anywhere luks2 - pick older format
which does not require password for resize to keep
the rest of test unmodified.

5 years agotests: update resize value
Zdenek Kabelac [Wed, 17 Apr 2019 14:14:59 +0000 (16:14 +0200)]
tests: update resize value

Since we now properly extend also _pmspare - there was not enough free
space to add 8extents to both volumes.

5 years agocleanup: use unsigned type
Zdenek Kabelac [Fri, 3 May 2019 10:36:16 +0000 (12:36 +0200)]
cleanup: use unsigned type

5 years agobuild: fix compilation without lvmlockd
Zdenek Kabelac [Fri, 3 May 2019 10:35:22 +0000 (12:35 +0200)]
build: fix compilation without lvmlockd

5 years agolocking: validate locking mode
Zdenek Kabelac [Fri, 3 May 2019 11:01:02 +0000 (13:01 +0200)]
locking: validate locking mode

Ensure 'ret' is always defined and validate 'mode'.

5 years agoclean: avoid cleaning iterator on error path
Zdenek Kabelac [Fri, 3 May 2019 10:01:20 +0000 (12:01 +0200)]
clean: avoid cleaning iterator on error path

Return error dirrectly instead of using 'out' code path.

5 years agoscan: remove comments about lvmetad
David Teigland [Thu, 2 May 2019 18:32:30 +0000 (13:32 -0500)]
scan: remove comments about lvmetad

5 years agolvmlockd: fix snprintf warnings
David Teigland [Thu, 2 May 2019 17:41:00 +0000 (12:41 -0500)]
lvmlockd: fix snprintf warnings

5 years agouse memcpy for constant ondisk strings
David Teigland [Wed, 1 May 2019 21:50:48 +0000 (16:50 -0500)]
use memcpy for constant ondisk strings

Use memcpy/memcmp for on disk strings which are not
null terminated: FMTT_MAGIC, LVM2_LABEL and LABEL_ID.
Quiets compile warnings.

5 years agoremove unused string writecache
David Teigland [Wed, 1 May 2019 21:50:14 +0000 (16:50 -0500)]
remove unused string writecache

5 years agolvmcache: remove unused flag
David Teigland [Tue, 30 Apr 2019 19:59:27 +0000 (14:59 -0500)]
lvmcache: remove unused flag

The new label scan design is never called recursively,
so we don't need a flag to check for that.

5 years agovgcreate: remove the lvmcache locking workaround
David Teigland [Tue, 30 Apr 2019 19:26:16 +0000 (14:26 -0500)]
vgcreate: remove the lvmcache locking workaround

Recent cleanups and simplifications to lvmcache and locking
mean that the odd locking to workaround other issues is now
unnecessary.

5 years agopvcreate: call label scan prior to pvcreate_each_device
David Teigland [Tue, 30 Apr 2019 19:10:27 +0000 (14:10 -0500)]
pvcreate: call label scan prior to pvcreate_each_device

and don't call it from inside pvcreate_each_device.
This avoids having to repeat it for users of
pvcreate_each_device (pvcreate/pvremove/vgcreate/vgextend.)

5 years agopvscan: remove fixme comment that is fixed
David Teigland [Mon, 29 Apr 2019 20:42:20 +0000 (15:42 -0500)]
pvscan: remove fixme comment that is fixed

Remove the fixme comment describing the case that was
fixed by aa75b31db54782fb24b6b7e3c681a61b3579117c
  "pvscan: handle case of scanning PV without metadata last"

5 years agohints: skip hint flock if nolocking option is set
David Teigland [Thu, 25 Apr 2019 18:34:09 +0000 (13:34 -0500)]
hints: skip hint flock if nolocking option is set

5 years agoremove retry for missed PVs in process_each_pv
David Teigland [Tue, 23 Apr 2019 19:47:56 +0000 (14:47 -0500)]
remove retry for missed PVs in process_each_pv

This is no longer needed with the change to orphan
and global locks.

5 years agolocking: unify global lock for flock and lockd
David Teigland [Thu, 18 Apr 2019 20:01:19 +0000 (15:01 -0500)]
locking: unify global lock for flock and lockd

There have been two file locks used to protect lvm
"global state": "ORPHANS" and "GLOBAL".

Commands that used the ORPHAN flock in exclusive mode:
  pvcreate, pvremove, vgcreate, vgextend, vgremove,
  vgcfgrestore

Commands that used the ORPHAN flock in shared mode:
  vgimportclone, pvs, pvscan, pvresize, pvmove,
  pvdisplay, pvchange, fullreport

Commands that used the GLOBAL flock in exclusive mode:
  pvchange, pvscan, vgimportclone, vgscan

Commands that used the GLOBAL flock in shared mode:
  pvscan --cache, pvs

The ORPHAN lock covers the important cases of serializing
the use of orphan PVs.  It also partially covers the
reporting of orphan PVs (although not correctly as
explained below.)

The GLOBAL lock doesn't seem to have a clear purpose
(it may have eroded over time.)

Neither lock correctly protects the VG namespace, or
orphan PV properties.

To simplify and correct these issues, the two separate
flocks are combined into the one GLOBAL flock, and this flock
is used from the locking sites that are in place for the
lvmlockd global lock.

The logic behind the lvmlockd (distributed) global lock is
that any command that changes "global state" needs to take
the global lock in ex mode.  Global state in lvm is: the list
of VG names, the set of orphan PVs, and any properties of
orphan PVs.  Reading this global state can use the global lock
in sh mode to ensure it doesn't change while being reported.

The locking of global state now looks like:

lockd_global()
  previously named lockd_gl(), acquires the distributed
  global lock through lvmlockd.  This is unchanged.
  It serializes distributed lvm commands that are changing
  global state.  This is a no-op when lvmlockd is not in use.

lockf_global()
  acquires an flock on a local file.  It serializes local lvm
  commands that are changing global state.

lock_global()
  first calls lockf_global() to acquire the local flock for
  global state, and if this succeeds, it calls lockd_global()
  to acquire the distributed lock for global state.

Replace instances of lockd_gl() with lock_global(), so that the
existing sites for lvmlockd global state locking are now also
used for local file locking of global state.  Remove the previous
file locking calls lock_vol(GLOBAL) and lock_vol(ORPHAN).

The following commands which change global state are now
serialized with the exclusive global flock:

pvchange (of orphan), pvresize (of orphan), pvcreate, pvremove,
vgcreate, vgextend, vgremove, vgreduce, vgrename,
vgcfgrestore, vgimportclone, vgmerge, vgsplit

Commands that use a shared flock to read global state (and will
be serialized against the prior list) are those that use
process_each functions that are based on processing a list of
all VG names, or all PVs.  The list of all VGs or all PVs is
global state and the shared lock prevents those lists from
changing while the command is processing them.

The ORPHAN lock previously attempted to produce an accurate
listing of orphan PVs, but it was only acquired at the end of
the command during the fake vg_read of the fake orphan vg.
This is not when orphan PVs were determined; they were
determined by elimination beforehand by processing all real
VGs, and subtracting the PVs in the real VGs from the list
of all PVs that had been identified during the initial scan.
This is fixed by holding the single global lock in shared mode
while processing all VGs to determine the list of orphan PVs.

5 years agowipe_lv: initially open LV in writable mode
David Teigland [Fri, 26 Apr 2019 19:49:27 +0000 (14:49 -0500)]
wipe_lv: initially open LV in writable mode

wipe_lv knows it's going to write the device, so it
can open rw from the start.  It was opening readonly,
and then dev_write needed to reopen it readwrite.

5 years agocleanup: missed string specifier
Zdenek Kabelac [Wed, 17 Apr 2019 09:29:35 +0000 (11:29 +0200)]
cleanup: missed string specifier

5 years agolibdaemon: use pselect to avoid condition checking race
Zdenek Kabelac [Wed, 10 Apr 2019 10:50:53 +0000 (12:50 +0200)]
libdaemon: use pselect to avoid condition checking race

To avoid tiny race on checking arrival of signal and entering select
(that can latter remain stuck as signal was already delivered) switch
to use  pselect().

If it would needed, we can eventually add extra code for older systems
without pselect(), but there are probably no such ancient systems in
use.

5 years agoconfigure: check for pselect
Zdenek Kabelac [Wed, 10 Apr 2019 11:22:43 +0000 (13:22 +0200)]
configure: check for pselect

5 years agopvscan: handle case of scanning PV without metadata last
David Teigland [Mon, 15 Apr 2019 16:27:49 +0000 (11:27 -0500)]
pvscan: handle case of scanning PV without metadata last

Handle the case where pvscan --cache -aay (with no dev args)
gets to the final PV, completing the VG, but that final PV does not
have VG metadata.  In this case, we need to use VG metadata from a
previously scanned PV in the same VG, which we saved for this
possibility.  Using this saved metadata, we can find which VG
this PVID belongs to, and then check if that VG is now complete,
and if so add the VG name to the list of complete VGs to be
autoactivated.

5 years agotests: disable unworking pvscan case
David Teigland [Fri, 12 Apr 2019 20:40:38 +0000 (15:40 -0500)]
tests: disable unworking pvscan case

and add corresponding fixme in the code

5 years agohints: fix non-empty hints list when not using hints
David Teigland [Thu, 11 Apr 2019 16:49:18 +0000 (11:49 -0500)]
hints: fix non-empty hints list when not using hints

When hints are invalid and ignored, the list of hints
could be non-empty (from additions before an invalid
hint was found).  This confused the calling code which
was checking for an empty list to see if hints were used.
Ensure the list is empty when hints are not used.

5 years agohints: fix case of error getting device size
David Teigland [Thu, 11 Apr 2019 15:32:28 +0000 (10:32 -0500)]
hints: fix case of error getting device size

When checking hints, if there's an error getting
the device size, that should be equivalent to
seeing zero size.

5 years agosystemd: put back DefaultDependencies=no for lvmpolld socket unit
Peter Rajnoha [Thu, 11 Apr 2019 10:18:02 +0000 (12:18 +0200)]
systemd: put back DefaultDependencies=no for lvmpolld socket unit

Previous commit 0cab341e1d0e8f9089d3c62d3adbec24dfd5e124 removed this
by mistake - we have to keep the DefaultDependencies=no - the
sockets.target is after sysinit.target.

5 years agosystemd: add missing Before=shutdown.target to LVM2 services to fix shutdown ordering
Peter Rajnoha [Tue, 9 Apr 2019 10:10:17 +0000 (12:10 +0200)]
systemd: add missing Before=shutdown.target to LVM2 services to fix shutdown ordering

We already used Conflicts=shutdown target to stop LVM2 services on shutdown.
But we still missed the ordering - the shutdown.target should be reached
only after all the services are really stopped.

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

5 years agoWHATS_NEW: add several recent changes
David Teigland [Mon, 8 Apr 2019 15:56:43 +0000 (10:56 -0500)]
WHATS_NEW: add several recent changes

5 years agopvscan: ignore device with incorrect size
David Teigland [Fri, 5 Apr 2019 21:44:00 +0000 (16:44 -0500)]
pvscan: ignore device with incorrect size

If a device looks like a PV, but its size does not
match the PV size in the metadata, then skip it for
purposes of autoactivation.  It's probably not wrong
device for the PV.

5 years agopvscan: print more reasons for ignoring devices
David Teigland [Fri, 5 Apr 2019 19:03:38 +0000 (14:03 -0500)]
pvscan: print more reasons for ignoring devices

5 years agotests: update pvscan-autoactivate for init change
David Teigland [Fri, 5 Apr 2019 18:20:09 +0000 (13:20 -0500)]
tests: update pvscan-autoactivate for init change

5 years agopvscan: don't print warning about lvmlockd not running
David Teigland [Thu, 14 Mar 2019 21:25:55 +0000 (16:25 -0500)]
pvscan: don't print warning about lvmlockd not running

pvscan --cache ignores shared VGs, so it doesn't need to
consider lvmlockd, and shouldn't include a warning about it.

5 years agopvscan: remove initialization case
David Teigland [Tue, 26 Feb 2019 22:48:29 +0000 (16:48 -0600)]
pvscan: remove initialization case

In the past, the first 'pvscan --cache -aay dev' command
to run on the system would initialize the pvs_online dir
by scanning all devs and creating online files for all pvs
it found, and then autoactivating the VG (if complete) for
the named dev.  The idea was that the system may not have
been able to run pvscan commands for early devices, so the
first pvscan to run would need to "make up" for any devices
that had appeared previously, which the system was unable to
scan.  The problem or idea of making up for missed scans is
historical and should no longer be needed, so remove this
special init case.

5 years agopvscan: for init only autoactivate vg for named dev
David Teigland [Tue, 26 Feb 2019 22:39:43 +0000 (16:39 -0600)]
pvscan: for init only autoactivate vg for named dev

When pvscan is run for the initialization case (the first
pvscan run on the system), it scans all devs and creates
online files for all PVs it finds.  Previously it would
then autoactivate every complete VG, but change this to
only autoactive the (complete) VG corresponding to the
named device arg(s).

5 years agopvscan: reorganize code
David Teigland [Tue, 26 Feb 2019 22:35:16 +0000 (16:35 -0600)]
pvscan: reorganize code

to simplify and prepare for subsequent change.
Should be no change in behavior.

5 years agoman: updates to lvmlockd
David Teigland [Thu, 4 Apr 2019 19:36:28 +0000 (14:36 -0500)]
man: updates to lvmlockd

- remove reference to locking_type which is no longer used
- remove references to adopting locks which has been disabled
- move some sanlock-specific info out of a general section
- remove info about doing automatic lockstart by the system
  since this was never used (the resource agent does it)
- replace info about lvextend and manual refresh under gfs2
  with a description about the automatic remote refresh

5 years agolvmlockd: do not allow mirror LV to be activated shared
David Teigland [Fri, 22 Mar 2019 17:07:31 +0000 (12:07 -0500)]
lvmlockd: do not allow mirror LV to be activated shared

This reverts 518a8e8cfbb672c2bf5e3455f1fe7cd8d94eb5b0
  "lvmlockd: activate mirror LVs in shared mode with cmirrord"

because while activating a mirror LV with cmirrord worked,
changes to the active cmirror did not work.

5 years agolvextend: refresh shared LV without using select
David Teigland [Thu, 4 Apr 2019 18:19:08 +0000 (13:19 -0500)]
lvextend: refresh shared LV without using select

Using select instead of normal args did not end
up being a help, so remove it.

5 years agotests: check auto-growth of thin-pool meta
Zdenek Kabelac [Wed, 3 Apr 2019 11:25:54 +0000 (13:25 +0200)]
tests: check auto-growth of thin-pool meta

5 years agothin: fix maintenance of _pmspare
Zdenek Kabelac [Wed, 3 Apr 2019 11:02:50 +0000 (13:02 +0200)]
thin: fix maintenance of _pmspare

When metadata grows lvm2 may need to extend also _pmspare volume.

5 years agothin: resize metadata with data
Zdenek Kabelac [Wed, 3 Apr 2019 11:01:06 +0000 (13:01 +0200)]
thin: resize metadata with data

When data are growing, adapt also size of metadata.
As we get way too many reports from users doing huge growths of
data portion while keep metadata small and avoiding using monitoring.

So to enhance the user-experience in case user requests grown of
thin-pool (without passing PV list for growth) - lvm2 will automaticaly
grown also the metadata part of thin-pool (if possible).

5 years agothin: introduce estimate_thin_pool_metadata_size
Zdenek Kabelac [Wed, 3 Apr 2019 10:56:48 +0000 (12:56 +0200)]
thin: introduce estimate_thin_pool_metadata_size

Add function for estimation of thin-pool metadata size for given size of
data. Function is using already existing internal API so it can
be reused for resize of thin-pool data.

5 years agofilter: fix mpath test
Zdenek Kabelac [Wed, 3 Apr 2019 11:06:00 +0000 (13:06 +0200)]
filter: fix mpath test

Fix bug which leaked into commit
dc6dea40331687b8740cc48833f4c7c42a2db1a1,
where the testing code got mistakenly commited.

5 years agolvresize: fix when compiled without lvmlockd
David Teigland [Tue, 2 Apr 2019 15:50:12 +0000 (10:50 -0500)]
lvresize: fix when compiled without lvmlockd

The no-op result of lockd_lv_resize should be success.

5 years agolvextend: refresh shared LV with vgname as arg
David Teigland [Fri, 22 Mar 2019 20:01:29 +0000 (15:01 -0500)]
lvextend: refresh shared LV with vgname as arg

Update the previous commit to leave the vgname as
an arg instead of moving it into the select option,
(the compound select option rule is confusing the
dlm arg processing.)

5 years agolvextend: refresh shared LV using select option
David Teigland [Fri, 22 Mar 2019 19:28:02 +0000 (14:28 -0500)]
lvextend: refresh shared LV using select option

Using --select 'lvname=LV && vgname=VG' avoids the problem
of the lvchange exit code not distinguishing an actual error
result vs the VG or LV not existing.  (This is in case there
is an odd dlm/gfs2 setup where some nodes are running the dlm
but do not have access to the VG.)

5 years agolvextend: refresh shared LV remotely using dlm/corosync
David Teigland [Wed, 20 Mar 2019 18:20:26 +0000 (13:20 -0500)]
lvextend: refresh shared LV remotely using dlm/corosync

When lvextend extends an LV that is active with a shared
lock, use this as a signal that other hosts may also have
the LV active, with gfs2 mounted, and should have the LV
refreshed to reflect the new size.  Use the libdlmcontrol
run api, which uses dlm_controld/corosync to run an
lvchange --refresh command on other cluster nodes.

5 years agolvextend: allow on LV active with a shared lock
David Teigland [Tue, 19 Mar 2019 19:38:38 +0000 (14:38 -0500)]
lvextend: allow on LV active with a shared lock

Detect when a shared lock exists, don't require the
normal exclusive lock, and allow the lvextend.

5 years agowarn about changes to an active lv with shared lock
David Teigland [Thu, 7 Mar 2019 17:20:41 +0000 (11:20 -0600)]
warn about changes to an active lv with shared lock

When an LV is active with a shared lock, a command can be
run to change the LV with --lockopt skiplv (to override the
exclusive lock the command ordinarily requires which is not
compatible with the outstanding shared lock.)

In this case, other commands may have the LV active and may
need to refresh the LV, so print warning stating this.

5 years agotests: vdo caching tests
Zdenek Kabelac [Sat, 26 Jan 2019 00:36:07 +0000 (01:36 +0100)]
tests: vdo caching tests

5 years agotests: vdo dmevent autoresize
Zdenek Kabelac [Thu, 24 Jan 2019 13:16:18 +0000 (14:16 +0100)]
tests: vdo dmevent autoresize

5 years agoman: dmeventd vdo plugin
Zdenek Kabelac [Wed, 23 Jan 2019 21:51:00 +0000 (22:51 +0100)]
man: dmeventd vdo plugin

5 years agoman: basic vdo stacking support
Zdenek Kabelac [Thu, 24 Jan 2019 13:57:36 +0000 (14:57 +0100)]
man: basic vdo stacking support

Document some basic lvconvert stacking posibilities.

5 years agoactivation: synchronize before removing devices
Zdenek Kabelac [Wed, 6 Feb 2019 11:37:47 +0000 (12:37 +0100)]
activation: synchronize before removing devices

Udev is running udev-rule action upon 'resume'.

However lvm2 in special case is doing replacement of
'soon-to-be-removed' device with 'error' target for resuming
and then follows actual removal - the sequence is usually quick,
so when udev start action - it can result in 'strange' error
message in kernel log like:

Process '/usr/sbin/dmsetup info -j 253 -m 17 -c --nameprefixes --noheadings --rows -o name,uuid,suspended' failed with exit code 1.

To avoid this - we need to ensure there is synchronization wait for udev
between 'resume'  and 'remove' part of this process.

However existing code put strict requirement to avoid synchronizing with
udev inside critical section - but this originally came from requirement
to not do anything special while there could be devices in
suspend-state. Now we are able to see differnce between critical section
with or without suspended devices.  For udev synchronization only
suspended devices are prohibited to be there - so slightly relax
condition and allow calling and using 'fs_sync()' even inside critical
section - but there must not be any suspended device.

5 years agovdo: enable caching for vdopool LV and vdo LV
Zdenek Kabelac [Thu, 24 Jan 2019 13:12:26 +0000 (14:12 +0100)]
vdo: enable caching for vdopool LV and vdo LV

Allow using caching with VDO.
User can either cache a single vdopool or
a vdo LV - difference when the caching is put-in depends on a use-case
and it's upto user to decide which kind of speed is expected.

5 years agolv_manip: insert remove layer skips pools
Zdenek Kabelac [Thu, 24 Jan 2019 13:14:31 +0000 (14:14 +0100)]
lv_manip: insert remove layer skips pools

Fixing renaming of subLVs when removing and inserting layers - this
got visible when using stacked VDO pools.

5 years agotests: check vgsplit works with cache
Zdenek Kabelac [Fri, 1 Feb 2019 22:45:12 +0000 (23:45 +0100)]
tests: check vgsplit works with cache

5 years agocache: support vgsplit
Zdenek Kabelac [Fri, 1 Feb 2019 20:29:22 +0000 (21:29 +0100)]
cache: support vgsplit

Enable vgsplit to work with VG containing cached LVs.

5 years agothin: max thin
Zdenek Kabelac [Tue, 29 Jan 2019 17:45:52 +0000 (18:45 +0100)]
thin: max thin

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