]> sourceware.org Git - lvm2.git/log
lvm2.git
6 years agopre-release v2_03_00
Marian Csontos [Tue, 21 Aug 2018 15:18:20 +0000 (17:18 +0200)]
pre-release

6 years agobuild: gcc can be fussy about order of libs
Marian Csontos [Wed, 10 Oct 2018 09:10:42 +0000 (11:10 +0200)]
build: gcc can be fussy about order of libs

6 years agobuild: make generate
Marian Csontos [Wed, 10 Oct 2018 06:31:55 +0000 (08:31 +0200)]
build: make generate

6 years agotests: check activation of many thin-pool
Zdenek Kabelac [Wed, 5 Sep 2018 12:36:16 +0000 (14:36 +0200)]
tests: check activation of many thin-pool

Artifitical testing of monitoring of many thin-pools with low number
of resources in use (need only few pools to actually hit the race).

6 years agodmeventd: lvm2 plugin uses envvar registry
Zdenek Kabelac [Mon, 27 Aug 2018 08:18:26 +0000 (10:18 +0200)]
dmeventd: lvm2 plugin uses envvar registry

Thin plugin started to use configuble setting to allow to configure
usage of external scripts - however to read this value it needed to
execute internal command as dmeventd itself has no access to lvm.conf
and the API for dmeventd plugin has been kept stable.

The call of command itself was not normally 'a big issue' until users
started to use higher number of monitored LVs and execution of command
got stuck because other monitored resource already started to execute
some other lvm2 command and become blocked waiting on VG lock.

This scenario revealed necesity to somehow avoid calling lvm2 command
during resource registration - but this requires bigger changes - so
meanwhile this patch tries to minimize the possibility to hit this race
by obtaining any configurable setting just once - such patch is small
and covers majority of problem - yet better solution needs to be
introduced likely with bigger rework of dmeventd.

TODO: avoid blocking registration of resource with execution of lvm2
commands since those can get stuck waiting on mutexes.

6 years agospec: No %ghost for dirs at tmpfiles.d
Marian Csontos [Tue, 2 Oct 2018 15:02:37 +0000 (17:02 +0200)]
spec: No %ghost for dirs at tmpfiles.d

%ghost should not be used for directories created by systemd-tmpfiles.

This may prevent package from working right after installation without
invoking systemd-tmpfiles.

See: https://pagure.io/packaging-committee/issue/439

6 years agometadata: clarify comments about max size
David Teigland [Mon, 24 Sep 2018 20:27:03 +0000 (15:27 -0500)]
metadata: clarify comments about max size

Since there is now a direct limit of half the space.

6 years agometadata: add direct size limit
David Teigland [Mon, 24 Sep 2018 19:41:58 +0000 (14:41 -0500)]
metadata: add direct size limit

Previously the size was limited by checking if the
old and new copies of the metadata overlapped.
This generally limited the size to about half of
the total space, but it could be larger given the
size differences between old and new.  Now add a
direct check to limit the size to half the space.

6 years agometadata: remove incorrect comment about alignment
David Teigland [Thu, 20 Sep 2018 20:37:06 +0000 (15:37 -0500)]
metadata: remove incorrect comment about alignment

6 years agometadata: add comment about negative impact of rounding
David Teigland [Thu, 20 Sep 2018 19:15:49 +0000 (14:15 -0500)]
metadata: add comment about negative impact of rounding

6 years agometadata: remove an unused and incorrect overflow check
David Teigland [Thu, 20 Sep 2018 18:53:50 +0000 (13:53 -0500)]
metadata: remove an unused and incorrect overflow check

Remove another instance of an invalid check for metadata
overflow during read.  The previous instance was removed
in commit 5fb15b193.

This was checking for metadata that that overflowed the
circular disk metadata buffer during read, but such metadata
cannot be written, so it shouldn't be possible to find see.
Also, the check was incorrect and could trigger when there
was no overflow.

6 years agoMerge branch '2018-09-13-radix-tree-bug'
Joe Thornber [Thu, 20 Sep 2018 13:43:51 +0000 (14:43 +0100)]
Merge branch '2018-09-13-radix-tree-bug'

