]> sourceware.org Git - lvm2.git/log
lvm2.git
7 years agolvmdbustest.py: Validate PV device
Tony Asleson [Wed, 1 Mar 2017 23:24:08 +0000 (17:24 -0600)]
lvmdbustest.py: Validate PV device

Validate device lookup after PV creation.

7 years agolvmdbustest.py: Re-name validation function
Tony Asleson [Wed, 1 Mar 2017 23:22:32 +0000 (17:22 -0600)]
lvmdbustest.py: Re-name validation function

Make this name generic as we can use for different types.

7 years agolvmdbustest.py: Verify lookups work immediately after vg create
Tony Asleson [Wed, 1 Mar 2017 17:09:51 +0000 (11:09 -0600)]
lvmdbustest.py: Verify lookups work immediately after vg create

7 years agolvmdbustest.py: Use _lookup function
Tony Asleson [Wed, 1 Mar 2017 15:35:01 +0000 (09:35 -0600)]
lvmdbustest.py: Use _lookup function

Be consistent in using this helper function for dbus object lookups.

7 years agoman: fix typo
David Teigland [Wed, 1 Mar 2017 22:59:17 +0000 (16:59 -0600)]
man: fix typo

7 years agocommands: tweak some descriptions
David Teigland [Wed, 1 Mar 2017 22:50:27 +0000 (16:50 -0600)]
commands: tweak some descriptions

7 years agolvconvert: add new reporting fields for reshaping
Heinz Mauelshagen [Wed, 1 Mar 2017 18:30:52 +0000 (19:30 +0100)]
lvconvert: add new reporting fields for reshaping

Commit 48778bc5038f introduced new RAID reshaping related report fields.

The inclusioon of segtype.h in properties.c isn't mandatory, remove it.

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agolvconvert: libdm RAID API compatibility versioning; remove new function
Heinz Mauelshagen [Wed, 1 Mar 2017 17:58:48 +0000 (18:58 +0100)]
lvconvert: libdm RAID API compatibility versioning; remove new function

Commit 80a6de616a19 versioned the dm_tree_node_add_raid_target_with_params()
and dm_tree_node_add_raid_target() APIs for compatibility reasons.

There's no user of the latter function, remove it.

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agolvconvert: add new reporting fields for reshaping
Heinz Mauelshagen [Wed, 1 Mar 2017 17:50:35 +0000 (18:50 +0100)]
lvconvert: add new reporting fields for reshaping

During an ongoing reshape, the MD kernel runtime reads stripes relative
to data_offset and starts storing the reshaped stripes (with new raid
layout and/or new stripesize  and/or new number of stripes) relative
to new_data_offset.  This is to avoid writing over any data in place
which is non-atomic by nature and thus be recoverable without data loss
in the transition.  MD uses the term out-of-place reshaping for it.

There's 2 other areas we don't have report capability for:
- number of data stripes vs. total stripes
  (e.g. raid6 with 7 stripes toal has 5 data stripes)
- number of (rotating) parity/syndrome chunks
  (e.g. raid6 with 7 stripes toal has 2 parity chunks; one
   per stripe for P-Syndrome and another one for Q-Syndrome)

Thus, add the following reportable keys:

