]> sourceware.org Git - lvm2.git/log
lvm2.git
5 years agoallow activating known LVs when other LVs have unknown segtypes
David Teigland [Mon, 14 Oct 2019 20:51:35 +0000 (15:51 -0500)]
allow activating known LVs when other LVs have unknown segtypes

When a VG contains some LVs with unknown segtypes, the user
should still be allowed to activate other LVs in the VG that
are understood.

$ lvs foo
  WARNING: Unrecognised flag CACHE_USES_CACHEVOL in segment type cache+CACHE_USES_CACHEVOL.
  WARNING: Unrecognised segment type cache+CACHE_USES_CACHEVOL
  LV    VG  Attr       LSize
  lvol0 foo -wi-------  4.00m
  other foo vwi---u--- 48.00m

$ lvcreate -l1 foo
  WARNING: Unrecognised flag CACHE_USES_CACHEVOL in segment type cache+CACHE_USES_CACHEVOL.
  WARNING: Unrecognised segment type cache+CACHE_USES_CACHEVOL
  Cannot change VG foo with unknown segments in it!
  Cannot process volume group foo

$ lvchange -ay foo/lvol0
  WARNING: Unrecognised flag CACHE_USES_CACHEVOL in segment type cache+CACHE_USES_CACHEVOL.
  WARNING: Unrecognised segment type cache+CACHE_USES_CACHEVOL

$ lvchange -ay foo/other
  WARNING: Unrecognised flag CACHE_USES_CACHEVOL in segment type cache+CACHE_USES_CACHEVOL.
  WARNING: Unrecognised segment type cache+CACHE_USES_CACHEVOL
  Refusing activation of LV foo/other containing an unrecognised segment.

$ lvs foo
  WARNING: Unrecognised flag CACHE_USES_CACHEVOL in segment type cache+CACHE_USES_CACHEVOL.
  WARNING: Unrecognised segment type cache+CACHE_USES_CACHEVOL
  LV    VG  Attr       LSize
  lvol0 foo -wi-a-----  4.00m
  other foo vwi---u--- 48.00m

5 years agocache: change cachevol flags for backward compat
David Teigland [Mon, 14 Oct 2019 20:32:13 +0000 (15:32 -0500)]
cache: change cachevol flags for backward compat

A cachevol LV had the CACHE_VOL status flag in metadata,
and the cache LV using it had no new flag.  This caused
problems if the new metadata was used by an old version
of lvm.  An old version of lvm would have two problems
processing the new metadata:

. The old lvm would return an error when reading the VG
  metadata when it saw the unknown CACHE_VOL status flag.

. The old lvm would return an error when reading the VG
  metadata because it would not find an expected cache pool
  attached to the cache LV (since the cache LV had a
  cachevol attached instead.)

Change the use of flags:

. Change the CACHE_VOL flag to be a COMPATIBLE flag (instead
  of a STATUS flag) so that old versions will not fail when
  they see it.

. When a cache LV is using a cachevol, the cache LV gets
  a new SEGTYPE flag CACHE_USES_CACHEVOL.  This flag is
  appended to the segtype name, so that old lvm versions
  will fail to use the LV because of an unknown segtype,
  as opposed to failing to read the VG.

5 years agotests: cvol
Zdenek Kabelac [Sat, 12 Oct 2019 22:02:58 +0000 (00:02 +0200)]
tests: cvol

5 years agotests: drop manipulation with 'internal' LV
Zdenek Kabelac [Sat, 12 Oct 2019 21:56:55 +0000 (23:56 +0200)]
tests: drop manipulation with 'internal' LV

Cachevol LV is 'internal' LV and should not be 'maintained'  this way
while it's being used as cachevol.

5 years agocachevol: drop no longer needed functions
Zdenek Kabelac [Mon, 14 Oct 2019 08:23:51 +0000 (10:23 +0200)]
cachevol: drop no longer needed functions

Code is no longer used/needed.

5 years agocachevol: use lv_cache_remove
Zdenek Kabelac [Mon, 14 Oct 2019 08:25:31 +0000 (10:25 +0200)]
cachevol: use lv_cache_remove

Use same routine for dropping cache.

