]> sourceware.org Git - lvm2.git/log
lvm2.git
8 years agocache: introduce cache_pool_max_chunks
Zdenek Kabelac [Wed, 24 Aug 2016 08:16:01 +0000 (10:16 +0200)]
cache: introduce cache_pool_max_chunks

Introduce 'hard limit' for max number of cache chunks.
When cache target operates with too many chunks (>10e6).

When user is aware of related possible troubles he
may increase the limit in lvm.conf.

Also verbosely inform user about possible solution.

Code works for both lvcreate and lvconvert.

Lvconvert fully supports change of chunk_size when caching LV
(and validates for compatible settings).

8 years agolvconvert: Fix --splitmirrors segfault with incorrect PV.
Alasdair G Kergon [Fri, 26 Aug 2016 00:21:01 +0000 (01:21 +0100)]
lvconvert: Fix --splitmirrors segfault with incorrect PV.

Commit 9ee071705b2c35e1132f39f5731861c831a1bb6b misunderstood integer
promotion, but it's simpler to detect -1 more directly.

8 years agotests: also fix typo in report/columns_as_rows in tests
Peter Rajnoha [Thu, 25 Aug 2016 14:25:23 +0000 (16:25 +0200)]
tests: also fix typo in report/columns_as_rows in tests

8 years agoconf: fix typo in report/columns_as_rows config option name recognition
Peter Rajnoha [Thu, 25 Aug 2016 12:53:32 +0000 (14:53 +0200)]
conf: fix typo in report/columns_as_rows config option name recognition

Commit e947c362dd0ae1da2d76925fe6b38244c5f46d25 introduced
config_settings.h file for central place to store all definitions for
config options. By mistake, it used report/colums_as_rows instead
of report/columns_as_rows (missing "n" in "columns").

8 years agotest: delay writes to all test PVs in lvchange-rebuild-raid.sh to avoid race
Heinz Mauelshagen [Wed, 24 Aug 2016 23:36:13 +0000 (01:36 +0200)]
test: delay writes to all test PVs in lvchange-rebuild-raid.sh to avoid race

8 years agoalloc: Avoid PV tags too when avoiding parallel PV allocation.
Alasdair G Kergon [Wed, 24 Aug 2016 18:37:50 +0000 (19:37 +0100)]
alloc: Avoid PV tags too when avoiding parallel PV allocation.

Also add debug messages for parallel PVs.

8 years agotest: add missing lvchange-rebuild-raid.sh
Heinz Mauelshagen [Wed, 24 Aug 2016 16:22:34 +0000 (18:22 +0200)]
test: add missing lvchange-rebuild-raid.sh

8 years agoalloc: Record PV tags of parallel PVs in log.
Alasdair G Kergon [Wed, 24 Aug 2016 14:49:34 +0000 (15:49 +0100)]
alloc: Record PV tags of parallel PVs in log.

8 years agoalloc: Move _log_parallel_areas.
Alasdair G Kergon [Wed, 24 Aug 2016 14:39:56 +0000 (15:39 +0100)]
alloc: Move _log_parallel_areas.

8 years agolvconvert: Disallow raid10 mirror conversions.
Alasdair G Kergon [Tue, 23 Aug 2016 22:40:16 +0000 (23:40 +0100)]
lvconvert: Disallow raid10 mirror conversions.

8 years agodmeventd: Add fixed timeout when unmonitoring.
Alasdair G Kergon [Tue, 23 Aug 2016 15:09:18 +0000 (16:09 +0100)]
dmeventd: Add fixed timeout when unmonitoring.

8 years agolibdm: add some comments about DM_UDEV_DISABLE_LIBRARY_FALLBACK flag
Peter Rajnoha [Tue, 23 Aug 2016 13:57:47 +0000 (15:57 +0200)]
libdm: add some comments about DM_UDEV_DISABLE_LIBRARY_FALLBACK flag

8 years agodmeventd: Simplify replacement unmonitor code.
Alasdair G Kergon [Tue, 23 Aug 2016 11:16:39 +0000 (12:16 +0100)]
dmeventd: Simplify replacement unmonitor code.

8 years agodmeventd: Start merging back replacement unmonitor code.
Alasdair G Kergon [Tue, 23 Aug 2016 10:30:34 +0000 (11:30 +0100)]
dmeventd: Start merging back replacement unmonitor code.

8 years agodmeventd: Fix unmonitoring when segtype changes.
Alasdair G Kergon [Tue, 23 Aug 2016 01:24:30 +0000 (02:24 +0100)]
dmeventd: Fix unmonitoring when segtype changes.