6 years ago[build] switch back to the adaptive radix tree
Joe Thornber [Thu, 20 Sep 2018 13:40:28 +0000 (14:40 +0100)]
[build] switch back to the adaptive radix tree

6 years ago[unit-test/radix-tree] Add a huge test case
Joe Thornber [Thu, 20 Sep 2018 13:35:45 +0000 (14:35 +0100)]
[unit-test/radix-tree] Add a huge test case

Derived from the logs that dct gave me.

6 years ago[radix-tree] tidy up _degrade_to_n48
Joe Thornber [Thu, 20 Sep 2018 13:28:47 +0000 (14:28 +0100)]
[radix-tree] tidy up _degrade_to_n48

Shouldn't be any functional changes.

6 years ago[radix-tree] Fix bug in _degrade_to_n16
Joe Thornber [Thu, 20 Sep 2018 13:20:16 +0000 (14:20 +0100)]
[radix-tree] Fix bug in _degrade_to_n16

Values were getting shuffled

6 years ago[radix-tree] Fix bug in _dump
Joe Thornber [Thu, 20 Sep 2018 13:18:57 +0000 (14:18 +0100)]
[radix-tree] Fix bug in _dump

Values in an n48 were not being printed in the correct order.

6 years ago[radix-tree] Add some extra checks to is_well_formed()
Joe Thornber [Thu, 20 Sep 2018 13:18:10 +0000 (14:18 +0100)]
[radix-tree] Add some extra checks to is_well_formed()

6 years agotests: fix lvconvert-raid-reshape-linear_to_striped-single-type.sh
Heinz Mauelshagen [Wed, 19 Sep 2018 12:53:38 +0000 (14:53 +0200)]
tests: fix lvconvert-raid-reshape-linear_to_striped-single-type.sh

Add errouneously removed VG creation back in.

6 years agoradix-tree: default to simple version
David Teigland [Mon, 17 Sep 2018 16:19:53 +0000 (11:19 -0500)]
radix-tree: default to simple version

Avoid problems with the advanced version.

6 years agolibdm: fix buffer overflow
Marian Csontos [Thu, 21 Jun 2018 08:20:09 +0000 (10:20 +0200)]
libdm: fix buffer overflow

(cherry picked from commit 8a0af1bec882de66677e1a0cdceff841c39f92b0)

6 years agobuild: Update configure
Marian Csontos [Fri, 14 Sep 2018 11:53:29 +0000 (13:53 +0200)]
build: Update configure

6 years agospec: Remove lvmconf refernces
Marian Csontos [Fri, 14 Sep 2018 11:49:51 +0000 (13:49 +0200)]
spec: Remove lvmconf refernces

Fixes: 81ca0cb1619b6ea22fa68f54783cd62dafbd2eaf
6 years agoMore cleanup needed for dropped scripts
David Teigland [Thu, 13 Sep 2018 16:02:53 +0000 (11:02 -0500)]
More cleanup needed for dropped scripts

and drop the lvm2 prefix from lvmlockd service

6 years agoadd lvmlocks service to start and stop lockspaces
David Teigland [Thu, 13 Sep 2018 15:50:50 +0000 (10:50 -0500)]
add lvmlocks service to start and stop lockspaces

6 years agoRemove init scripts related to clvm and lvmetad
David Teigland [Thu, 13 Sep 2018 15:08:03 +0000 (10:08 -0500)]
Remove init scripts related to clvm and lvmetad

6 years agolvmlockd: improve systemd service file
David Teigland [Thu, 13 Sep 2018 14:52:39 +0000 (09:52 -0500)]
lvmlockd: improve systemd service file

use notify type so the daemon is ready
immediately after start.

6 years agoremove unneded check to skip filter init
David Teigland [Wed, 12 Sep 2018 21:13:46 +0000 (16:13 -0500)]
remove unneded check to skip filter init

There's no more persistent filter so we don't need
to check for it.

6 years agofix readonly activation override options
David Teigland [Wed, 12 Sep 2018 20:59:47 +0000 (15:59 -0500)]
fix readonly activation override options

This fixes a problem in commit e6bb780d242, in which the
back compat handling for the old locking_type=4 was
incorrectly translated to mean the same thing as --readonly,
which prevented activation because activation uses an
exclusive vg lock.  Previously, locking_type=4 allowed
activation.