5 years agocachevol: improve manipulation with dm tree
Zdenek Kabelac [Mon, 14 Oct 2019 08:31:38 +0000 (10:31 +0200)]
cachevol: improve manipulation with dm tree

Enhance activation of cached devices using cachevol.
Correctly instatiace  cachevol -cdata & -cmeta devices with
'-' in name (as they are only layered devices).
Code is also a bit more compacted (although still not ideal,
as the usage of extra UUIDs stored in metadata is troublesome
and will be repaired later).

NOTE: this patch my brink potentially minor incompatiblity for 'runtime' upgrade

5 years agocachevol: put _cvol as protected suffix.
Zdenek Kabelac [Mon, 7 Oct 2019 12:58:26 +0000 (14:58 +0200)]
cachevol: put _cvol as protected suffix.

This revert "drop cvol dm uuid suffix for cachevol LVs"
commit 5191057d9df3e5b92db3f80c412b99aea1074358.
Start using -cvol for  DM UUID.

5 years agocachevol: use writethrough for partial removal
Zdenek Kabelac [Sat, 12 Oct 2019 21:38:56 +0000 (23:38 +0200)]
cachevol: use writethrough for partial removal

Instead of using 'noflush' option, switch cache_mode into WRITETHROUGH
which does not require flushing, when user confirmed he does not
want flushing for WRITEBACK (because of (partially) missing caching PV)

5 years agocachevol: drop LV_CACHE_VOL on detach automatically
Zdenek Kabelac [Mon, 14 Oct 2019 08:45:10 +0000 (10:45 +0200)]
cachevol: drop LV_CACHE_VOL on detach automatically

Move dropping of cachevol flag into detach function.
TODO: this flag should be internal to lvm2.

5 years agocachevol: rename converted LV to _cvol
Zdenek Kabelac [Sat, 12 Oct 2019 21:37:17 +0000 (23:37 +0200)]
cachevol: rename converted LV to _cvol

When converting existing public LV to internally used
'CacheVol' LV - rename LV to LV_cvol.

When splitting CacheVol, remove _cvol suffix.

5 years agocachevol: wipe 'normal' device
Zdenek Kabelac [Fri, 11 Oct 2019 13:27:41 +0000 (15:27 +0200)]
cachevol: wipe 'normal' device

For wiping we activate and clear 'regular' devices,
since in case of whole process interuption (i.e. kill -9)
we leave metadata & DM table and workable state all the time.

5 years agocache: enhance removal function to work with cvol
Zdenek Kabelac [Mon, 14 Oct 2019 08:43:04 +0000 (10:43 +0200)]
cache: enhance removal function to work with cvol

To keep things simple, use same code for all cache removal functions,
not just for cachepools but also cachevols.

5 years agocache: correct condition
Zdenek Kabelac [Sat, 12 Oct 2019 21:40:58 +0000 (23:40 +0200)]
cache: correct condition

5 years agocache: recognize cachevol with lv_cache_remove
Zdenek Kabelac [Sat, 12 Oct 2019 21:40:15 +0000 (23:40 +0200)]
cache: recognize cachevol with lv_cache_remove

5 years agocache: reload only when switched to cleaner policy
Zdenek Kabelac [Sat, 12 Oct 2019 09:12:11 +0000 (11:12 +0200)]
cache: reload only when switched to cleaner policy

Reload cache target only when lvm2 reload table with
cache with clearer policy.

5 years agolvconvert: use struct initializer
Zdenek Kabelac [Mon, 14 Oct 2019 09:53:59 +0000 (11:53 +0200)]
lvconvert: use struct initializer

Always good to keep rest of structure initilized with zeros.

5 years agotests: disable caching of VDO
Zdenek Kabelac [Wed, 9 Oct 2019 13:27:44 +0000 (15:27 +0200)]
tests: disable caching of VDO

Disable until vdo gets fixed, then require fixed version.
Otherwise test kills kernel

5 years agolvconvert: fix return value when zeroing fails
Zdenek Kabelac [Mon, 14 Oct 2019 09:54:49 +0000 (11:54 +0200)]
lvconvert: fix return value when zeroing fails

Use correct error return code for fail path.