When the segment type is being changed, unmonitoring an LV requires
the existing dso to be specified as a parameter, not the new one.

8 years agoraid: Don't monitor raid0 or raid0_meta LVs.
Alasdair G Kergon [Sat, 20 Aug 2016 01:14:33 +0000 (02:14 +0100)]
raid: Don't monitor raid0 or raid0_meta LVs.

8 years agolvcreate: Never treat raid0 as linear.
Alasdair G Kergon [Fri, 19 Aug 2016 22:57:30 +0000 (23:57 +0100)]
lvcreate: Never treat raid0 as linear.

raid0 and raid0_meta require, or default to, at least 2 stripes.

8 years agolvconvert: Don't allow --repair on raid0 LVs.
Alasdair G Kergon [Fri, 19 Aug 2016 22:42:01 +0000 (23:42 +0100)]
lvconvert: Don't allow --repair on raid0 LVs.

8 years agolibdaemon: add errno to error message
David Teigland [Fri, 19 Aug 2016 15:59:46 +0000 (10:59 -0500)]
libdaemon: add errno to error message

8 years agolvcreate: Drop warning messages for number of raid stripes.
Alasdair G Kergon [Fri, 19 Aug 2016 13:53:33 +0000 (14:53 +0100)]
lvcreate: Drop warning messages for number of raid stripes.

It's now just setting a default, not adjusting the user's parameter.

8 years agolvcreate: No longer adjust --stripes for raid types.
Alasdair G Kergon [Fri, 19 Aug 2016 13:19:51 +0000 (14:19 +0100)]
lvcreate: No longer adjust --stripes for raid types.

If the number of stripes requested is incompatible with the requested
type of raid, give an error instead of adjusting it.

If no stripes argument is supplied, continue to use an appropriate
default.

8 years agotoollib: Record whether or not stripes/stripe_size args supplied.
Alasdair G Kergon [Fri, 19 Aug 2016 12:51:43 +0000 (13:51 +0100)]
toollib: Record whether or not stripes/stripe_size args supplied.

8 years agolib: Move lcm and gcd to lib/misc for wider use.
Alasdair G Kergon [Thu, 18 Aug 2016 13:06:13 +0000 (14:06 +0100)]
lib: Move lcm and gcd to lib/misc for wider use.

8 years agoman: lvconvert mention required option
David Teigland [Wed, 17 Aug 2016 19:56:01 +0000 (14:56 -0500)]
man: lvconvert mention required option

8 years agoman: lvconvert change location of sentence
David Teigland [Wed, 17 Aug 2016 19:13:17 +0000 (14:13 -0500)]
man: lvconvert change location of sentence

The details about each option are explained in the
section for that option.

8 years agovgsplit: fix regression processing thin external origins
Heinz Mauelshagen [Tue, 16 Aug 2016 21:57:09 +0000 (23:57 +0200)]
vgsplit: fix regression processing thin external origins

a579ba2ac27d fixed a regression causing a segfault if no external
origin existed but broke the logic leading to erroneous error
messages and creations of split off exported VGs in case the
external origin and the pool LVs were allocated on different PVs.

- resolves rhbz1367459

8 years agolvcreate: better error message creating RAID LV on < 4 KiB VG extent size
Heinz Mauelshagen [Tue, 16 Aug 2016 11:39:40 +0000 (13:39 +0200)]
lvcreate: better error message creating RAID LV on < 4 KiB VG extent size

Creating a RaidLV in VGs with very small extent sizes caused
late failure in the kernel giving a not very informative error
message. Catch the attempt early and display failure message
'Unable to create RAID LV: requires minimum VG extent size 4.00 KiB'.

- resoves rhbz1179970

8 years agotools: Suppress some unnecessary --stripesize warnings.
Alasdair G Kergon [Mon, 15 Aug 2016 18:38:45 +0000 (19:38 +0100)]
tools: Suppress some unnecessary --stripesize warnings.

https://bugzilla.redhat.com/1366745

8 years agopvmove: fix regression introduced with 8e9d5d12ae3ac75852ebd74b64c28e31abb68d0e
Heinz Mauelshagen [Mon, 15 Aug 2016 17:31:04 +0000 (19:31 +0200)]
pvmove: fix regression introduced with 8e9d5d12ae3ac75852ebd74b64c28e31abb68d0e

'pvmove -n name pv1 pv2' called with the name of a top-level LV
failed with mentioned commit.