- reshape_len      (in current units)
- reshape_len_le   (in logical extents)
- data_offset      (in sectors)
- new_data_offset  (     "    )
- data_stripes
- parity_chunks

Enhance lvchange-raid.sh, lvconvert-raid-reshape-linear_to_striped.sh,
lvconvert-raid-reshape-striped_to_linear.sh, lvconvert-raid-reshape.sh
and lvconvert-raid-takeover.sh to make use of new keys.

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agoman: put some commands into advanced usage section
David Teigland [Tue, 28 Feb 2017 23:04:46 +0000 (17:04 -0600)]
man: put some commands into advanced usage section

and separate commands with --

7 years agocommands: SECONDARY flag changes in cmd defs
David Teigland [Tue, 28 Feb 2017 22:15:11 +0000 (16:15 -0600)]
commands: SECONDARY flag changes in cmd defs

Add/remove the SECONDARY_SYNTAX flag to cmd defs.
cmd defs with this flag will be listed under the
ADVANCED USAGE man page section, so that the main
USAGE section contains the most common commands
without distraction.

- When multiple cmd defs do the same thing, one variant
  can be displayed in the first list.
- Very advanced, unusual or uncommon commands should be
  in the second list.

7 years agoraid: rework _raid_target_present()
Heinz Mauelshagen [Wed, 1 Mar 2017 13:52:23 +0000 (14:52 +0100)]
raid: rework _raid_target_present()

Recently added check for reshaping in this function called for
a cleanup to avoid proliferating it with more explicit conditionals.

Base the reshaping check on the given _features array.

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agolvconvert: add missing reshape_len initialization
Heinz Mauelshagen [Tue, 28 Feb 2017 22:29:03 +0000 (23:29 +0100)]
lvconvert: add missing reshape_len initialization

An initialization was missing when converting striped to raid0(_meta)
causing unitialized reshape_len in the new component LVs first segment.

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agolvconvert: adjust mininum region size check
Heinz Mauelshagen [Tue, 28 Feb 2017 22:09:30 +0000 (23:09 +0100)]
lvconvert: adjust mininum region size check

The imposed minimum region size can cause rejection on
disk removing reshapes.  Lower it to avoid that.

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agohelp: print full usage for lvm help all
David Teigland [Tue, 28 Feb 2017 21:57:30 +0000 (15:57 -0600)]
help: print full usage for lvm help all

7 years agolvconvert: adjust reshaping check to target version
Heinz Mauelshagen [Tue, 28 Feb 2017 21:46:25 +0000 (22:46 +0100)]
lvconvert: adjust reshaping check to target version

https://git.kernel.org/cgit/linux/kernel/git/device-mapper/linux-dm.git/commit/?h=dm-4.11&id=b08c6076782
sets the dm-raid target version to 1.10.1.

Adjust the condition to set RAID_RESHAPE_FEATURE to it.

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agolvconvert: libdm RAID API compatibility versioning
Heinz Mauelshagen [Tue, 28 Feb 2017 21:34:00 +0000 (22:34 +0100)]
lvconvert: libdm RAID API compatibility versioning

Commit 27384c52cf6a lowered the maximum number of devices
back to 64 for compatibility.

Because more members have been added to the API in
'struct dm_tree_node_raid_params *', we have to version
the public libdm RAID API to not break any existing users.

Changes:

- keep the previous 'struct dm_tree_node_raid_params' and
  dm_tree_node_add_raid_target_with_params()/dm_tree_node_add_raid_target()
  in order to expose the already released public RAID API

- introduce 'struct dm_tree_node_raid_params_v2' and additional functions
  dm_tree_node_add_raid_target_with_params_v2()/dm_tree_node_add_raid_target_v2()
  to be used by the new lvm2 lib reshape extentions

With this new API, the bitfields for rebuild/writemostly legs in
'struct dm_tree_node_raid_params_v2' can be raised to 256 bits
again (253 legs maximum supported in MD kernel).

Mind that we can limit the maximum usable number via the
DEFAULT_RAID{1}_MAX_IMAGES definition in defaults.h.

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agocommands: include lvconvert cache options as group
David Teigland [Tue, 28 Feb 2017 19:47:46 +0000 (13:47 -0600)]
commands: include lvconvert cache options as group

7 years agoman: fix syntax for PV ranges
David Teigland [Tue, 28 Feb 2017 18:22:12 +0000 (12:22 -0600)]
man: fix syntax for PV ranges

7 years agocommands: remove lvconvert raid rule
David Teigland [Mon, 27 Feb 2017 23:06:08 +0000 (17:06 -0600)]
commands: remove lvconvert raid rule

A raid0 LV also needs to be converted to other
raid levels, so this rule should be removed entirely.

7 years agoman: mention regionsize default is in lvm.conf
David Teigland [Mon, 27 Feb 2017 23:05:20 +0000 (17:05 -0600)]
man: mention regionsize default is in lvm.conf

7 years agocommands: fix lvconvert raid rule
David Teigland [Mon, 27 Feb 2017 22:33:38 +0000 (16:33 -0600)]
commands: fix lvconvert raid rule

Recent rule change was incorrect.
We want to allow 'lvconvert --type raid' on raid1 LVs.

7 years agocommands: fixes for recent raid changes
David Teigland [Fri, 24 Feb 2017 22:43:05 +0000 (16:43 -0600)]
commands: fixes for recent raid changes

- Combine the equivalent lvconvert --type raid defs.
  (Two cmd defs must be different without relying
  on LV type, which are not known at the time the
  cmd def is matched.)

- Remove unused optional options from lvconvert --stripes,
  and lvconvert --stripesize.

- Use Number for --stripes_long val type.

- Combine the cmd def for raid reshape cleanup into the
  existing start_poll cmd def (they were duplicate defs).
  Calls into the raid code from a poll opertion will be
  added.

7 years agolvconvert: limit libdm to maximum of 64 RAID devices
Heinz Mauelshagen [Mon, 27 Feb 2017 20:42:15 +0000 (21:42 +0100)]
lvconvert: limit libdm to maximum of 64 RAID devices

Commit 64a2fad5d6c6 raised the maximum number of RAID devices to 64.

Commit e2354ea344c2 introduced RAID_BITMAP_SIZE as 4 to have
256 bits (4 * 64 bit array members), thus changing the libdm API
unnecessarilly for the time being.

To not change the API, reduce RAID_BITMAP_SIZE to 1.
Remove an unneeded definition of it from libdm-common.h.

If we ever decide to raise past 64, we'll version the API.

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agogit: Upstream repository moved to sourceware.org
Alasdair G Kergon [Mon, 27 Feb 2017 13:52:51 +0000 (13:52 +0000)]
git: Upstream repository moved to sourceware.org

The fedorahosted git repository shuts down tomorrow:
  https://communityblog.fedoraproject.org/fedorahosted-sunset-2017-02-28/

Our upstream git repository has moved back to sourceware.org.
Mailing list hosting is not changing.

Gitweb:
  https://www.sourceware.org/git/?p=lvm2

Git:
  git://sourceware.org/git/lvm2.git
  ssh://sourceware.org/git/lvm2.git
  http://sourceware.org/git/lvm2.git

Example command to change the origin of a repository clone:
  Public:
    git remote set-url origin git://sourceware.org/git/lvm2.git
  Committers:
    git remote set-url origin git+ssh://sourceware.org/git/lvm2.git

7 years agoman: change option sorting in synopsis
David Teigland [Fri, 24 Feb 2017 21:11:18 +0000 (15:11 -0600)]
man: change option sorting in synopsis

The options list was sorted as:
- options with both long and short forms, alphabetically
- options with only long form, alphabetically

This was done only for the visual effect.  Change to
sort alphabetically by long opt, without regard to
short forms.

7 years agoman: add ENVIRONMENT VARIABLES section
David Teigland [Fri, 24 Feb 2017 21:05:17 +0000 (15:05 -0600)]
man: add ENVIRONMENT VARIABLES section

7 years agolvconvert: fix handling args in combining snapshots
David Teigland [Fri, 24 Feb 2017 20:17:58 +0000 (14:17 -0600)]
lvconvert: fix handling args in combining snapshots

Fixes commit 286d39ee3c433, which was correct except
for a reversed strstr.  Now uses strchr, and modifies
a copy of the name so the original argv is preserved.

7 years agoman: use Size variable for a number with unit
David Teigland [Fri, 24 Feb 2017 19:44:05 +0000 (13:44 -0600)]
man: use Size variable for a number with unit

Define a separate variable type Size to represent
a number that takes an optional UNIT.

7 years agolvconvert: impose region size constraints
Heinz Mauelshagen [Fri, 24 Feb 2017 06:27:43 +0000 (07:27 +0100)]
lvconvert: impose region size constraints

When requesting a regionsize change during conversions, check
for constraints or the command may fail in the kernel n case
the region size is too smalle or too large thus leaving any
new SubLVs behind.

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agolvconvert: fix 2 issues identified in intesting
Heinz Mauelshagen [Fri, 24 Feb 2017 04:58:45 +0000 (05:58 +0100)]
lvconvert: fix 2 issues identified in intesting

Allow regionsize on upconvert from linear:
fix related commit 2574d3257ad41 to actually work

Related: rhbz1394427

Remove setting raid5_n on conversions from raid1
as of commit 932db3db5357 because any raid5 mapping
may be requested.

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agoWHATS_NEW: add entry
Heinz Mauelshagen [Fri, 24 Feb 2017 04:24:59 +0000 (05:24 +0100)]
WHATS_NEW: add entry

7 years agolvconvert: add missed new test scripts for reshaping
Heinz Mauelshagen [Fri, 24 Feb 2017 04:16:21 +0000 (05:16 +0100)]
lvconvert: add missed new test scripts for reshaping

Add aforementioned but forgotten new test scripts
lvconvert-raid-reshape-linear_to_striped.sh,
lvconvert-raid-reshape-striped_to_linear.sh and
lvconvert-raid-reshape.sh

Those presume dm-raid target version 1.10.2
provided by a following kernel patch.

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agolvconvert: allow regionsize on upconvert from linear
Heinz Mauelshagen [Fri, 24 Feb 2017 04:00:55 +0000 (05:00 +0100)]
lvconvert: allow regionsize on upconvert from linear

Allow to provide regionsize with "lvconvert -m1 -R N " on
upconverts from linear and on N -> M raid1 leg conversions.

Resolves: rhbz1394427

7 years agolvconvert/lvcreate: raise maximum number of raid images
Heinz Mauelshagen [Fri, 24 Feb 2017 03:41:46 +0000 (04:41 +0100)]
lvconvert/lvcreate: raise maximum number of raid images

Because of contraints in renaming shifted rimage/rmeta LV names
the current RaidLV limit is a maximum of 10 SubLV pairs.

With the previous introduction of reshaping infratructure that
constriant got removed.

Kernel supports 253 since dm-raid target 1.9.0, older kernels 64.

Raise the maximum number of RaidLV rimage/rmeta pairs to 64.
If we want to raise past 64, we have to introdce a check for
the kernel supporting it in lvcreate/lvconvert.

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agolvconvert: add infrastructure for RaidLV reshaping support
Heinz Mauelshagen [Fri, 24 Feb 2017 03:36:03 +0000 (04:36 +0100)]
lvconvert: add infrastructure for RaidLV reshaping support

In order to support striped raid5/6/10 LV reshaping (change
of LV type, stripesize or number of legs), this patch
introduces the changes to call the reshaping infratructure
from lv_raid_convert().

Changes:
- add reshaping calls from lv_raid_convert()
- add command definitons for reshaping to tools/command-lines.in
- fix raid_rimage_extents()
- add 2 new test scripts lvconvert-raid-reshape-linear_to_striped.sh
  and lvconvert-raid-reshape-striped_to_linear.sh to test
  the linear <-> striped multi-step conversions
- add lvconvert-raid-reshape.sh reshaping tests
- enhance lvconvert-raid-takeover.sh with new raid10 tests

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agolvconvert: add infrastructure for RaidLV reshaping support
Heinz Mauelshagen [Fri, 24 Feb 2017 03:00:17 +0000 (04:00 +0100)]
lvconvert: add infrastructure for RaidLV reshaping support

In order to support striped raid5/6/10 LV reshaping (change
of LV type, stripesize or number of legs), this patch
introduces more local infrastructure to raid_manip.c
used by followup patches.

Change:
- allow raid_rimage_extents() to calculate raid10
- remove an __unused__ attribute

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agolvconvert: add infrastructure for RaidLV reshaping support
Heinz Mauelshagen [Fri, 24 Feb 2017 02:56:10 +0000 (03:56 +0100)]
lvconvert: add infrastructure for RaidLV reshaping support

In order to support striped raid5/6/10 LV reshaping (change
of LV type, stripesize or number of legs), this patch
introduces more local infrastructure to raid_manip.c
used by followup patches.

Change:
- add missing raid1 <-> raid5 conversions to support
  linear <-> raid5 <-> raid0(_meta)/striped conversions
- rename related new takeover functions to
  _takeover_from_raid1_to_raid5 and _takeover_from_raid5_to_raid1,
  because a reshape to > 2 legs is only possible with
  raid5 layout

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agolvconvert: add infrastructure for RaidLV reshaping support
Heinz Mauelshagen [Fri, 24 Feb 2017 02:46:14 +0000 (03:46 +0100)]
lvconvert: add infrastructure for RaidLV reshaping support

In order to support striped raid5/6/10 LV reshaping (change
of LV type, stripesize or number of legs), this patch
introduces more local infrastructure to raid_manip.c
used by followup patches.

Change:
- enhance _clear_meta_lvs() to support raid0 allowing
  raid0_meta -> raid10 conversions to succeed by clearing
  the raid0 rmeta images or the kernel will fail because
  of discovering reordered raid devices

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agolvconvert: add infrastructure for RaidLV reshaping support
Heinz Mauelshagen [Fri, 24 Feb 2017 02:37:12 +0000 (03:37 +0100)]
lvconvert: add infrastructure for RaidLV reshaping support

In order to support striped raid5/6/10 LV reshaping (change
of LV type, stripesize or number of legs), this patch
introduces more local infrastructure to raid_manip.c
used by followup patches.

Changes:
- enhance _raid45610_to_raid0_or_striped_wrapper() to support
  raid5_n with 2 areas to raid1 conversion to allow for
  striped/raid0(_meta)/raid4/5/6 -> raid1/linear conversions;
  rename it to _takeover_downconvert_wrapper to discontinue the
  illegible function name
- enhance _striped_or_raid0_to_raid45610_wrapper()  to support
  raid1 with 2 areas to raid5* conversions to allow for
  linear/raid1 -> striped/raid0(_meta)/raid4/5/6 conversions;
  rename it to _takeover_upconvert_wrapper for the same reason

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agolvconvert: add infrastructure for RaidLV reshaping support
Heinz Mauelshagen [Fri, 24 Feb 2017 02:11:41 +0000 (03:11 +0100)]
lvconvert: add infrastructure for RaidLV reshaping support

In order to support striped raid5/6/10 LV reshaping (change
of LV type, stripesize or number of legs), this patch
introduces more local infrastructure to raid_manip.c
used by followup patches.

Changes:
- add missing possible reshape conversions and conversion options
  to allow/prohibit changing stripesize or number fo stripes
- enhance setting convenient riad types in reshape conversions
  (e.g. raid1 with 2 legs -> radi5_n)

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agolvconvert: add infrastructure for RaidLV reshaping support
Heinz Mauelshagen [Fri, 24 Feb 2017 01:53:18 +0000 (02:53 +0100)]
lvconvert: add infrastructure for RaidLV reshaping support

In order to support striped raid5/6/10 LV reshaping (change
of LV type, stripesize or number of legs), this patch
introduces more local infrastructure to raid_manip.c
used by followup patches.

Changes:
- add _raid_reshape() using the pre/post callbacks and
  the stripes add/remove reshape functions introduced before
- and _reshape_requested function checking if a reshape
  was requested

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agolvconvert: add infrastructure for RaidLV reshaping support
Heinz Mauelshagen [Fri, 24 Feb 2017 01:39:04 +0000 (02:39 +0100)]
lvconvert: add infrastructure for RaidLV reshaping support

In order to support striped raid5/6/10 LV reshaping (change
of LV type, stripesize or number of legs), this patch
introduces more local infrastructure to raid_manip.c
used by followup patches.

Changes:
- add vg metadata update functions
- add pre and post activation callback functions for
  proper sequencing of sub lv activations during reshaping
- move and enhance _lv_update_reload_fns_reset_eliminate_lvs()
  to support pre and post activation callbacks
- add _reset_flags_passed_to_kernel() which resets anyxi
  rebuild/reshape flags after they have been passed into the kernel
  and sets the SubLV remove after reshape flags on legs to be removed

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agolvconvert: add infrastructure for RaidLV reshaping support
Heinz Mauelshagen [Fri, 24 Feb 2017 01:12:30 +0000 (02:12 +0100)]
lvconvert: add infrastructure for RaidLV reshaping support

In order to support striped raid5/6/10 LV reshaping (change
of LV type, stripesize or number of legs), this patch
introduces more local infrastructure to raid_manip.c
used by followup patches.

Changes:
- add function to support disk adding reshapes
- add function to support disk removing reshapes
- add function to support layout (e.g. raid5ls -> raid5_rs)
  or stripesize reshaping

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agolvconvert: add infrastructure for RaidLV reshaping support
Heinz Mauelshagen [Fri, 24 Feb 2017 01:05:36 +0000 (02:05 +0100)]
lvconvert: add infrastructure for RaidLV reshaping support

In order to support striped raid5/6/10 LV reshaping (change
of LV type, stripesize or number of legs), this patch
introduces more local infrastructure to raid_manip.c
used by followup patches.

Changes:
- add function providing state of a reshaped RaidLV
- add function to adjust the size of a RaidLV was
  reshaped to add/remove stripes

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agolvconvert: add infrastructure for RaidLV reshaping support
Heinz Mauelshagen [Fri, 24 Feb 2017 00:57:04 +0000 (01:57 +0100)]
lvconvert: add infrastructure for RaidLV reshaping support

In order to support striped raid5/6/10 LV reshaping (change
of LV type, stripesize or number of legs), this patch
introduces more local infrastructure to raid_manip.c
used by followup patches.

Changes:
- add lv_raid_data_copies returning raid type specific number;
  needed for raid10 with more than 2 data copies
- remove _shift_and_rename_image_components() constraint
  to support more than 10 raid legs
- add function to calculate total rimage length used by out-of-place
  reshape space allocation
- add out-of-place reshape space alloc/relocate/free functions
- move _data_rimages_count() used by reshape space alloc/realocate functions

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agoraid: typo
Heinz Mauelshagen [Fri, 24 Feb 2017 00:29:37 +0000 (01:29 +0100)]
raid: typo

7 years agolvconvert: add infrastructure for RaidLV reshaping support
Heinz Mauelshagen [Fri, 24 Feb 2017 00:18:38 +0000 (01:18 +0100)]
lvconvert: add infrastructure for RaidLV reshaping support

In order to support striped raid5/6/10 LV reshaping (change
of LV type, stripesize or number of legs), this patch
introduces local infrastructure to raid_manip.c
used by followup patches.

Add functions:
- to check reshaping is supported in target attibute
- to return device health string needed to check
  the raid device is ready to reshape

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agolvconvert: add infrastructure for RaidLV reshaping support
Heinz Mauelshagen [Thu, 23 Feb 2017 23:50:00 +0000 (00:50 +0100)]
lvconvert: add infrastructure for RaidLV reshaping support

In order to support striped raid5/6/10 LV reshaping (change
of LV type, stripesize or number of legs), this patch
introduces infrastructure prerequisites to be used
by raid_manip.c extensions in followup patches.

This base is needed for allocation of out-of-place
reshape space required by the MD raid personalities to
avoid writing over data in-place when reading off the
current RAID layout or number of legs and writing out
the new layout or to a different number of legs
(i.e. restripe)

Changes:
- add members reshape_len to 'struct lv_segment' to store
  out-of-place reshape length per component rimage
- add member data_copies to struct lv_segment
  to support more than 2 raid10 data copies
- make alloc_lv_segment() aware of both reshape_len and data_copies
- adjust all alloc_lv_segment() callers to the new API
- add functions to retrieve the current data offset (needed for
  out-of-place reshaping space allocation) and the devices count
  from the kernel
- make libdm deptree code aware of reshape_len
- add LV flags for disk add/remove reshaping
- support import/export of the new 'struct lv_segment' members
- enhance lv_extend/_lv_reduce to cope with reshape_len
- add seg_is_*/segtype_is_* macros related to reshaping
- add target version check for reshaping
- grow rebuilds/writemostly bitmaps to 246 bit to support kernel maximal
- enhance libdm deptree code to support data_offset (out-of-place reshaping)
  and delta_disk (legs add/remove reshaping) target arguments

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agoman: improve line breaks
David Teigland [Thu, 23 Feb 2017 23:06:42 +0000 (17:06 -0600)]
man: improve line breaks

Borrow tricks from dmsetup man page to improve
the line break and indentation using .ad l, .ad b,
and soft break \%.

7 years agoman/help: change syntax to UNIT
David Teigland [Thu, 23 Feb 2017 20:24:28 +0000 (14:24 -0600)]
man/help: change syntax to UNIT

(Change to recent commit 3f4ecaf8c2.)

Use --foo Number[k|UNIT] to indicate that
the default units of the number is k, but other
units listed below are also accepted.

Previously, underlined/italic Unit was used,
like other of variables, but this UNIT is more
like a shortcut than an actual variable.

7 years agolvchange: reject writemostly/writebehind on raid1 during resync sourceware_master
Heinz Mauelshagen [Thu, 23 Feb 2017 14:09:29 +0000 (15:09 +0100)]
lvchange: reject writemostly/writebehind on raid1 during resync

The MD kernel raid1 personality does no use any writemostly leg as the primary.

In case a previous linear LV holding data gets upconverted to
raid1 it becomes the primary leg of the new raid1 LV and a full
resynchronization is started to update the new legs.

No writemostly and/or writebehind setting may be allowed during
this initial, full synchronization period of this new raid1 LV
(using the lvchange(8) command), because that would change the
primary (i.e the previous linear LV) thus causing data loss.

lvchange has a bug not preventing this scenario.

Fix rejects setting writemostly and/or writebehind on resychronizing raid1 LVs.

Once we have status in the lvm2 metadata about the linear -> raid upconversion,
we may relax this constraint for other types of resynchronization
(e.g. for user requested "lvchange --resync ").

New lvchange-raid1-writemostly.sh test is added to the test suite.

Resolves: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=855895

7 years agoman/help: improve the style of units indicator
David Teigland [Wed, 22 Feb 2017 22:50:30 +0000 (16:50 -0600)]
man/help: improve the style of units indicator

We use --foo Number[k|Units] to indicate that
the default units of the number is k, but other
units listed below are also accepted.

Capitalize and underline Units so it is consistent
with other variables, and reference it at the end.

Technically, the k should be bold, but this
tends to make the text visually hard to read
because of the excessive highlights scattered
everywhere.  So it's left normal text for now
(it's unlikely to confuse anyone.)

7 years agoman: indicate repeatable options
David Teigland [Wed, 22 Feb 2017 22:38:54 +0000 (16:38 -0600)]
man: indicate repeatable options

Print ... after a repeatable option in the OPTIONS section.
An alternative would be to just mention in the text description
that the option is repeatable.

7 years agoman: improve writemostly PV arg
David Teigland [Wed, 22 Feb 2017 21:20:44 +0000 (15:20 -0600)]
man: improve writemostly PV arg

7 years agotests: support zero_dev
Zdenek Kabelac [Wed, 22 Feb 2017 14:16:20 +0000 (15:16 +0100)]
tests: support zero_dev

When the test would need to try to write some large amount of data
we can give it 'zero' segments - for obvious reason such written data
can't be verified but in some test cases it doesn't really matter.

Usage follows  'error_dev' style.

For now test suite is not supporting any combination of
error/delay/zero segments so only 1 type could be used per PV.

7 years agotests: not slowing work with metadata
Zdenek Kabelac [Tue, 21 Feb 2017 12:06:00 +0000 (13:06 +0100)]
tests: not slowing work with metadata

Slows only data extents on a PV.

7 years agosnapshot: improve removal of active origin volume
Zdenek Kabelac [Wed, 22 Feb 2017 14:12:54 +0000 (15:12 +0100)]
snapshot: improve removal of active origin volume

Previously when lvremove tried to remove 'active' origin,
it had been asking for every 'snapshot' LV separately
and doing individual single snapshot removals first.

To be faster it now deactivates origin before removal
all connected snapshots.

This avoids multiple reloads of dm table for origin volume
which were unnecessary as origin was meant to be removed as well.

7 years agoWHATS_NEW: add entry
Zdenek Kabelac [Wed, 22 Feb 2017 14:20:23 +0000 (15:20 +0100)]
WHATS_NEW: add entry

7 years agoman/help: enclose each option in brackets
David Teigland [Tue, 21 Feb 2017 20:59:52 +0000 (14:59 -0600)]
man/help: enclose each option in brackets

Placing [] around each individual option is the most
common style, and it improves the readability.

7 years agoman/help: use separate common option lists
David Teigland [Tue, 21 Feb 2017 20:32:54 +0000 (14:32 -0600)]
man/help: use separate common option lists

There are two kinds of common options:
1. options common to all variants of a given command name
2. options common to all lvm commands

Previously, both kinds of common options were listed together
under "Common options".  Now the first are printed under
"Common options for command" (when needed), and the second
are printed under "Common options for lvm" (always).

7 years agoman: teaking output format
David Teigland [Tue, 21 Feb 2017 18:05:36 +0000 (12:05 -0600)]
man: teaking output format

7 years agocommands: adjust default help output
David Teigland [Tue, 21 Feb 2017 17:40:51 +0000 (11:40 -0600)]
commands: adjust default help output

Remove the "usage notes" which should just
live in the man pages.

When there are 3 or more variants of a command,
print all the options produces a lot of output,
so require --longhelp to print all the options
in these cases.

7 years agoman lvm: update see also list
David Teigland [Tue, 21 Feb 2017 17:13:23 +0000 (11:13 -0600)]
man lvm: update see also list

add several missing references
remove references to lvmdiskscan lvmchange

7 years agoman: expand type option description
David Teigland [Tue, 21 Feb 2017 17:09:01 +0000 (11:09 -0600)]
man: expand type option description

7 years agodmsetup: Indicate device repetition in usage summaries.
Alasdair G Kergon [Tue, 21 Feb 2017 11:25:18 +0000 (11:25 +0000)]
dmsetup: Indicate device repetition in usage summaries.

7 years agotests: some debug code
Zdenek Kabelac [Tue, 21 Feb 2017 08:40:21 +0000 (09:40 +0100)]
tests: some debug code

Checking if --deferred would make it any faster - but it's as slow
as without this new optional flag anyway (4.10).

7 years agotests: ensure first call is version test
Zdenek Kabelac [Tue, 21 Feb 2017 08:38:49 +0000 (09:38 +0100)]
tests: ensure first call is version test

Check 'dmsetup version'  is called before starting any more
advanced logic in $DM_DEV_DIR.

Call also replaces mkdir as it creates needed path with control node.

7 years agotests: make sure which PV is used for allocation
Zdenek Kabelac [Tue, 21 Feb 2017 08:38:04 +0000 (09:38 +0100)]
tests: make sure which PV is used for allocation

7 years agotests: paralelize creation and teardown
Zdenek Kabelac [Mon, 20 Feb 2017 23:49:49 +0000 (00:49 +0100)]
tests: paralelize creation and teardown

To speedup initial construction and destruction of test devices
(mainly in case more then 1 is needed)  call dmsetup
in parallel.

7 years agotests: use exclusive activation for mirror
Zdenek Kabelac [Mon, 20 Feb 2017 22:50:27 +0000 (23:50 +0100)]
tests: use exclusive activation for mirror

Test suite does not support clustered mirroring.

7 years agoman: use .HP instead of .TP
David Teigland [Mon, 20 Feb 2017 23:10:11 +0000 (17:10 -0600)]
man: use .HP instead of .TP

7 years agoman/help: print general raid type as "raid"
David Teigland [Mon, 20 Feb 2017 21:41:24 +0000 (15:41 -0600)]
man/help: print general raid type as "raid"

Instead of printing "raid*".  There are already
notes mentioning that "raid" refers to "raid<N>"

7 years agoman vgchange/lvchange: note special option usage
David Teigland [Mon, 20 Feb 2017 21:26:24 +0000 (15:26 -0600)]
man vgchange/lvchange: note special option usage

7 years agoman lvcreate: add special option notes at the start
David Teigland [Mon, 20 Feb 2017 21:17:10 +0000 (15:17 -0600)]
man lvcreate: add special option notes at the start

The --name, --size, --extents options deserve a special
note at the start of the man page, before appearing in
the usage section.

7 years agoman: add variables descriptions
David Teigland [Mon, 20 Feb 2017 21:09:02 +0000 (15:09 -0600)]
man: add variables descriptions

Add a section describing variables.

In the full options list, include common
options in the alphabetical listing instead
of at the end.

7 years agolvresize/lvextend: accept type option
David Teigland [Mon, 20 Feb 2017 17:23:46 +0000 (11:23 -0600)]
lvresize/lvextend: accept type option

The --type option has previously been accepted for
lvresize/lvextend.  Using it did not affect the operation
of the command.  The value was simply verified as matching
the current seg type of the LV.

7 years agotests: update lvresize testing
Zdenek Kabelac [Sun, 19 Feb 2017 21:59:21 +0000 (22:59 +0100)]
tests: update lvresize testing

Add missing tests for some lvresize acceptable options.

7 years agocleanup: simplier code
Zdenek Kabelac [Sat, 18 Feb 2017 18:46:22 +0000 (19:46 +0100)]
cleanup: simplier code

Already know string is 'lvm-' so use name[3].

7 years agocleanup: same sign for compare
Zdenek Kabelac [Sat, 18 Feb 2017 18:45:17 +0000 (19:45 +0100)]
cleanup: same sign for compare

7 years agocleanup: use multiline string
Zdenek Kabelac [Sat, 18 Feb 2017 18:09:24 +0000 (19:09 +0100)]
cleanup: use multiline string

7 years agocleanup: use const
Zdenek Kabelac [Sat, 18 Feb 2017 17:50:22 +0000 (18:50 +0100)]
cleanup: use const

7 years agoman: thin dmeventd plugin update
Zdenek Kabelac [Sun, 19 Feb 2017 14:50:19 +0000 (15:50 +0100)]
man: thin dmeventd plugin update

Document new dmeventd/thin_command lvm.conf configurable.

7 years agoman: dmstats update
Zdenek Kabelac [Sun, 19 Feb 2017 14:51:06 +0000 (15:51 +0100)]
man: dmstats update

Fixing colorization bugs

7 years agoman: dmsetup update
Zdenek Kabelac [Sun, 19 Feb 2017 14:50:49 +0000 (15:50 +0100)]
man: dmsetup update

7 years agocommands: fix memleak
Zdenek Kabelac [Sat, 18 Feb 2017 17:49:19 +0000 (18:49 +0100)]
commands: fix memleak

Keep all allocations 'mempool' allocated for simple cleanup.

7 years agolvresize: fix regressiong on accepting args
Zdenek Kabelac [Sun, 19 Feb 2017 18:08:48 +0000 (19:08 +0100)]
lvresize: fix regressiong on accepting args

Commit f45b68940667563e1a8d3bbd5d30864c04381bdf caused regression
of lvresize -m and --type  parameter

After fix this sequence may work when we also fix syntax description:

lvcreate -l1 -m1 -n lv1 vg
lvextend --type mirror -m1 -l+1 vg/lv1

7 years agoman/help: fix description of r|R unit
David Teigland [Fri, 17 Feb 2017 21:44:26 +0000 (15:44 -0600)]
man/help: fix description of r|R unit

7 years agoman: print space before built-in name
David Teigland [Fri, 17 Feb 2017 21:33:04 +0000 (15:33 -0600)]
man: print space before built-in name

print 'lvm config' not 'lvm-config'

7 years agoman pvmove: move details to notes
David Teigland [Fri, 17 Feb 2017 21:28:00 +0000 (15:28 -0600)]
man pvmove: move details to notes

7 years agoman: mention force behavior in various places
David Teigland [Fri, 17 Feb 2017 21:11:19 +0000 (15:11 -0600)]
man: mention force behavior in various places

7 years agoman lvmconfig: refer to typeconfig option name
David Teigland [Fri, 17 Feb 2017 20:46:10 +0000 (14:46 -0600)]
man lvmconfig: refer to typeconfig option name

7 years agoman/help: show recently added r|R unit
David Teigland [Fri, 17 Feb 2017 20:02:13 +0000 (14:02 -0600)]
man/help: show recently added r|R unit

7 years agoargs: in yes option mention qq for auto-no
David Teigland [Fri, 17 Feb 2017 20:42:13 +0000 (14:42 -0600)]
args: in yes option mention qq for auto-no

7 years agolvconvert: include swap behavior in generic pool syntax
David Teigland [Fri, 17 Feb 2017 17:45:13 +0000 (11:45 -0600)]
lvconvert: include swap behavior in generic pool syntax

For this syntax:
lvconvert --thinpool LV1 --poolmetadata LV2
lvconvert --cachepool LV1 --poolmetadata LV2

Restore the metadata swapping behavior in addition to
the pool creation behavior.  When LV1 is already a pool,
the metadata LV will be swapped with LV2.
When LV1 is not a pool, it will be converted to a
pool using the specified LV for metadata.

This syntax is no longer advertised because of the
ambiguous behavior.  The primary syntaxes for pool
creation and metadata swapping will be the advertised
methods.

7 years agocommands: compensate --uuid
Zdenek Kabelac [Fri, 17 Feb 2017 12:57:59 +0000 (13:57 +0100)]
commands: compensate --uuid

As we now user binary search - it's nondeterministict
which of the same 'args' will be give - so duplicates
need 'extra' care.

So provide same hack for output for --uuidstr_ARG as
for input.

Solves 'pvscan -u'.

7 years agocommands: some more dm wrappers
Zdenek Kabelac [Fri, 17 Feb 2017 12:36:57 +0000 (13:36 +0100)]
commands: some more dm wrappers

As man-generator is not liked with libdm as of now - some more wrappers.

7 years agocleanup: unused uninit vars
Zdenek Kabelac [Fri, 17 Feb 2017 12:16:27 +0000 (13:16 +0100)]
cleanup: unused uninit vars

7 years agocleanup: use strchr for 1-byte lookup
Zdenek Kabelac [Fri, 17 Feb 2017 12:09:06 +0000 (13:09 +0100)]
cleanup: use strchr for 1-byte lookup

7 years agocleanup: add comment for longer macro
Zdenek Kabelac [Fri, 17 Feb 2017 10:51:24 +0000 (11:51 +0100)]
cleanup: add comment for longer macro

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