If we see locking_type 4 in an old config, translate it to
the new combination of --readonly and --sysinit, which we
now define to mean the --readonly behavior with an exception
to allow activation.

6 years agotests: add metadata-full
David Teigland [Tue, 11 Sep 2018 15:05:53 +0000 (10:05 -0500)]
tests: add metadata-full

6 years agometadata: improve write and commit code
David Teigland [Thu, 30 Aug 2018 15:44:53 +0000 (10:44 -0500)]
metadata: improve write and commit code

The vg_write/vg_commit code was imprecise, uncommented, and
hard to understand.  Rewrite it with clearer, cleaner code,
extensive comments, descriptions of how it works, and add
more info in debugging output.

The minor changes in behavior are to things that were
either incorrect or probably unintended:

- vg_write/vg_commit no longer check that the current vgname at
  the start of the text metadata matches the vgname being written.
  This has already been done at least twice by the time they are
  called, and repeating it again against the same cached data has
  no use.

- A fragment of old removed code had been left behind that checked
  if the old unused alignment policy would wrap.  It was still
  being checked to decide if the metadata area was full, which
  could possibly cause an incorrect full metadata failure.

- vg_remove now clears both the raw_locns in the mda_header that
  point to committed metadata (raw_locn slot 0) and precommitted
  metadata (raw_locn slot 1).  Previously it fully cleared the
  committed slot, and would only clear the offset field in the
  precommitted slot if it saw a problem with the metadata in the
  vg being removed.

- read_metadata_location_summary was wrongly comparing the number
  of wrapped bytes with an offset to report an error about the
  metadata being too large.  This wrong check is removed, it
  could have resulted in erroneous errors.

6 years agotests: bump dm-raid version to 1.14.0
Heinz Mauelshagen [Tue, 11 Sep 2018 13:58:43 +0000 (15:58 +0200)]
tests: bump dm-raid version to 1.14.0

Commit 989626926c98cd00f0236c4fcac883107d76899d
introduced 2 new tests
lvconvert-raid-takeover-linear_to_raid4.sh and
lvconvert-raid-takeover-raid4_to_linear.sh
which involve raid reshaping.

Bump the checked dm-raid target version to 1.14.0
which has reshape kernel fixes to avoid test suite
runs to hang.

6 years agotests: adjust target version to enable reshape tests
Heinz Mauelshagen [Tue, 11 Sep 2018 13:39:31 +0000 (15:39 +0200)]
tests: adjust target version to enable reshape tests

Bump target version to 1.14.0 which contains fixes
for reshape deadlock/corruption to allow tests to
run once the respective fixes show up in kernels.

Remove now superfluous multi-core checks.

Resolves: rhbz1501145
Related: rhbz1514539
Related: rhbz1586123
Related: rhbz1613039

6 years agoMerge branch 'master' of git://sourceware.org/git/lvm2
Joe Thornber [Tue, 11 Sep 2018 12:19:08 +0000 (13:19 +0100)]
Merge branch 'master' of git://sourceware.org/git/lvm2

6 years ago[bcache] Remove unused 'hash' field from blocks.
Joe Thornber [Tue, 11 Sep 2018 12:17:29 +0000 (13:17 +0100)]
[bcache] Remove unused 'hash' field from blocks.

We use a radix tree these days rather than a hash table.

6 years ago[radix-tree] alternative radix-tree implementation.
Joe Thornber [Tue, 11 Sep 2018 10:11:35 +0000 (11:11 +0100)]
[radix-tree] alternative radix-tree implementation.

Sacrifices performance for simplicity, meant only for verification of
the real adaptive implementation.

6 years agotests: remove lvmetad variation
David Teigland [Mon, 10 Sep 2018 19:26:57 +0000 (14:26 -0500)]
tests: remove lvmetad variation

6 years agotests: drop lvmetad parts of system_id test
David Teigland [Mon, 10 Sep 2018 19:08:27 +0000 (14:08 -0500)]
tests: drop lvmetad parts of system_id test

6 years agotests: drop lvmetad bits
David Teigland [Mon, 10 Sep 2018 16:10:55 +0000 (11:10 -0500)]
tests: drop lvmetad bits