Enhance pvmove-raid-segtypes.sh to test for prohibited RAID SubLV moves.

8 years agopvmove: prohibit non-resilient collocation of RAID SubLVs
Heinz Mauelshagen [Mon, 15 Aug 2016 16:22:32 +0000 (18:22 +0200)]
pvmove: prohibit non-resilient collocation of RAID SubLVs

'pvmove -n name pv1 pv2' allows to collocate multiple RAID SubLVs
on pv2 (e.g. results in collocated raidlv_rimage_0 and raidlv_rimage_1),
thus causing loss of resilence and/or performance of the RaidLV.

Fix this pvmove flaw leading to potential data loss in case of PV failure
by preventing any SubLVs from collocation on any PVs of the RaidLV.
Still allow to collocate any DataLVs of a RaidLV with their sibling MetaLVs
and vice-versa though (e.g. raidlv_rmeta_0 on pv1 may still be moved to pv2
already holding raidlv_rimage_0).

Because access to the top-level RaidLV name is needed,
promote local _top_level_lv_name() from raid_manip.c
to global top_level_lv_name().

- resolves rhbz1202497

8 years agopost-release
Alasdair G Kergon [Mon, 15 Aug 2016 12:23:06 +0000 (13:23 +0100)]
post-release

8 years agopre-release v2_02_164
Alasdair G Kergon [Mon, 15 Aug 2016 12:01:27 +0000 (13:01 +0100)]
pre-release

8 years agoconf: add comment about cfg_runtime
Peter Rajnoha [Mon, 15 Aug 2016 08:38:38 +0000 (10:38 +0200)]
conf: add comment about cfg_runtime

8 years agoraid_manip: pay attention to PVs listed on command line when allocating MetaLVs
Heinz Mauelshagen [Fri, 12 Aug 2016 22:20:01 +0000 (00:20 +0200)]
raid_manip: pay attention to PVs listed on command line when allocating MetaLVs

Adding MetaLVs to given DataLVs (e.g. raid0 -> raid0_meta takeover) wasn't
paying attention to any PVs listed on the lvconvert command line.

8 years agoraid_manip: add missing code avoiding MetaLV collocation on the same PV
Heinz Mauelshagen [Fri, 12 Aug 2016 20:46:57 +0000 (22:46 +0200)]
raid_manip: add missing code avoiding MetaLV collocation on the same PV

Adding MetaLVs to given DataLVs (e.g. raid0 -> raid0_meta takeover),
_avoid_pvs_with_other_images_of_lv() was missing code to prohibit
allocation when called with a just allocated MetaLV to prohibit
collaocation of the next allocated MetaLV on the same PV.

- resolves rhbz1366738

8 years agonotify: Fix hang with lvm shell & --enable-notify-dbus
Tony Asleson [Fri, 12 Aug 2016 19:31:06 +0000 (14:31 -0500)]
notify: Fix hang with lvm shell & --enable-notify-dbus

When lvm is compiled with --enable-notify-dbus and a user uses lvm
shell, after they issue 200+ commands the lvm shell will hang for
~30 seconds trying to notify the lvm dbus service that a change
has occurred.  This appears to be caused by resource exhaustion,
because the sockets used for dbus communication are not be closed.

8 years agolvcreate/lvconvert: fix validation of maximum mirrors/stripes
Heinz Mauelshagen [Fri, 12 Aug 2016 17:14:28 +0000 (19:14 +0200)]
lvcreate/lvconvert: fix validation of maximum mirrors/stripes

Enforce mirror/raid0/1/10/4/5/6 type specific maximum images when
creating LVs or converting them from mirror <-> raid1.

Document those maxima in the lvcreate/lvconvert man pages.

- resolves rhbz1366060

8 years agoraid: Avoid double suffix on rmeta LV name paired with rimage LV.
Alasdair G Kergon [Thu, 11 Aug 2016 22:31:49 +0000 (23:31 +0100)]
raid: Avoid double suffix on rmeta LV name paired with rimage LV.

8 years agospec: Add new files
Marian Csontos [Thu, 11 Aug 2016 12:10:24 +0000 (14:10 +0200)]
spec: Add new files

8 years agolvmcmdline: use long int for number returned by strtol
Peter Rajnoha [Wed, 10 Aug 2016 07:10:28 +0000 (09:10 +0200)]
lvmcmdline: use long int for number returned by strtol

8 years agopost-release
Alasdair G Kergon [Wed, 10 Aug 2016 02:01:55 +0000 (03:01 +0100)]
post-release