5 years agovgck: let updatemetadata repair mismatched metadata
David Teigland [Tue, 8 Oct 2019 19:44:24 +0000 (14:44 -0500)]
vgck: let updatemetadata repair mismatched metadata

Let vgck --updatemetadata repair cases where different mdas
hold indepedently valid but unmatching copies of the metadata,
i.e. different text metadata checksums or text metadata sizes.

5 years agovgck: fix updatemetadata writing different descriptions
David Teigland [Tue, 8 Oct 2019 19:36:55 +0000 (14:36 -0500)]
vgck: fix updatemetadata writing different descriptions

vgck --updatemetadata would write the same correct
metadata to good mdas, and then to bad mdas, but the
sequence of vg_write/vg_commit calls betwen good and
bad mdas could cause a different description field to
be generated for good/bad mdas. (The description field
describing the command was recently included in the
ondisk copy of the metadata text.)

5 years agopvmove: remove some cmirror related code
David Teigland [Fri, 11 Oct 2019 16:12:11 +0000 (11:12 -0500)]
pvmove: remove some cmirror related code

which is no longer used

5 years agotest: Minimize data written by metadata-zero-space
Marian Csontos [Wed, 9 Oct 2019 13:11:03 +0000 (15:11 +0200)]
test: Minimize data written by metadata-zero-space

The test is checking only 2 megabytes, but is rewriting much more. Bad
for limited ramdisk.

5 years agoman: lvmcache note dm-cache block size issue
David Teigland [Tue, 8 Oct 2019 14:59:38 +0000 (09:59 -0500)]
man: lvmcache note dm-cache block size issue

5 years agovgremove: remove internal lvmlock LV
David Teigland [Fri, 4 Oct 2019 17:01:30 +0000 (12:01 -0500)]
vgremove: remove internal lvmlock LV

If a VG is forcibly changed from lock_type sanlock to
lock_type none, the internal lvmlock LV is left behind.
If that LV is not removed before vgremove is run on the
VG, then an internal check will be triggered by the
hidden lvmlock LV.  So, check for and remove a left over
lvmlock LV during vgremove.

5 years agotests: improve lib wipefs_a
David Teigland [Fri, 4 Oct 2019 16:04:44 +0000 (11:04 -0500)]
tests: improve lib wipefs_a

in wipefs fallback, use limited dd and mdadm --zero-superblock
to avoid writing to entire dev in case dev space is provisioned
on write.

5 years agoWHATS_NEW: update
Zdenek Kabelac [Fri, 4 Oct 2019 15:30:52 +0000 (17:30 +0200)]
WHATS_NEW: update

5 years agovdo: add lvs fields to query vdo volume properties
Zdenek Kabelac [Fri, 4 Oct 2019 15:02:20 +0000 (17:02 +0200)]
vdo: add lvs fields to query vdo volume properties

Add lots of vdo fields:

    vdo_operating_mode       - For vdo pools, its current operating mode.
    vdo_compression_state    - For vdo pools, whether compression is running.
    vdo_index_state          - For vdo pools, state of index for deduplication.
    vdo_used_size            - For vdo pools, currently used space.
    vdo_saving_percent       - For vdo pools, percentage of saved space.
    vdo_compression          - Set for compressed LV (vdopool).
    vdo_deduplication        - Set for deduplicated LV (vdopool).
    vdo_use_metadata_hints   - Use REQ_SYNC for writes (vdopool).
    vdo_minimum_io_size      - Minimum acceptable IO size (vdopool).
    vdo_block_map_cache_size - Allocated caching size (vdopool).
    vdo_block_map_era_length - Speed of cache writes (vdopool).
    vdo_use_sparse_index     - Sparse indexing (vdopool).
    vdo_index_memory_size    - Allocated indexing memory (vdopool).
    vdo_slab_size            - Increment size for growing (vdopool).
    vdo_ack_threads          - Acknowledging threads (vdopool).
    vdo_bio_threads          - IO submitting threads (vdopool).
    vdo_bio_rotation         - IO enqueue (vdopool).
    vdo_cpu_threads          - CPU threads for compression and hashing (vdopool).
    vdo_hash_zone_threads    - Threads for subdivide parts (vdopool).
    vdo_logical_threads      - Logical threads for subdivide parts (vdopool).
    vdo_physical_threads     - Physical threads for subdivide parts (vdopool).
    vdo_max_discard          - Maximum discard size volume can recieve (vdopool).
    vdo_write_policy         - Specified write policy (vdopool).
    vdo_header_size          - Header size at front of vdopool.

