Bug 1191935 - LVM RAID - Add support for raid level reshaping
Summary: LVM RAID - Add support for raid level reshaping
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: lvm2
Version: 7.2
Hardware: Unspecified
OS: Unspecified
Target Milestone: rc
: 7.4
Assignee: Heinz Mauelshagen
QA Contact: cluster-qe@redhat.com
Steven J. Levine
Depends On: 1430028
Blocks: 834579 1189124 1346081 1354610 1394039
TreeView+ depends on / blocked
Reported: 2015-02-12 09:30 UTC by Heinz Mauelshagen
Modified: 2023-03-08 07:27 UTC (History)
12 users (show)

Fixed In Version: lvm2-2.02.169-1.el7
Doc Type: Enhancement
Doc Text:
LVM now supports RAID reshaping LVM now provides support for RAID reshaping. While takeover allows users to change from one RAID type to another, reshaping allows users to change properties such as the RAID algorithm, stripe size, region size, or number of images. For example, a user can change a 3-way stripe to a 5-way stripe by adding two additional devices. Reshaping is available only on top-level logical volumes in single machine mode, and only while the logical volume is not in-use (for example, when it is mounted by a file system).
Clone Of:
Last Closed: 2017-08-01 21:47:18 UTC
Target Upstream Version:

Attachments (Terms of Use)

System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2017:2222 0 normal SHIPPED_LIVE lvm2 bug fix and enhancement update 2017-08-01 18:42:41 UTC

Description Heinz Mauelshagen 2015-02-12 09:30:41 UTC
Description of problem:
LVM RAID lags support for raid level reshaping (i.e. changing of the RAID algorithm such as raid5 left symmetric to asymmetric and changing the md chunk size) by utilizing the respective md raid features in the kernel via the device-mapper raid target.

Version-Release number of selected component (if applicable):

How reproducible:

Steps to Reproduce:
Does not work yet

Actual results:
Any level reshaping does not work.

Expected results:

Additional info:
On conversions of the raid algorithms or the md chunk size (i.e. the lvm stripe size) via the lvconvert command, the changes have to be passed into kernel md via the device-mapper raid target; this requires an API addition to the md kernel core and it's utilization in the target (see seperate bzs)

Comment 4 Heinz Mauelshagen 2016-07-06 14:15:37 UTC
Code's done and being reviewed/integrated.

Comment 10 Heinz Mauelshagen 2017-03-01 17:27:51 UTC
Reshaping is copes with the conversion of the raid layout (e.g. raid5_ls -> raid5_n), the stripe size (e.g. 32k -> 64k) or the number of stripes (e.g. add 3 stripes to a raid set with 5 stripes; same for removing stripes) in a raid set.

Reshaping _never_ changes the raid level!
(Changing the level is a takeover (e.g. raid5_n -> raid0/striped))

Overview of raid LV types (i.e. layout algorithms for data and parity) to test:

Dimension of the test matrix for aforementioned levels:

1. convert from/to all the layout variations on each level with the
   exception of raid10, where there's only one layout for now
2. convert the stripe size in each of those layouts;
   stripe size must be > 4k and < regionsize
3. change the regionsize (lvconvert -R ...) on given RaidLVs
   (e.g. to be able to grow the stripesize)
3. convert adding/removing stripes to any of those layouts
   (-f option needed with lvconvert to remove stripes;
    repeat when reshape finished to remove the freed legs)
4. combine 1-3, ie. convert layout and stripesize at the same time
5. add takeover conversions to the matrix:
   - after having changed layout to any _n variants, convert levels down
     - raid6_n_6 -> raid5/raid0/raid0_meta/striped
     - raid5* -> raid6* (any raid5* layouts directly map to their
       raid6 counterparts, e.g. raid5_rs to raid6_rs_6

Add linear -> striped conversions and vice versa to the matrix

Comment 13 Heinz Mauelshagen 2017-03-09 15:09:43 UTC
Upstream commits e2354ea344c2 to 34caf8317243

Comment 16 errata-xmlrpc 2017-08-01 21:47:18 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.


Note You need to log in before you can comment on or make changes to this bug.