8 years agopre-release v2_02_163
Alasdair G Kergon [Wed, 10 Aug 2016 01:42:35 +0000 (02:42 +0100)]
pre-release

8 years agoman: fix references to names for --configreport arg in pvs, vgs and lvs man page
Peter Rajnoha [Tue, 9 Aug 2016 15:55:34 +0000 (17:55 +0200)]
man: fix references to names for --configreport arg in pvs, vgs and lvs man page

8 years agoman: add lvm fullreport man page
Peter Rajnoha [Tue, 9 Aug 2016 15:53:32 +0000 (17:53 +0200)]
man: add lvm fullreport man page

8 years agoreport: add report_reset_cmdlog_seqnum and call it for each new cmd executed in lvm...
Peter Rajnoha [Mon, 8 Aug 2016 13:45:46 +0000 (15:45 +0200)]
report: add report_reset_cmdlog_seqnum and call it for each new cmd executed in lvm shell

8 years agoconf: mark selected settings with CFG_DISALLOW_INTERACTIVE flag
Peter Rajnoha [Mon, 8 Aug 2016 08:43:33 +0000 (10:43 +0200)]
conf: mark selected settings with CFG_DISALLOW_INTERACTIVE flag

8 years agoconfig: add support for CFG_DISALLOW_INTERACTIVE flag to mark settings as not suitabl...
Peter Rajnoha [Mon, 8 Aug 2016 08:43:18 +0000 (10:43 +0200)]
config: add support for CFG_DISALLOW_INTERACTIVE flag to mark settings as not suitable for override in interactive mode

Some settings are not suitable for override in interactive/shell
mode because such settings may confuse the code and it may end
up with unexpected behaviour. This is because of the fact that
once we're in the interactive/shell mode, we have already applied
some settings for the shell itself and we can't override them
further because we're already using those settings to drive the
interactive/shell mode. Such settings would get ignored silently
or, in worse case, they would mess up the existing configuration.

8 years agorefactor: modify original _check_profile fn and rename to config_force_check for...
Peter Rajnoha [Mon, 8 Aug 2016 10:55:15 +0000 (12:55 +0200)]
refactor: modify original _check_profile fn and rename to config_force_check for general use

8 years agoconf: add lvmdbusd.profile
Peter Rajnoha [Thu, 4 Aug 2016 16:16:21 +0000 (18:16 +0200)]
conf: add lvmdbusd.profile

8 years agolvm: shell: honor log/command_log_selection as default and reset to this value after...
Peter Rajnoha [Thu, 4 Aug 2016 16:15:54 +0000 (18:15 +0200)]
lvm: shell: honor log/command_log_selection as default and reset to this value after lastlog

8 years agolvmcmdline: profile: early profile load for lvm shell
Peter Rajnoha [Thu, 4 Aug 2016 14:45:27 +0000 (16:45 +0200)]
lvmcmdline: profile: early profile load for lvm shell

Make it possible to also load profile for lvm shell by honouring
LVM_COMMAND_PROFILE environment variable.

8 years agolvm: shell: extend log report to cover whole lvm shell's main loop
Peter Rajnoha [Thu, 4 Aug 2016 11:42:57 +0000 (13:42 +0200)]
lvm: shell: extend log report to cover whole lvm shell's main loop

When lvm commands are executed in lvm shell, we cover the whole lvm
command execution within this shell now. That means, all messages logged
and status caught during each command execution is now recorded in the
log report, including overall command's return code.

8 years agolibdm: report: add dm_report_group_output_and_pop_all
Peter Rajnoha [Thu, 4 Aug 2016 11:50:45 +0000 (13:50 +0200)]
libdm: report: add dm_report_group_output_and_pop_all

The dm_report_group_output_and_pop_all calls dm_report_output and
dm_report_group_pop for all the items that are currently in report
group. This is just a shortcut that makes it easier to output and
pop group's content so the group handle can be reused again without
a need to initialize and configure it again.

The functionality of dm_report_group_output_and_pop_all is the
same as dm_report_destroy but without destroying the report group
handle.

8 years agolibdm: report: postpone printing of JSON starting '{' character till it's needed
Peter Rajnoha [Thu, 4 Aug 2016 09:05:20 +0000 (11:05 +0200)]
libdm: report: postpone printing of JSON starting '{' character till it's needed

This patch moves printing of starting '{' character for JSON output up
untili it's known there's any further output following - either the
content or ending '}' character.

Also, remove unnecessary switch for different report group types and
calling individual functions to handle dm_report_group_create as that
code is shared for all existing types at the moment.