Previously only 'lvdisplay -m' was exposing them.

5 years agovdo: remember configure VDO write policy in metadata
Zdenek Kabelac [Fri, 4 Oct 2019 13:09:11 +0000 (15:09 +0200)]
vdo: remember configure VDO write policy in metadata

Store write_policy in vdopool metadata.
In case it's not present 'auto' is selected.

5 years agovdo: field update
Zdenek Kabelac [Mon, 30 Sep 2019 13:29:01 +0000 (15:29 +0200)]
vdo: field update

5 years agovdo: introduce get_vdo_write_policy_name
Zdenek Kabelac [Fri, 4 Oct 2019 12:59:00 +0000 (14:59 +0200)]
vdo: introduce get_vdo_write_policy_name

5 years agovdo: correct internal API for set_vdo_write_policy
Zdenek Kabelac [Fri, 4 Oct 2019 12:59:25 +0000 (14:59 +0200)]
vdo: correct internal API for set_vdo_write_policy

This is 'setting' function.

5 years agovdo: keep minimum_io_size in sectors
Zdenek Kabelac [Fri, 4 Oct 2019 12:58:18 +0000 (14:58 +0200)]
vdo: keep minimum_io_size in sectors

5 years agovdo: raise VDO default bio threads to 4
Zdenek Kabelac [Fri, 4 Oct 2019 12:52:40 +0000 (14:52 +0200)]
vdo: raise VDO default bio threads to 4

Since 'vdo create' tends to use this setting,
update lvm2 to provide same default.

5 years agodisplay: try to show status for inactive vdopool
Zdenek Kabelac [Fri, 4 Oct 2019 14:57:54 +0000 (16:57 +0200)]
display: try to show status for inactive vdopool

Since we now support activation of 'vdo' volume
without explicit activation of 'vdopool' it's now possible
to have active layer vdopool (-vpool) volume and
having vdopool itself inactive - yet still in this
case we can show available stats for this volume.
But we need to show correct activation status and other
standard info.

5 years agoresize: continue change for getting vdo status before resize
Zdenek Kabelac [Wed, 2 Oct 2019 12:50:12 +0000 (14:50 +0200)]
resize: continue change for getting vdo status before resize

Continue commit a98b77c16455ee97f5bd4b89536a3ae4efd8e009.
There needs to be error reported when status can't be obtained.

5 years agocache: report for succesful status
Zdenek Kabelac [Tue, 1 Oct 2019 11:31:36 +0000 (13:31 +0200)]
cache: report for succesful status

5 years agodm: introduce DM_GET_TARGET_VERSION
Mikulas Patocka [Mon, 16 Sep 2019 09:58:10 +0000 (05:58 -0400)]
dm: introduce DM_GET_TARGET_VERSION

Adds support for the DM_GET_TARGET_VERSION to dmsetup.
It introduces a new comman "target-version" that will accept list
of targets and print their version.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
5 years agocmirrord: deamon links libdm
Zdenek Kabelac [Fri, 4 Oct 2019 15:23:34 +0000 (17:23 +0200)]
cmirrord: deamon links libdm

Correct included header files for this outdated tool since
it's linked with libdm, it need to use header files from this dir.

5 years agolvmlockd: set failure flag for test mode
David Teigland [Fri, 4 Oct 2019 15:07:24 +0000 (10:07 -0500)]
lvmlockd: set failure flag for test mode

Set a failure flag when vg_read returns an error
for test mode.  The caller can segfault if there's
an error with no flag set.

5 years agospec: Fix lvm2-activation-generator man page handling
Marian Csontos [Fri, 4 Oct 2019 14:29:38 +0000 (16:29 +0200)]
spec: Fix lvm2-activation-generator man page handling

lvm2-activation-generator is not installed when systemd is not in the
system.