6 years agolvconvert: allow raid4 -> linear conversion request
Heinz Mauelshagen [Mon, 10 Sep 2018 16:36:52 +0000 (18:36 +0200)]
lvconvert: allow raid4 -> linear conversion request

Allow "lvconvert --type linear RaidLV" on a raid4 LV
providing convenient interim steps to convert to linear.

Add respective new test
   lvconvert-raid-takeover-raid4_to_linear.sh
and
   lvconvert-raid-takeover-linear_to_raid4.sh
for linear to raid4 once on it.

6 years agolvconvert: fix interim segtype regression on raid6 conversions
Heinz Mauelshagen [Fri, 7 Sep 2018 11:48:13 +0000 (13:48 +0200)]
lvconvert: fix interim segtype regression on raid6 conversions

When converting from striped/raid0/raid0_meta
to raid6 with > 2 stripes, allow possible
direct conversion (to raid6_n_6).

In case of 2 stripes, first convert to raid5_n to restripe
to at least 3 data stripes (the raid6 minimum in lvm2) in
a second conversion before finally converting to raid6_n_6.

As before, raid6_n_6 then can be converted
to any other raid6 layout.

Enhance lvconvert-raid-takeover.sh to test the
2 stripes conversions to raid6.

Resolves: rhbz1624038

6 years agolvconvert: avoid superfluous interim raid type
Heinz Mauelshagen [Fri, 31 Aug 2018 17:03:52 +0000 (19:03 +0200)]
lvconvert: avoid superfluous interim raid type

When converting striped/raid0*/raid6_n_6 <-> raid4,
avoid superfluous interim raid5_n layout.

Related: rhbz1447809

6 years agotest: comment fixes
Heinz Mauelshagen [Fri, 31 Aug 2018 13:07:24 +0000 (15:07 +0200)]
test: comment fixes

Fix comments in

   test/shell/lvconvert-raid-reshape-stripes-load-fail.sh
   test/shell/lvconvert-raid-reshape-stripes-load-reload.sh
   test/shell/lvconvert-raid-reshape-stripes-load.sh

6 years agotests: add scan-lvs
David Teigland [Thu, 30 Aug 2018 14:54:02 +0000 (09:54 -0500)]
tests: add scan-lvs

6 years agofilter: add config setting to skip scanning LVs
David Teigland [Wed, 29 Aug 2018 18:14:18 +0000 (13:14 -0500)]
filter: add config setting to skip scanning LVs

devices/scan_lvs (default 1) determines whether lvm
will scan LVs for layered PVs.  The lvm behavior has
always been to scan LVs, but it's rare for LVs to have
layered PVs, and much more common for there to be many
LVs that substantially slow down scanning with no benefit.

This is implemented in the usable filter, and has the
same effect as listing all LVs in the global_filter.

6 years agoconfigure: fix LVMCONFIG_PATH assignment
Peter Rajnoha [Thu, 30 Aug 2018 10:59:59 +0000 (12:59 +0200)]
configure: fix LVMCONFIG_PATH assignment

6 years agoscripts: lvm2-activation-generator: also log possible execv error
Peter Rajnoha [Thu, 30 Aug 2018 10:48:50 +0000 (12:48 +0200)]
scripts: lvm2-activation-generator: also log possible execv error

6 years agoscripts: lvm2-activation-generator: add prefix for all kmsg messages
Peter Rajnoha [Thu, 30 Aug 2018 10:46:41 +0000 (12:46 +0200)]
scripts: lvm2-activation-generator: add prefix for all kmsg messages

Add "lvm2-activation-generator: " prefix for all kmsg messages written by
lvm2-activation-generator so we can identify the message in global system log.

6 years agoscripts: add After=rbdmap.service to {lvm2-activation-net,blk-availability}.service
Peter Rajnoha [Thu, 30 Aug 2018 10:35:58 +0000 (12:35 +0200)]
scripts: add After=rbdmap.service to {lvm2-activation-net,blk-availability}.service

We need to have Ceph RBD devices mapped first before use in a stack
where LVM is on top so make sure rbdmap.service is called before
generated lvm2-activation-net.service.