8 years agolibdm: report: add dm_report_destroy_rows
Peter Rajnoha [Thu, 4 Aug 2016 07:42:33 +0000 (09:42 +0200)]
libdm: report: add dm_report_destroy_rows

Calling dm_report_destroy_rows makes it possible to destroy any report
content we have but at the same time it doesn't destroy the report
handle itself, thus it's possible to reuse that handle again for new
report content.

Functionally, this is the same as calling dm_report_output with the
report handle but omitting the output iself. This functionality may
be useful if we, for whatever reason, need to discard the report
content and start a fresh new one but with the same report configuration
and initialization and thus we can just reuse the existing handle.

8 years agolvmcmdline: return 0/NULL if cmd->arg_values not set and arg_count/grouped_arg_count...
Peter Rajnoha [Thu, 4 Aug 2016 07:32:05 +0000 (09:32 +0200)]
lvmcmdline: return 0/NULL if cmd->arg_values not set and arg_count/grouped_arg_count/arg_value called

We may call arg_count/grouped_arg_count/arg_value soon enough that
cmd->arg_values is not set yet.

Normally, when running a command, we execute lvm_run_command which in
turn calls _process_command_line to allocate and parse the command line
values and stores them in cmd->arg_values.

However, if we run lvm shell, this one doesn't accept any command line
options and we parse the command line for each command that is executed
within the lvm shell then. If we used any code that tries to access
cmd->arg_values through any of the the arg handling functions too
early, we could end up with a segfault due to uninitialized (NULL)
cmd->arg_values.

This patch just saves extra checks in all the code where arg handling
may be called too early so that the cmd->arg_values is not set up yet.
This does not apply to any of existing code, but subsequent patches
will need that.

8 years agorefactor: move report grouping and log reporting handles from processing_handle to...
Peter Rajnoha [Wed, 3 Aug 2016 13:37:14 +0000 (15:37 +0200)]
refactor: move report grouping and log reporting handles from processing_handle to cmd_context

With patches that will follow, this will make it possible to widen log
report coverage when commands are executed from lvm shell so the amount
of messages that may end up in stderr/stdout instead of log report are
minimized.

8 years agoshell: also collect last command's return code for subsequent 'lastlog' invocation
Peter Rajnoha [Mon, 25 Jul 2016 10:20:22 +0000 (12:20 +0200)]
shell: also collect last command's return code for subsequent 'lastlog' invocation

Add new log_context=shell and with log_object_type=cmd and
log_object_name=<command_name> for command log report to collect
overall return code from last command (this is reported under
log_type=status).

8 years agolog: separate output and make it possible to use given FDs
Peter Rajnoha [Fri, 8 Jul 2016 14:47:51 +0000 (16:47 +0200)]
log: separate output and make it possible to use given FDs

Currently, the output is separated in 3 parts and each part can go into
a separate and user-defined file descriptor:

  - common output (stdout by default, customizable by LVM_OUT_FD environment variable)
  - error output (stderr by default, customizable by LVM_ERR_FD environment variable)
  - report output (stdout by default, customizable by LVM_REPORT_FD environment variable)

For example, each type of output goes to different output file:

  [0] fedora/~ # export LVM_REPORT_FD=3

  [0] fedora/~ # lvs fedora vg/abc 1>out 2>err 3>report

  [0] fedora/~ # cat out

  [0] fedora/~ # cat err
    Volume group "vg" not found
    Cannot process volume group vg

  [0] fedora/~ # cat report
    LV   VG     Attr       LSize   Layout     Role       CTime
    root fedora -wi-ao----  19.00g linear     public     Wed May 27 2015 08:09:21
    swap fedora -wi-ao---- 500.00m linear     public     Wed May 27 2015 08:09:21

Another example in LVM shell where the report goes to "report" file:

  [0] fedora/~ # export LVM_REPORT_FD=3
  [0] fedora/~ # lvm 3>report

  (in lvm shell)
  lvm> vgs

  (content of "report" file)
  [1] fedora/~ # cat report
    VG     #PV #LV #SN Attr   VSize  VFree
    fedora   1   2   0 wz--n- 19.49g    0

  (in lvm shell)
  lvm> lvs

  (content of "report" file)
  [1] fedora/~ # cat report
    VG     #PV #LV #SN Attr   VSize  VFree
    fedora   1   2   0 wz--n- 19.49g    0
    LV   VG     Attr       LSize   Layout     Role       CTime
    root fedora -wi-ao----  19.00g linear     public     Wed May 27 2015 08:09:21
    swap fedora -wi-ao---- 500.00m linear     public     Wed May 27 2015 08:09:21