5 years agotests: add wipefs wrapper
David Teigland [Wed, 2 Oct 2019 19:11:08 +0000 (14:11 -0500)]
tests: add wipefs wrapper

which falls back to using dd on old systems without
the wipefs command

5 years agotests: update to md dev name
David Teigland [Wed, 2 Oct 2019 17:51:17 +0000 (12:51 -0500)]
tests: update to md dev name

Use /dev/md33 instead of /dev/md0 to reduce chances of
conflicting with an existing name.

Only call 'mdadm --stop /dev/md33' for cleanup and don't
use 'mdadm --stop --scan' to avoid stopping other md devs.

5 years agotest: increase size of raid10 LV allowing tests to succeed on fast storage
Heinz Mauelshagen [Wed, 2 Oct 2019 12:59:17 +0000 (14:59 +0200)]
test: increase size of raid10 LV allowing tests to succeed on fast storage

Also add health char check.

5 years agotest: add RAID lvextend resynchronization test
Heinz Mauelshagen [Wed, 2 Oct 2019 12:54:00 +0000 (14:54 +0200)]
test: add RAID lvextend resynchronization test

Due to a dm-raid target flaw fixed in target version 1.15.0,
extents of raid sets don't get resynchronized when new MD bitmp
pages have to be allocated due to the extension.

Introduce lvextend-raid.sh to test this flaw.

Related: rhbz1671964

5 years agotest: add checks for not 100% sync ratio after initiation of check/repair
Heinz Mauelshagen [Wed, 2 Oct 2019 12:48:53 +0000 (14:48 +0200)]
test: add checks for not 100% sync ratio after initiation of check/repair

Related: rhbz1640630

5 years agopvck: handle PVs with zero metadata copies
David Teigland [Mon, 30 Sep 2019 21:20:17 +0000 (16:20 -0500)]
pvck: handle PVs with zero metadata copies

5 years agotests: update duplicate md tests
David Teigland [Fri, 27 Sep 2019 19:18:35 +0000 (14:18 -0500)]
tests: update duplicate md tests

adjust to recent improvements in duplicate handling

5 years agoscan: use PV device name hint for choosing duplicate PV
David Teigland [Fri, 27 Sep 2019 16:34:55 +0000 (11:34 -0500)]
scan: use PV device name hint for choosing duplicate PV

Prefer a device if its name matches the PV device name hint.

5 years agoscan: use PV size for choosing duplicate PV
David Teigland [Fri, 27 Sep 2019 16:11:57 +0000 (11:11 -0500)]
scan: use PV size for choosing duplicate PV

Prefer a device if it matches the size of the PV.

5 years agoscan: add PV summary info to lvmcache
David Teigland [Thu, 26 Sep 2019 16:27:38 +0000 (11:27 -0500)]
scan: add PV summary info to lvmcache

Expand the lvmcache info that is saved by the scan to
include PV info from the metadata.

5 years agopvscan: use quick activation only with matching PV device names
David Teigland [Wed, 4 Sep 2019 20:59:49 +0000 (15:59 -0500)]
pvscan: use quick activation only with matching PV device names

When the PV device names in the VG metadata do not match the
current PV device names seen on the system, do not use the
optimized activation function (that avoids extra device scanning.)

When the device names do not match, it's a clue that there could
be duplicate PVs, in which case we want to scan all devicess to
find any duplicates and stop the activation if found.

This does not prevent autoactivating a VG from the incorrect
duplicate PV, because the incorrect duplicate may appear by itself
first.  At that point its duplicate PV does not exist to be seen.
(A future enhancement could use the WWID to strengthen this
detection.)

5 years agometadata: import device name hint from metadata
David Teigland [Wed, 4 Sep 2019 19:13:14 +0000 (14:13 -0500)]
metadata: import device name hint from metadata

Start by using it in a comment for a missing PV.

5 years agometadata: add args to metadata import functions
David Teigland [Thu, 26 Sep 2019 16:50:51 +0000 (11:50 -0500)]
metadata: add args to metadata import functions

instead of getting them through fid arg
no functional change

