Bug 1191935

Summary: LVM RAID - Add support for raid level reshaping
Product: Red Hat Enterprise Linux 7 Reporter: Heinz Mauelshagen <heinzm>
Component: lvm2Assignee: Heinz Mauelshagen <heinzm>
lvm2 sub component: Mirroring and RAID QA Contact: cluster-qe <cluster-qe>
Status: CLOSED ERRATA Docs Contact: Steven J. Levine <slevine>
Severity: high    
Priority: high CC: agk, cmarthal, heinzm, jbrassow, jkachuck, msnitzer, pasik, prajnoha, prockai, rbednar, slevine, zkabelac
Version: 7.2Keywords: Tracking, Triaged
Target Milestone: rc   
Target Release: 7.4   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
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).
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-08-01 21:47:18 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1430028    
Bug Blocks: 834579, 1189124, 1346081, 1354610, 1394039    

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:
Always

Steps to Reproduce:
Does not work yet

Actual results:
Any level reshaping does not work.

Expected results:
Success

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:
raid5_{ls,rs,la,ra,n}
raid6_{zr,nc,nr,ls_6,rs_6,la_6,ra_6,n_6}
raid10(_near)

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.

https://access.redhat.com/errata/RHBA-2017:2222