8 years agotest: fix/enhance lvcreate-large-raid*.sh
Heinz Mauelshagen [Tue, 9 Aug 2016 16:16:01 +0000 (18:16 +0200)]
test: fix/enhance lvcreate-large-raid*.sh

Multi-step extend to even larger raid10 LV lvcreate-large-raid.sh.

Comment fixes.

8 years agotest: fix lvcreate-large-raid.sh
Heinz Mauelshagen [Tue, 9 Aug 2016 15:45:37 +0000 (17:45 +0200)]
test: fix lvcreate-large-raid.sh

RAID6 LVs may not be created with --nosync or data corruption
may occur in case of device failures.  The underlying MD raid6
personality used to drive the RaidLV performs read-modify-write
updates on stripes and thus relies on properly written parity
(P and Q Syndromes) during initial synchronization.

Once on it, enhance test to create/extend more and
larger RaidLVs and check sync/nosync status.

8 years agotest: add lvconvert-raid-takeover.sh
Heinz Mauelshagen [Tue, 9 Aug 2016 12:17:26 +0000 (14:17 +0200)]
test: add lvconvert-raid-takeover.sh

Commit 76ef2d15d839106adac4d82005d517be05a657eb introduced
raid0 <-> raid4 takeover and full mirror <-> raid1 support.

Add tests for these conversions.

Tests exposed a kernel semantics change freezing resynchronization
on conversions from raid0[_meta] -> raid4 or adding raid1 legs
because kernel kept the RAID mapped device in 'frozen' state unless
an 'idle' message was sent or the table was reloaded (kernel patch pending).

8 years agolvconvert: Fix repair and replace routing.
Alasdair G Kergon [Mon, 8 Aug 2016 22:13:34 +0000 (23:13 +0100)]
lvconvert: Fix repair and replace routing.

8 years agoman: explain deletion of 1st group member in dmstats.8.in
Bryn M. Reeves [Mon, 8 Aug 2016 18:29:12 +0000 (19:29 +0100)]
man: explain deletion of 1st group member in dmstats.8.in

Although the use of the first region_id in a group to store the
DMS_GROUP=... aux_data tag is an internal implementation detail,
it has a user visible consequence in that deleting this region will
cause the group to disappear: add an explanation of this to the
'group' command and 'Regions, areas, and groups' section.

8 years agoman: minor fixes to dmstats.8.in
Bryn M. Reeves [Mon, 8 Aug 2016 18:06:40 +0000 (19:06 +0100)]
man: minor fixes to dmstats.8.in

Remove obsolete reference to '--target'.

8 years agotest: Drop --mirrorlog when not a mirror.
Alasdair G Kergon [Mon, 8 Aug 2016 17:43:54 +0000 (18:43 +0100)]
test: Drop --mirrorlog when not a mirror.

8 years agolvconvert: separate type raid to mirror
David Teigland [Mon, 8 Aug 2016 15:37:24 +0000 (10:37 -0500)]
lvconvert: separate type raid to mirror

By the current division of unique operations,
converting type raid to type mirror is distinct
from converting type raid to raid.

8 years agoWHATS_NEW: reject --nosync option for RAID6 LVs in lvcreate
Heinz Mauelshagen [Mon, 8 Aug 2016 14:00:49 +0000 (16:00 +0200)]
WHATS_NEW: reject --nosync option for RAID6 LVs in lvcreate

8 years agolvconvert: Limit --corelog and --mirrorlog to mirrors.
Alasdair G Kergon [Mon, 8 Aug 2016 13:25:46 +0000 (14:25 +0100)]
lvconvert: Limit --corelog and --mirrorlog to mirrors.

It's an error to specify a log when the final result is not of type
mirror.

8 years agolvcreate: reject '--nosync' option for RAID6 LVs
Heinz Mauelshagen [Mon, 8 Aug 2016 11:52:35 +0000 (13:52 +0200)]
lvcreate: reject '--nosync' option for RAID6 LVs

The MD raid6 personality being used to drive lvm raid6 LVs does
read-modify-write updates to any stripes and thus relies on correct
P and Q Syndromes being written during initial synchronization or
it may fail reconstructing proper user data in case of SubLVs failing.

We may not allow the '--nosync' option on
creation of raid6 LVs for that reason.

Update/fix 'man lvcreate' in that regard.

add lvcreate-raid-nosync.sh test script.