5 years agodmsetup: do not treat no groups as an error in dmstats list --group
Bryn M. Reeves [Mon, 30 Sep 2019 16:10:05 +0000 (17:10 +0100)]
dmsetup: do not treat no groups as an error in dmstats list --group

Analogous to the case of a device with no regions, it is not an
error to attempt to list the stats groups on a device that has no
configured groups: just return success and continue.

5 years agovdo: restore monitoring of vdo pool
Zdenek Kabelac [Mon, 30 Sep 2019 11:28:20 +0000 (13:28 +0200)]
vdo: restore monitoring of vdo pool

Switch to -vpool layered name needs to monitor proper device.

5 years agovdo: properly check percentage for resize
Zdenek Kabelac [Mon, 30 Sep 2019 11:25:42 +0000 (13:25 +0200)]
vdo: properly check percentage for resize

Avoid checking 'lv_is_active()' since special LV types does this
validation anyway what calling  _percent() function  and call it
ONLY when none of special types is queried.

This restores support for VDO resize (as with support for
separate VDO pool activation, plain query for lv_is_active()
is not working in this case).

5 years agovdo: deactivate forgotten vdo pool
Zdenek Kabelac [Mon, 30 Sep 2019 11:22:42 +0000 (13:22 +0200)]
vdo: deactivate forgotten vdo pool