On shutdown, we need to stop blk-availability first before we stop the
rbdmap.service.

Resolves: rhbz1623479

6 years agobcache: reduce MAX_IO to 256
David Teigland [Fri, 24 Aug 2018 19:46:51 +0000 (14:46 -0500)]
bcache: reduce MAX_IO to 256

This is the number of concurrent async io requests that
the scan layer will submit to the bcache layer.  There
will be an open fd for each of these, so it is best to
keep this well below the default limit for max open files
(1024), otherwise lvm may get EMFILE from open(2) when
there are around 1024 devices to scan on the system.

6 years agotest: add striped -> raid0 test script
Heinz Mauelshagen [Wed, 22 Aug 2018 15:11:03 +0000 (17:11 +0200)]
test: add striped -> raid0 test script

6 years agolvconvert: fix conversion attempts to linear
Heinz Mauelshagen [Wed, 22 Aug 2018 14:39:36 +0000 (16:39 +0200)]
lvconvert: fix conversion attempts to linear

"lvconvert --type linear RaidLV" on striped and raid4/5/6/10
have to provide the convenient interim layouts.  Fix involves
a cleanup to the convenience type function.

As a result of testing, add missing sync waits to
lvconvert-raid-reshape-linear_to_raid6-single-type.sh.

Resolves: rhbz1447809

6 years agoconfig: improve use_blkid_wiping
David Teigland [Tue, 21 Aug 2018 17:24:35 +0000 (12:24 -0500)]
config: improve use_blkid_wiping

mention that libblkid is used to both detect
and erase signatures.

6 years agolvconvert: fix regression preventing direct striped conversion
Heinz Mauelshagen [Tue, 21 Aug 2018 15:12:33 +0000 (17:12 +0200)]
lvconvert: fix regression preventing direct striped conversion

Conversion to striped from raid0/raid0_meta is directly possible.

Fix a regression setting superfluous interim raid5_n conversion type
introduced by commit bd7cdd0b09ba123b064937fddde08daacbed7dab.

Add new test script lvconvert-raid0-striped.sh.

Resolves: rhbz1608067

6 years agoradix-tree: Fix bug in remove_prefix()
Joe Thornber [Mon, 20 Aug 2018 14:23:40 +0000 (15:23 +0100)]
radix-tree: Fix bug in remove_prefix()

Accidental decrement of the nr entries when a n256 didn't have the
entry in the first place.

6 years agotests: check policy mq can be used with format2
Zdenek Kabelac [Tue, 7 Aug 2018 13:20:31 +0000 (15:20 +0200)]
tests: check policy mq can be used with format2

6 years agotests: splitmirror for mirror type
Zdenek Kabelac [Tue, 7 Aug 2018 08:34:59 +0000 (10:34 +0200)]
tests: splitmirror for mirror type

6 years agomirror: fix splitmirrors for mirror type
Zdenek Kabelac [Tue, 7 Aug 2018 08:34:17 +0000 (10:34 +0200)]
mirror: fix splitmirrors for mirror type

With improved mirror activation code --splitmirror issue poppedup
since there was missing proper preload code and deactivation
for splitted mirror leg.

6 years agocache: drop metadata_format validation
Zdenek Kabelac [Tue, 7 Aug 2018 08:33:19 +0000 (10:33 +0200)]
cache: drop metadata_format validation

Allow to use any combination of cache metadata format for policy.

6 years agomirrors: fix read_only_volume_list
David Teigland [Thu, 2 Aug 2018 16:26:59 +0000 (11:26 -0500)]
mirrors: fix read_only_volume_list

If a mirror LV is listed in read_only_volume_list, it would
still be activated rw.  The activation would initially be
readonly, but the monitoring function would immediately
change it to rw.  This was a regression from commit

fade45b1d14c mirror: improve table update

The monitoring function needs to copy the read_only setting
into the new set of mirror activation options it uses.

6 years agovgcreate: close exclusive fd after pvcreate
David Teigland [Wed, 1 Aug 2018 15:26:28 +0000 (10:26 -0500)]
vgcreate: close exclusive fd after pvcreate

When vgcreate does an automatic pvcreate, it opens the
dev with O_EXCL to ensure no other subsystem is using
the device.  This exclusive fd remained in bcache and
prevented activation parts of lvm from using the dev.