- Resolves rhbz1358532

8 years agolvmcmdline: do not refresh whole cmd context if profile dropped after processing...
Peter Rajnoha [Mon, 8 Aug 2016 09:57:13 +0000 (11:57 +0200)]
lvmcmdline: do not refresh whole cmd context if profile dropped after processing LVM cmd

We don't need to refresh whole cmd context if we drop profile after
processing LVM command - just like we don't refresh cmd context when
we're applying the profile. It's because profiles contain only safe
subset of settings which do not require complete cmd context refresh.

This patch calls process_profilable_config instead of
refresh_toolcontext if there was profile applied for the LVM
command only, not --config which requires toolcontext refresh.
The process_profilable_config just sets proper values based on
values of profilable settings, but it does not do complete
reinitialization of various parts (e.g. filters, logging etc.).

8 years agolvconvert: Support raid0<->raid4 and mirror<->raid1.
Alasdair G Kergon [Sat, 6 Aug 2016 23:56:08 +0000 (00:56 +0100)]
lvconvert: Support raid0<->raid4 and mirror<->raid1.

Only simple takeover cases so far.

8 years agoraid: Report supported lvconvert conversions if invalid.
Alasdair G Kergon [Sat, 6 Aug 2016 23:30:26 +0000 (00:30 +0100)]
raid: Report supported lvconvert conversions if invalid.

8 years agoraid: Add workaround to prepare for raid4 conversions.
Alasdair G Kergon [Sat, 6 Aug 2016 23:07:06 +0000 (00:07 +0100)]
raid: Add workaround to prepare for raid4 conversions.

8 years agoraid: Pass list of LVs to remove into more fns.
Alasdair G Kergon [Sat, 6 Aug 2016 22:46:45 +0000 (23:46 +0100)]
raid: Pass list of LVs to remove into more fns.

8 years agoraid: Move two functions.
Alasdair G Kergon [Sat, 6 Aug 2016 22:29:27 +0000 (23:29 +0100)]
raid: Move two functions.

8 years agoWHATS_NEW: fixup order
Heinz Mauelshagen [Fri, 5 Aug 2016 14:31:46 +0000 (16:31 +0200)]
WHATS_NEW: fixup order

8 years agoraid_manip: fix log print format from commit d2c3b23e6dc3
Heinz Mauelshagen [Fri, 5 Aug 2016 14:29:56 +0000 (16:29 +0200)]
raid_manip: fix log print format from commit d2c3b23e6dc3

8 years agoWHATS_NEW: add '--rebuild PV' option to lvchange to allow for PV selective rebuilds
Heinz Mauelshagen [Fri, 5 Aug 2016 14:07:14 +0000 (16:07 +0200)]
WHATS_NEW: add '--rebuild PV' option to lvchange to allow for PV selective rebuilds

8 years agolvchange: Allow device specification when requesting a repair
Heinz Mauelshagen [Fri, 5 Aug 2016 13:54:49 +0000 (15:54 +0200)]
lvchange: Allow device specification when requesting a repair

'lvchange --resync LV' or 'lvchange --syncaction repair LV' request the
RAID layout specific parity blocks in raid4/5/6 to be recreated or the
mirrored blocks to be copied again from the master leg/copy for raid1/10,
thus not allowing a rebuild of a particular PV.

Introduce repeatable option '--[raid]rebuild PV' to allow to request
rebuilds of specific PVs in a RaidLV which are known to contain corrupt
data (e.g. rebuild a raid1 master leg).

Add test lvchange-rebuild-raid.sh to test/shell doing rebuild
variations on raid1/10 and 5; add aux function check_status_chars
to support the new test.

 - Resolves rhbz1064592

8 years agoraid: Tell lib whether stripesize was specified
Alasdair G Kergon [Fri, 5 Aug 2016 13:28:14 +0000 (14:28 +0100)]
raid: Tell lib whether stripesize was specified

8 years agoraid: Turn lv_raid_change_image_count into wrapper
Alasdair G Kergon [Fri, 5 Aug 2016 13:10:41 +0000 (14:10 +0100)]
raid: Turn lv_raid_change_image_count into wrapper

Eventually the separate entry point will disappear.

8 years agosegtypes: Further segtype macros.
Alasdair G Kergon [Fri, 5 Aug 2016 13:00:08 +0000 (14:00 +0100)]
segtypes: Further segtype macros.