If the linear mapping is lost (for whatever reason, i.e.
test suite forcible  'dmsetup remove' linear LV,
lvm2 had hard times figuring out how to deactivate such DM table.

So add function which is in case inactive VDO pool LV checks if
the pool is actually still active (-vpool device present) and
it has open count == 0.  In this case deactivation is allowed
to continue and cleanup DM table.

5 years agotests: mdadm stop in test cleanup
David Teigland [Fri, 27 Sep 2019 17:51:34 +0000 (12:51 -0500)]
tests: mdadm stop in test cleanup

try to clear any existing md devs remaining after
a test

5 years agotests: skip md tests if system not clean
David Teigland [Fri, 27 Sep 2019 17:40:42 +0000 (12:40 -0500)]
tests: skip md tests if system not clean

5 years agotests: writecache-split check have_writecache
David Teigland [Thu, 26 Sep 2019 15:45:53 +0000 (10:45 -0500)]
tests: writecache-split check have_writecache

5 years agospec: enable writecache
Marian Csontos [Wed, 25 Sep 2019 06:39:56 +0000 (08:39 +0200)]
spec: enable writecache

5 years agobuild: make generate
Marian Csontos [Wed, 25 Sep 2019 06:27:49 +0000 (08:27 +0200)]
build: make generate

5 years agolvconvert: enable --uncache with dm-writecache cachevol
David Teigland [Tue, 24 Sep 2019 20:49:21 +0000 (15:49 -0500)]
lvconvert: enable --uncache with dm-writecache cachevol

splitcache followed by an automatic lvremove of
the cachevol LV

5 years agowritecache: allow removing LV with attached writecache
David Teigland [Tue, 24 Sep 2019 20:33:09 +0000 (15:33 -0500)]
writecache: allow removing LV with attached writecache

5 years agowritecache: move code into new file
David Teigland [Tue, 24 Sep 2019 20:28:02 +0000 (15:28 -0500)]
writecache: move code into new file

put writecache specific code in writecache_manip.c

should be no functional change

5 years agolvremove: remove attached cachevol with removed LV
David Teigland [Tue, 24 Sep 2019 18:46:40 +0000 (13:46 -0500)]
lvremove: remove attached cachevol with removed LV

When an LV is removed that has an attached cachevol,
also remove the cachevol LV.

5 years agotests: update cache-single-split
David Teigland [Tue, 24 Sep 2019 18:17:40 +0000 (13:17 -0500)]
tests: update cache-single-split

add some uncache commands

5 years agolvconvert: enable --uncache with dm-cache cachevol
David Teigland [Tue, 24 Sep 2019 16:57:44 +0000 (11:57 -0500)]
lvconvert: enable --uncache with dm-cache cachevol

splitcache followed by an automatic lvremove of
the cachevol LV

5 years agolvconvert: separate splitcache and uncache functions
David Teigland [Tue, 24 Sep 2019 16:28:30 +0000 (11:28 -0500)]
lvconvert: separate splitcache and uncache functions

Reorg code so there are separate functions for splitcache
and uncache for both cachepool and cachevol.  Should be no
functional change.

5 years agotests: add writecache-split
David Teigland [Mon, 23 Sep 2019 19:37:46 +0000 (14:37 -0500)]
tests: add writecache-split

5 years agolvconvert: allow --cache shortcut for --type cache with cachevol
David Teigland [Mon, 23 Sep 2019 16:07:12 +0000 (11:07 -0500)]
lvconvert: allow --cache shortcut for --type cache with cachevol

5 years agotests: update cache-single-split
David Teigland [Mon, 23 Sep 2019 19:20:01 +0000 (14:20 -0500)]
tests: update cache-single-split

enable splitting while LV is active which works
again since the cvol suffix was dropped.

5 years agodrop cvol dm uuid suffix for cachevol LVs
David Teigland [Mon, 23 Sep 2019 19:10:56 +0000 (14:10 -0500)]
drop cvol dm uuid suffix for cachevol LVs

The "-cvol" suffix on the uuid is interfering with
activation code, so drop the suffix for now.

5 years agotests: update cache-single-split
David Teigland [Fri, 20 Sep 2019 21:33:35 +0000 (16:33 -0500)]
tests: update cache-single-split

the new use of uuid suffixes on internal dm devs
has impacted splitting when an LV is active,
so temporarily disable that until fixed.

5 years agowritecache: display layout and role fields
David Teigland [Fri, 20 Sep 2019 19:54:00 +0000 (14:54 -0500)]
writecache: display layout and role fields

5 years agowritecache: use dm suffixes and lv attributes
David Teigland [Fri, 20 Sep 2019 19:04:18 +0000 (14:04 -0500)]
writecache: use dm suffixes and lv attributes

- use internal CACHE_VOL flag on cachevol LV
- add suffixes to dm uuids for internal LVs
- display appropriate letters in the LV attr field
- display writecache's cachevol in lvs output

5 years agodmeventd: avoid bail out preventing repair in raid plugin but keep message
Heinz Mauelshagen [Fri, 20 Sep 2019 15:35:35 +0000 (17:35 +0200)]
dmeventd: avoid bail out preventing repair in raid plugin but keep message

Followup patch mentioned in previous commit fe577f84cbf6bd7be76b457c9d54d0e54e57f93d.

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 but keep the informal message
  "waiting for resynchronization"  and let lvconvert carry out its
  pre-repair checks and optionally carry out a repair attempt.

Related: https://bugzilla.redhat.com/show_bug.cgi?id=1751887
Related: 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 agoRevert "dmeventd: avoid bail out preventing repair in raid plugin"
Heinz Mauelshagen [Fri, 20 Sep 2019 15:26:36 +0000 (17:26 +0200)]
Revert "dmeventd: avoid bail out preventing repair in raid plugin"

This reverts commit ad560a286a0b5d08086324e6194b060c136e9353.

The reverted patch also removed the warning which we realized we need
to keep as valuable process information (see related bugzilla below).

In a followup patch, we'll keep the message and avoid bailing out thus
always allowing lvconvert to try repairing if 'allocate' fault policy set.

Related: https://bugzilla.redhat.com/show_bug.cgi?id=1751887

5 years agotests: add cache-single-split
David Teigland [Wed, 18 Sep 2019 20:14:22 +0000 (15:14 -0500)]
tests: add cache-single-split

5 years agolvconvert: detaching cachevol with missing PVs
David Teigland [Tue, 17 Sep 2019 21:32:34 +0000 (16:32 -0500)]
lvconvert: detaching cachevol with missing PVs

. For dm-cache in writethrough, always allow splitcache,
  whether the cache is missing PVs or not.

. For dm-cache in writeback, if the cache is missing PVs,
  allow splitcache with force and yes.

. For dm-writecache, if the cache is missing PVs,
  allow splitcache with force and yes.

5 years agolvchange: allow activating cachevol
David Teigland [Thu, 19 Sep 2019 21:18:47 +0000 (16:18 -0500)]
lvchange: allow activating cachevol

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

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