This appeared with vgcreate of a sanlock VG because of
the unique combination where the dev is not yet a PV,
so pvcreate is needed, and the vgcreate also creates
and activates an internal LV for sanlock.

Fix this by closing the exclusive fd after it's used
by pvcreate so that it won't interfere with other
bits of lvm that may try to use the device.

6 years agoAdd BSD 2-Clause License
Marian Csontos [Fri, 27 Jul 2018 15:08:19 +0000 (17:08 +0200)]
Add BSD 2-Clause License

This is required by C++ test harness.

6 years agotest: Check flavour is used and exists
Marian Csontos [Thu, 26 Jul 2018 13:01:50 +0000 (15:01 +0200)]
test: Check flavour is used and exists

6 years agotest: Remove excessive comma resulting in empty flavour
Marian Csontos [Thu, 26 Jul 2018 12:56:08 +0000 (14:56 +0200)]
test: Remove excessive comma resulting in empty flavour

6 years agolvconvert: reject conversions on raid1 split trackchanges LVs
Heinz Mauelshagen [Wed, 25 Jul 2018 23:47:39 +0000 (01:47 +0200)]
lvconvert: reject conversions on raid1 split trackchanges LVs

Prohibit, because the tracking can't continue and
further conversions may fail with bogus error messages.

Resolves: rhbz1579072

6 years agolvconvert: reject conversions on raid1 split trackchanges SubLVs
Heinz Mauelshagen [Wed, 25 Jul 2018 23:00:11 +0000 (01:00 +0200)]
lvconvert: reject conversions on raid1 split trackchanges SubLVs

Prohibit conversions of raid1 split trackchanges SubLVs
because they will fail to get merged back into the RaidLV.

Resolves: rhbz1579438

6 years agotest: new lvcreate-raid1-error-read.sh
Heinz Mauelshagen [Tue, 24 Jul 2018 18:38:22 +0000 (20:38 +0200)]
test: new lvcreate-raid1-error-read.sh

Test for MD RAID kernel bug in read_balance() preventing
reads of failed sectors to get rescheduled to another leg.

6 years agospec: Fix conditional
Marian Csontos [Tue, 24 Jul 2018 14:22:23 +0000 (16:22 +0200)]
spec: Fix conditional

6 years agobuild: Update configure
Marian Csontos [Tue, 24 Jul 2018 14:17:42 +0000 (16:17 +0200)]
build: Update configure

6 years agospec: Add vdo files
Marian Csontos [Tue, 24 Jul 2018 13:37:15 +0000 (15:37 +0200)]
spec: Add vdo files

6 years agobuild: Remove lvmetad leftovers
Marian Csontos [Tue, 24 Jul 2018 13:02:32 +0000 (15:02 +0200)]
build: Remove lvmetad leftovers

6 years agospec: Remove unsupported config options
Marian Csontos [Tue, 24 Jul 2018 12:57:52 +0000 (14:57 +0200)]
spec: Remove unsupported config options

6 years agospec: Remove python bindings
Marian Csontos [Tue, 24 Jul 2018 12:55:32 +0000 (14:55 +0200)]
spec: Remove python bindings

6 years agospec: Remove lvmetad
Marian Csontos [Tue, 24 Jul 2018 12:50:52 +0000 (14:50 +0200)]
spec: Remove lvmetad

6 years agolvconvert: reject conversions of LVs under snapshot
Heinz Mauelshagen [Mon, 23 Jul 2018 17:20:18 +0000 (19:20 +0200)]
lvconvert: reject conversions of LVs under snapshot

Conversions of LVs under snapshot to thinpool or cachepool
correctly fail but leave them inactive and provide cryptic
error messages like 'Internal error: #LVs (10) != #visible
LVs (2) + #snapshots (1) + #internal LVs (5) in VG VG'.

Reject and provide better error message.

Resolves: rhbz1514146

6 years agolvconvert: improve text about splitmirrors
David Teigland [Mon, 23 Jul 2018 17:28:48 +0000 (12:28 -0500)]
lvconvert: improve text about splitmirrors

in messages and man page.