8 years agoraid0: Validate presence of raid0 meta_areas more tightly.
Alasdair G Kergon [Thu, 4 Aug 2016 20:13:36 +0000 (21:13 +0100)]
raid0: Validate presence of raid0 meta_areas more tightly.

8 years agolvconvert: add FIXME
David Teigland [Thu, 4 Aug 2016 16:40:27 +0000 (11:40 -0500)]
lvconvert: add FIXME

operations are no longer identified correctly.

8 years agostriped: Add precise macros for original segtype.
Alasdair G Kergon [Thu, 4 Aug 2016 00:24:39 +0000 (01:24 +0100)]
striped: Add precise macros for original segtype.

The existing striped macros include raid0 segments.

8 years agolvconvert: Improve error message when no -m.
Alasdair G Kergon [Wed, 3 Aug 2016 22:31:50 +0000 (23:31 +0100)]
lvconvert: Improve error message when no -m.

8 years agoman: minor corrections in pvscan
David Teigland [Wed, 3 Aug 2016 20:49:43 +0000 (15:49 -0500)]
man: minor corrections in pvscan

8 years agoman: include info about disabled lvmetad
David Teigland [Wed, 3 Aug 2016 20:39:43 +0000 (15:39 -0500)]
man: include info about disabled lvmetad

8 years agolvconvert: Provide entry point for new functionality.
Alasdair G Kergon [Wed, 3 Aug 2016 02:53:29 +0000 (03:53 +0100)]
lvconvert: Provide entry point for new functionality.

Prepare for new segment type conversion functionality in cases that
currently fail.  In the short-term, we need to do this while limiting
the changes to the code paths for the conversions that are already
supported.

8 years agolvconvert: Pass region_size to lv_raid_convert.
Alasdair G Kergon [Tue, 2 Aug 2016 22:51:20 +0000 (23:51 +0100)]
lvconvert: Pass region_size to lv_raid_convert.

8 years agolvconvert: Preserve mirror region size with --repair.
Alasdair G Kergon [Tue, 2 Aug 2016 18:50:04 +0000 (19:50 +0100)]
lvconvert: Preserve mirror region size with --repair.

8 years agolvconvert: Divide into 12 categories.
Alasdair G Kergon [Tue, 2 Aug 2016 15:40:33 +0000 (16:40 +0100)]
lvconvert: Divide into 12 categories.

8 years agolvconvert: Treat --repair as an independent case.
Alasdair G Kergon [Tue, 2 Aug 2016 15:21:34 +0000 (16:21 +0100)]
lvconvert: Treat --repair as an independent case.

8 years agolvconvert: Forbid stripe parameters with --repair.
Alasdair G Kergon [Tue, 2 Aug 2016 14:57:45 +0000 (15:57 +0100)]
lvconvert: Forbid stripe parameters with --repair.

8 years agovg_validate: correct min_recovery_rate check message
Heinz Mauelshagen [Tue, 2 Aug 2016 13:27:13 +0000 (15:27 +0200)]
vg_validate: correct min_recovery_rate check message

8 years agovg_validate: new RAID segment checks in check_lv_segments()
Heinz Mauelshagen [Mon, 1 Aug 2016 20:42:05 +0000 (22:42 +0200)]
vg_validate: new RAID segment checks in check_lv_segments()
             introduced with commit 8f62b7bfe56c rely on complete
             defintions of the relations between the LVs of a VG.
             Hence only run these checks when the complete_vg flag
             is set on calls to check_lv_segments().

             lvconvert failed in test lvconvert-thin-raid.sh when
             calling check_lv_segments() from _read_segments() without
             providing a complete definition.

8 years agoRevert "thin: when converting a thin pool data or metadata LV from"
Alasdair G Kergon [Mon, 1 Aug 2016 14:17:44 +0000 (15:17 +0100)]
Revert "thin: when converting a thin pool data or metadata LV from"

This reverts commit 237f84e0383c7e3003050be7c072ee0a092fd426.

This case failed:
    lvcreate --type raid1 -m1 -l2 vg99
    lvcreate -aey -l2 -s vg99/lvol0
    lvconvert -m2 vg99/lvol0

8 years agolvconvert: Set lp->segtype in only one place.
Alasdair G Kergon [Sat, 30 Jul 2016 17:12:57 +0000 (18:12 +0100)]
lvconvert: Set lp->segtype in only one place.

8 years agolvconvert: Rely upon lp->thin and lp->cache.
Alasdair G Kergon [Sat, 30 Jul 2016 14:56:17 +0000 (15:56 +0100)]
lvconvert: Rely upon lp->thin and lp->cache.

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