6 years agolvconvert: restrict command matching for no option variant
David Teigland [Mon, 23 Jul 2018 16:08:12 +0000 (11:08 -0500)]
lvconvert: restrict command matching for no option variant

The 'lvconvert LV' command def has caused multiple problems
for command matching because it matches the required options
of any lvconvert command.  Any lvconvert with incorrect options
ends up matching 'lvconvert LV', which then produces an error
about incorrect options being used for 'lvconvert LV'.  This
prevents suggestions from nearest-command partial command matches.

Add a special case for 'lvconvert LV' so that it won't be used
as a partial match for a command that has options specified.

6 years agotests: remove lvmetad tests
David Teigland [Tue, 10 Jul 2018 19:40:48 +0000 (14:40 -0500)]
tests: remove lvmetad tests

6 years agoRemove lvmetad
David Teigland [Tue, 10 Jul 2018 18:39:29 +0000 (13:39 -0500)]
Remove lvmetad

Native disk scanning is now both reduced and
async/parallel, which makes it comparable in
performance (and often faster) when compared
to lvm using lvmetad.

Autoactivation now uses local temp files to record
online PVs, and no longer requires lvmetad.

There should be no apparent command-level change
in behavior.

6 years agotests: fix mkdir pvs_online
David Teigland [Tue, 10 Jul 2018 19:19:46 +0000 (14:19 -0500)]
tests: fix mkdir pvs_online

6 years agotests: autoactivation tests for use without lvmetad
David Teigland [Tue, 10 Jul 2018 14:58:22 +0000 (09:58 -0500)]
tests: autoactivation tests for use without lvmetad

Adjust a few lvmetad pvscan/autoactivation tests to be
used without lvmetad, and add a test to cover some cases
that have not been tested before.

6 years agopvscan: autoactivate without lvmetad
David Teigland [Thu, 28 Jun 2018 19:48:03 +0000 (14:48 -0500)]
pvscan: autoactivate without lvmetad

When lvmetad is not used, use temporary files to record
which PVs have appeared.  Use these temp files to determine
when a VG is complete, to trigger autoactivation.

This change allows us to remove lvmetad while keeping the
same autoactivation behavior that lvmetad provides.

The temp files are created in /run/lvm/pvs_online/ and are
named for the PVID of the PV.  The files contain the
major:minor of the device the PV was read from.

e.g. if VG foo has dev1 and dev2, then:

. pvscan --cache -aay dev1
  reads vg metadata from dev1
  creates /run/lvm/pvs_online/<pvid-of-dev1>
  checks if all vg->pvs are online: no

. pvscan --cache -aay dev2
  reads vg metadata from dev2
  creates /run/lvm/pvs_online/<pvid-of-dev2>
  checks if all vg->pvs are online: yes
  autoactivates vg

A 'pvscan --cache dev' (without -aay) still records that
dev is online.

A 'pvscan --cache --major X --minor Y' after a device is
gone will remove the temp file for it.

A 'pvscan --cache [-aay]' (no devs) resets the state of
temp files by removing them all, then scanning all devs
and creating temp files for PVs that are found.

If no online files exist, the first pvscan --cache scans
all devs and creates temp files for any PVs found.

The scope of the temp files is only pvscan, and they are only
used for pvscan-based autoactivation.  No other commands are
concerned with or aware of these temp files.  When lvm creates
or removes PVs, no attempt is made to update the temp files.

6 years agotests: initial vdo tests
Zdenek Kabelac [Sun, 24 Jun 2018 18:06:59 +0000 (20:06 +0200)]
tests: initial vdo tests

Basic functionality of lvcreate, lvchange.

6 years agodmeventd: lvm vdo support
Zdenek Kabelac [Mon, 9 Jul 2018 09:43:12 +0000 (11:43 +0200)]
dmeventd: lvm vdo support

6 years agovgchange: vdo support
Zdenek Kabelac [Sun, 1 Jul 2018 10:03:23 +0000 (12:03 +0200)]
vgchange: vdo support

Support vgchange usage with VDO segtype.
Also changing extent size need small update for vdo virtual extent.

TODO: API needs enhancements so it's not about adding ifs() everywhere.

6 years agolvconvert: support to convert lv into vdopool
Zdenek Kabelac [Sat, 30 Jun 2018 21:38:49 +0000 (23:38 +0200)]
lvconvert: support to convert lv into vdopool

Support:

lvconvert --type vdo-pool  vg/lv

lvconvert --vdopool  vg/lv   --virtualsize 10G

6 years agolvchange: vdo support compression deduplication change
Zdenek Kabelac [Mon, 2 Jul 2018 08:51:45 +0000 (10:51 +0200)]
lvchange: vdo support compression deduplication change

Add basic support for changing compression and deduplication state
of a VDO pool volume.

Allowing to access it also via top-level VDO volume.

6 years agolvcreate: vdo support
Zdenek Kabelac [Fri, 29 Jun 2018 11:16:08 +0000 (13:16 +0200)]
lvcreate: vdo support

Supports basic:  'lvcreate --vdo -LXXXG -VYYYG vg/vdoname -n lvname'
Allows to create basic VDO pool volume and virtual VDO volume.

6 years agolvresize: vdo support
Zdenek Kabelac [Mon, 2 Jul 2018 08:54:56 +0000 (10:54 +0200)]
lvresize: vdo support

Unsupported ATM.

Wait till VDO kernel target starts to use updated resize sequence,
LOAD, SUSPEND, RESUME.

6 years agoargs: new options for vdo segment
Zdenek Kabelac [Fri, 29 Jun 2018 09:31:08 +0000 (11:31 +0200)]
args: new options for vdo segment

Introduce new options usable with commands supporting VDO:
 --compression, --deduplication, --vdo, --vdopool

6 years agotoollib: support new command rules queries
Zdenek Kabelac [Mon, 2 Jul 2018 08:50:41 +0000 (10:50 +0200)]
toollib: support new command rules queries

Add: LV_vdo, LV_vdopool, LV_vdopooldata

6 years agovdo: data percentage
Zdenek Kabelac [Wed, 4 Jul 2018 21:17:38 +0000 (23:17 +0200)]
vdo: data percentage

Display percentage of used virtual size of vdo-pool volume.

6 years agodisplay: basic vdo segment lvdisplay and lvs support
Zdenek Kabelac [Sun, 1 Jul 2018 13:58:01 +0000 (15:58 +0200)]
display: basic vdo segment lvdisplay and lvs support

Print some basic info about vdo segment.

'lvdisplay -m' ATM shows the most.
lvs  shows usage percentage.

6 years agodev_manager: add dev_manager_vdo_pool_status
Zdenek Kabelac [Fri, 29 Jun 2018 09:15:54 +0000 (11:15 +0200)]
dev_manager: add dev_manager_vdo_pool_status

6 years agolv_manip: layout and role support for vdo segment
Zdenek Kabelac [Fri, 29 Jun 2018 09:18:44 +0000 (11:18 +0200)]
lv_manip: layout and role support for vdo segment

6 years agocheck_lv_segment: internal vdo segment validation
Zdenek Kabelac [Fri, 29 Jun 2018 09:13:43 +0000 (11:13 +0200)]
check_lv_segment: internal vdo segment validation

Check if settings for vdo segment are correct.

6 years agovdo_manip: parsing status of VDO device
Zdenek Kabelac [Mon, 2 Jul 2018 15:20:30 +0000 (17:20 +0200)]
vdo_manip: parsing status of VDO device

6 years agovdo: support functions to map enums to string names
Zdenek Kabelac [Mon, 2 Jul 2018 19:58:18 +0000 (21:58 +0200)]
vdo: support functions to map enums to string names

Translate VDO enums to printable strings.

6 years agovdo: component activation of VDO data LV
Zdenek Kabelac [Tue, 3 Jul 2018 09:05:50 +0000 (11:05 +0200)]
vdo: component activation of VDO data LV

Allow component activation of VDO data LV.

6 years agovdo: with created names use vpool
Zdenek Kabelac [Tue, 3 Jul 2018 18:14:48 +0000 (20:14 +0200)]
vdo: with created names use vpool

When user create vdo-pool - use different automatic name.
So unlike with traditional LVs using  lvol0, lvol1
use vpool0, vpool1...

TODO: apply similar for thin-pool  & cache-pool...

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