Bug 1624083

Summary: RAID TAKEOVER: direct conversions have been replaced with interim raid5_n step
Product: Red Hat Enterprise Linux 7 Reporter: Corey Marthaler <cmarthal>
Component: lvm2Assignee: Heinz Mauelshagen <heinzm>
lvm2 sub component: Mirroring and RAID QA Contact: cluster-qe <cluster-qe>
Status: CLOSED ERRATA Docs Contact:
Severity: medium    
Priority: unspecified CC: agk, heinzm, jbrassow, mcsontos, msnitzer, prajnoha, rhandlin, zkabelac
Version: 7.6Keywords: Regression
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: lvm2-2.02.180-8.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-10-30 11:03:51 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:

Description Corey Marthaler 2018-08-30 21:24:11 UTC
Description of problem:
Some direct takeover scenarios in RHEL7.5 (and possible even in earlier 7.6 rpms) have been replaced with an interim raid5_n sep.

Is this expected, or a regression?

# RHEL7.5 (striped -> raid4)

3.10.0-862.el7.x86_64

lvm2-2.02.177-4.el7    BUILT: Fri Feb 16 06:22:31 CST 2018
lvm2-libs-2.02.177-4.el7    BUILT: Fri Feb 16 06:22:31 CST 2018
device-mapper-1.02.146-4.el7    BUILT: Fri Feb 16 06:22:31 CST 2018
device-mapper-libs-1.02.146-4.el7    BUILT: Fri Feb 16 06:22:31 CST 2018
device-mapper-event-1.02.146-4.el7    BUILT: Fri Feb 16 06:22:31 CST 2018
device-mapper-event-libs-1.02.146-4.el7    BUILT: Fri Feb 16 06:22:31 CST 2018
device-mapper-persistent-data-0.7.3-3.el7    BUILT: Tue Nov 14 05:07:18 CST 2017

[root@mckinley-04 ~]# lvcreate -ay --type striped  -i 3 -n takeover -L 2.75G VG
  Using default stripesize 64.00 KiB.
  Rounding size 2.75 GiB (704 extents) up to stripe boundary size 2.75 GiB(705 extents).
  Logical volume "takeover" created.

[root@mckinley-04 ~]# lvs -a -o +devices
  LV       VG  Attr       LSize    Cpy%Sync Devices                                                             
  takeover VG  -wi-a-----   2.75g           /dev/mapper/mpatha1(0),/dev/mapper/mpathb1(0),/dev/mapper/mpathc1(0)

# One direct step
[root@mckinley-04 ~]# lvconvert --force --yes --type raid4 VG/takeover
  Using default stripesize 64.00 KiB.
  Logical volume VG/takeover successfully converted.

[root@mckinley-04 ~]# lvs -a -o +devices,segtype
  LV                  VG  Attr       LSize    Cpy%Sync Devices                                                                             Type  
  takeover            VG  rwi-a-r---   2.75g  100.00   takeover_rimage_0(0),takeover_rimage_1(0),takeover_rimage_2(0),takeover_rimage_3(0) raid4 
  [takeover_rimage_0] VG  iwi-aor--- 940.00m           /dev/mapper/mpathd1(1)                                                              linear
  [takeover_rimage_1] VG  iwi-aor--- 940.00m           /dev/mapper/mpatha1(0)                                                              linear
  [takeover_rimage_2] VG  iwi-aor--- 940.00m           /dev/mapper/mpathb1(0)                                                              linear
  [takeover_rimage_3] VG  iwi-aor--- 940.00m           /dev/mapper/mpathc1(0)                                                              linear
  [takeover_rmeta_0]  VG  ewi-aor---   4.00m           /dev/mapper/mpathd1(0)                                                              linear
  [takeover_rmeta_1]  VG  ewi-aor---   4.00m           /dev/mapper/mpatha1(235)                                                            linear
  [takeover_rmeta_2]  VG  ewi-aor---   4.00m           /dev/mapper/mpathb1(235)                                                            linear
  [takeover_rmeta_3]  VG  ewi-aor---   4.00m           /dev/mapper/mpathc1(235)                                                            linear



# RHEL7.6 (striped -> raid4)

3.10.0-939.el7.x86_64

lvm2-2.02.180-6.el7    BUILT: Fri Aug 24 08:52:19 CDT 2018
lvm2-libs-2.02.180-6.el7    BUILT: Fri Aug 24 08:52:19 CDT 2018
lvm2-cluster-2.02.180-6.el7    BUILT: Fri Aug 24 08:52:19 CDT 2018
lvm2-lockd-2.02.180-6.el7    BUILT: Fri Aug 24 08:52:19 CDT 2018
lvm2-python-boom-0.9-9.el7    BUILT: Fri Aug 24 08:52:54 CDT 2018
cmirror-2.02.180-6.el7    BUILT: Fri Aug 24 08:52:19 CDT 2018
device-mapper-1.02.149-6.el7    BUILT: Fri Aug 24 08:52:19 CDT 2018
device-mapper-libs-1.02.149-6.el7    BUILT: Fri Aug 24 08:52:19 CDT 2018
device-mapper-event-1.02.149-6.el7    BUILT: Fri Aug 24 08:52:19 CDT 2018
device-mapper-event-libs-1.02.149-6.el7    BUILT: Fri Aug 24 08:52:19 CDT 2018
device-mapper-persistent-data-0.7.3-3.el7    BUILT: Tue Nov 14 05:07:18 CST 2017


[root@mckinley-03 ~]# lvcreate -ay --type striped  -i 3 -n takeover -L 2.75G VG
  Using default stripesize 64.00 KiB.
  Rounding size 2.75 GiB (704 extents) up to stripe boundary size 2.75 GiB(705 extents).
  Logical volume "takeover" created.
[root@mckinley-03 ~]# lvs -a -o +devices,segtype
  LV       VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert Devices                                                              Type   
  takeover VG  -wi-a-----   2.75g                                                     /dev/mapper/mpatha1(0),/dev/mapper/mpathb1(0),/dev/mapper/mpathc1(0) striped

[root@mckinley-03 ~]# lvconvert --force --yes --type raid4 VG/takeover
  Using default stripesize 64.00 KiB.
  Replaced LV type raid4 with possible type raid5_n.
  Repeat this command to convert to raid4 after an interim conversion has finished.
  Logical volume VG/takeover successfully converted.

[root@mckinley-03 ~]# lvconvert --force --yes --type raid4 VG/takeover
  Using default stripesize 64.00 KiB.
  Unable to convert VG/takeover while it is not in-sync.
  Reshape request failed on LV VG/takeover.

# wait for sync
[root@mckinley-03 ~]# lvs -a -o +devices,segtype
  LV         VG  Attr       LSize    Cpy%Sync Convert Devices                                                                             Type   
  takeover   VG  rwi-a-r---   2.75g  100.00           takeover_rimage_0(0),takeover_rimage_1(0),takeover_rimage_2(0),takeover_rimage_3(0) raid5_n

[root@mckinley-03 ~]# lvconvert --force --yes --type raid4 VG/takeover
  Using default stripesize 64.00 KiB.
  Converting raid5_n LV VG/takeover to raid4.
  Logical volume VG/takeover successfully converted.



# RHEL7.5 (raid4 -> raid0_meta)
 
[root@mckinley-04 ~]# lvcreate -ay --type raid4  -i 2 -n takeover -L 2.75G VG
  Using default stripesize 64.00 KiB.
  Logical volume "takeover" created.

[root@mckinley-04 ~]# lvs -a -o +devices
  LV                  VG  Attr       LSize    Cpy%Sync Convert Devices
  takeover            VG  rwi-a-r---   2.75g  100.00           takeover_rimage_0(0),takeover_rimage_1(0),takeover_rimage_2(0)
  [takeover_rimage_0] VG  iwi-aor---  <1.38g                   /dev/mapper/mpatha1(1)
  [takeover_rimage_1] VG  iwi-aor---  <1.38g                   /dev/mapper/mpathb1(1)
  [takeover_rimage_2] VG  iwi-aor---  <1.38g                   /dev/mapper/mpathc1(1)
  [takeover_rmeta_0]  VG  ewi-aor---   4.00m                   /dev/mapper/mpatha1(0)
  [takeover_rmeta_1]  VG  ewi-aor---   4.00m                   /dev/mapper/mpathb1(0)
  [takeover_rmeta_2]  VG  ewi-aor---   4.00m                   /dev/mapper/mpathc1(0)

# One direct step
[root@mckinley-04 ~]# lvconvert --force --yes   --type raid0_meta VG/takeover
  Using default stripesize 64.00 KiB.
  Logical volume VG/takeover successfully converted.

[root@mckinley-04 ~]# lvs -a -o +devices,segtype
  LV                  VG  Attr       LSize    Cpy%Sync Convert Devices                                   Type      
  takeover            VG  rwi-a-r---   2.75g                   takeover_rimage_0(0),takeover_rimage_1(0) raid0_meta
  [takeover_rimage_0] VG  iwi-aor---  <1.38g                   /dev/mapper/mpathb1(1)                    linear    
  [takeover_rimage_1] VG  iwi-aor---  <1.38g                   /dev/mapper/mpathc1(1)                    linear    
  [takeover_rmeta_0]  VG  ewi-aor---   4.00m                   /dev/mapper/mpathb1(0)                    linear    
  [takeover_rmeta_1]  VG  ewi-aor---   4.00m                   /dev/mapper/mpathc1(0)                    linear    



# RHEL7.6 (raid4 -> raid0_meta)

[root@mckinley-03 ~]# lvcreate -ay --type raid4  -i 2 -n takeover -L 2.75G VG
  Using default stripesize 64.00 KiB.
  Logical volume "takeover" created.
[root@mckinley-03 ~]# lvs -a -o +devices
  LV                  VG  Attr       LSize    Cpy%Sync Convert Devices
  takeover            VG  rwi-a-r---   2.75g  75.10            takeover_rimage_0(0),takeover_rimage_1(0),takeover_rimage_2(0)
  [takeover_rimage_0] VG  Iwi-aor---  <1.38g                   /dev/mapper/mpatha1(1)
  [takeover_rimage_1] VG  Iwi-aor---  <1.38g                   /dev/mapper/mpathb1(1)
  [takeover_rimage_2] VG  Iwi-aor---  <1.38g                   /dev/mapper/mpathc1(1)
  [takeover_rmeta_0]  VG  ewi-aor---   4.00m                   /dev/mapper/mpatha1(0)
  [takeover_rmeta_1]  VG  ewi-aor---   4.00m                   /dev/mapper/mpathb1(0)
  [takeover_rmeta_2]  VG  ewi-aor---   4.00m                   /dev/mapper/mpathc1(0)
# Wait for sync
[root@mckinley-03 ~]# lvconvert --force --yes   --type raid0_meta VG/takeover
  Using default stripesize 64.00 KiB.
  Replaced LV type raid0_meta with possible type raid5_n.
  Repeat this command to convert to raid0_meta after an interim conversion has finished.
  Converting raid4 LV VG/takeover to raid5_n.
  Logical volume VG/takeover successfully converted.
[root@mckinley-03 ~]# lvs -a -o +devices
  LV                  VG  Attr       LSize    Cpy%Sync Convert Devices
  takeover            VG  rwi-a-r-s-   2.75g  13.98            takeover_rimage_0(0),takeover_rimage_1(0),takeover_rimage_2(0)
  [takeover_rimage_0] VG  Iwi-aor---  <1.38g                   /dev/mapper/mpatha1(1)
  [takeover_rimage_1] VG  Iwi-aor---  <1.38g                   /dev/mapper/mpathb1(1)
  [takeover_rimage_2] VG  Iwi-aor---  <1.38g                   /dev/mapper/mpathc1(1)
  [takeover_rmeta_0]  VG  ewi-aor---   4.00m                   /dev/mapper/mpatha1(0)
  [takeover_rmeta_1]  VG  ewi-aor---   4.00m                   /dev/mapper/mpathb1(0)
  [takeover_rmeta_2]  VG  ewi-aor---   4.00m                   /dev/mapper/mpathc1(0)
[root@mckinley-03 ~]# lvs -a -o +devices
  LV                  VG  Attr       LSize    Cpy%Sync Convert Devices
  takeover            VG  rwi-a-r---   2.75g  100.00           takeover_rimage_0(0),takeover_rimage_1(0),takeover_rimage_2(0)
  [takeover_rimage_0] VG  iwi-aor---  <1.38g                   /dev/mapper/mpatha1(1)
  [takeover_rimage_1] VG  iwi-aor---  <1.38g                   /dev/mapper/mpathb1(1)
  [takeover_rimage_2] VG  iwi-aor---  <1.38g                   /dev/mapper/mpathc1(1)
  [takeover_rmeta_0]  VG  ewi-aor---   4.00m                   /dev/mapper/mpatha1(0)
  [takeover_rmeta_1]  VG  ewi-aor---   4.00m                   /dev/mapper/mpathb1(0)
  [takeover_rmeta_2]  VG  ewi-aor---   4.00m                   /dev/mapper/mpathc1(0)
[root@mckinley-03 ~]# lvconvert --force --yes   --type raid0_meta VG/takeover
  Using default stripesize 64.00 KiB.
  Logical volume VG/takeover successfully converted.

Comment 1 Corey Marthaler 2018-08-30 22:05:21 UTC
Like I suspected, this behavior changed just since the last lvm build. 180-5 did not have this new behavior which point to this being a regression.

# RHEL7.6 

3.10.0-939.el7.x86_64

lvm2-2.02.180-5.el7    BUILT: Tue Aug 21 11:29:37 CDT 2018
lvm2-libs-2.02.180-5.el7    BUILT: Tue Aug 21 11:29:37 CDT 2018
lvm2-cluster-2.02.180-5.el7    BUILT: Tue Aug 21 11:29:37 CDT 2018
lvm2-lockd-2.02.180-5.el7    BUILT: Tue Aug 21 11:29:37 CDT 2018
lvm2-python-boom-0.9-9.el7    BUILT: Fri Aug 24 08:52:54 CDT 2018
cmirror-2.02.180-5.el7    BUILT: Tue Aug 21 11:29:37 CDT 2018
device-mapper-1.02.149-5.el7    BUILT: Tue Aug 21 11:29:37 CDT 2018
device-mapper-libs-1.02.149-5.el7    BUILT: Tue Aug 21 11:29:37 CDT 2018
device-mapper-event-1.02.149-5.el7    BUILT: Tue Aug 21 11:29:37 CDT 2018
device-mapper-event-libs-1.02.149-5.el7    BUILT: Tue Aug 21 11:29:37 CDT 2018
device-mapper-persistent-data-0.7.3-3.el7    BUILT: Tue Nov 14 05:07:18 CST 2017


### Striped -> raid4
[root@mckinley-03 ~]# lvcreate -ay --type striped  -i 3 -n takeover -L 2.75G VG
  Using default stripesize 64.00 KiB.
  Rounding size 2.75 GiB (704 extents) up to stripe boundary size 2.75 GiB(705 extents).
  Logical volume "takeover" created.
[root@mckinley-03 ~]# lvs -a -o +devices,segtype
  LV       VG Attr       LSize    Cpy%Sync Convert Devices                                                              Type   
  takeover VG -wi-a-----   2.75g                   /dev/mapper/mpathb1(0),/dev/mapper/mpathc1(0),/dev/mapper/mpathd1(0) striped
[root@mckinley-03 ~]# lvconvert --force --yes --type raid4 VG/takeover
  Using default stripesize 64.00 KiB.
  Logical volume VG/takeover successfully converted.

ot@mckinley-03 ~]# lvs -a -o +devices,segtype
  LV                  VG Attr       LSize    Cpy%Sync Convert Devices                                                                             Type  
  takeover            VG rwi-a-r---   2.75g  100.00           takeover_rimage_0(0),takeover_rimage_1(0),takeover_rimage_2(0),takeover_rimage_3(0) raid4 
  [takeover_rimage_0] VG iwi-aor--- 940.00m                   /dev/mapper/mpathe1(1)                                                              linear
  [takeover_rimage_1] VG iwi-aor--- 940.00m                   /dev/mapper/mpathb1(0)                                                              linear
  [takeover_rimage_2] VG iwi-aor--- 940.00m                   /dev/mapper/mpathc1(0)                                                              linear
  [takeover_rimage_3] VG iwi-aor--- 940.00m                   /dev/mapper/mpathd1(0)                                                              linear
  [takeover_rmeta_0]  VG ewi-aor---   4.00m                   /dev/mapper/mpathe1(0)                                                              linear
  [takeover_rmeta_1]  VG ewi-aor---   4.00m                   /dev/mapper/mpathb1(235)                                                            linear
  [takeover_rmeta_2]  VG ewi-aor---   4.00m                   /dev/mapper/mpathc1(235)                                                            linear
  [takeover_rmeta_3]  VG ewi-aor---   4.00m                   /dev/mapper/mpathd1(235)                                                            linear


### Raid4 -> raid0_meta
[root@mckinley-03 ~]# lvcreate -ay --type raid4  -i 2 -n takeover -L 2.75G VG
  Using default stripesize 64.00 KiB.
  Logical volume "takeover" created.
[root@mckinley-03 ~]# lvs -a -o +devices,segtype
  LV                  VG Attr       LSize    Cpy%Sync Convert Devices                                                        Type  
  takeover            VG rwi-a-r---   2.75g  100.00           takeover_rimage_0(0),takeover_rimage_1(0),takeover_rimage_2(0) raid4 
  [takeover_rimage_0] VG iwi-aor---  <1.38g                   /dev/mapper/mpathb1(1)                                         linear
  [takeover_rimage_1] VG iwi-aor---  <1.38g                   /dev/mapper/mpathc1(1)                                         linear
  [takeover_rimage_2] VG iwi-aor---  <1.38g                   /dev/mapper/mpathd1(1)                                         linear
  [takeover_rmeta_0]  VG ewi-aor---   4.00m                   /dev/mapper/mpathb1(0)                                         linear
  [takeover_rmeta_1]  VG ewi-aor---   4.00m                   /dev/mapper/mpathc1(0)                                         linear
  [takeover_rmeta_2]  VG ewi-aor---   4.00m                   /dev/mapper/mpathd1(0)                                         linear
[root@mckinley-03 ~]# lvconvert --force --yes   --type raid0_meta VG/takeover
  Using default stripesize 64.00 KiB.
  Logical volume VG/takeover successfully converted.
[root@mckinley-03 ~]# lvs -a -o +devices,segtype
  LV                  VG Attr       LSize    Cpy%Sync Convert Devices                                   Type      
  takeover            VG rwi-a-r---   2.75g                   takeover_rimage_0(0),takeover_rimage_1(0) raid0_meta
  [takeover_rimage_0] VG iwi-aor---  <1.38g                   /dev/mapper/mpathc1(1)                    linear    
  [takeover_rimage_1] VG iwi-aor---  <1.38g                   /dev/mapper/mpathd1(1)                    linear    
  [takeover_rmeta_0]  VG ewi-aor---   4.00m                   /dev/mapper/mpathc1(0)                    linear    
  [takeover_rmeta_1]  VG ewi-aor---   4.00m                   /dev/mapper/mpathd1(0)                    linear

Comment 3 Corey Marthaler 2018-08-31 13:48:34 UTC
Three additional conversions that are affected by this:

FROM:raid0_meta TO:raid4
FROM:raid4 TO:striped
FROM:raid4 TO:raid0

Comment 4 Heinz Mauelshagen 2018-09-04 10:53:28 UTC
Regression introduced with lvm2 upstream
commit e83c4f07ca4a84808178d5d22cba655e5e370cd8.

Fixed with upstream commit 22a13043683a5647e8cc4e3aead911e5269ffd2f.

Comment 8 Corey Marthaler 2018-09-06 21:14:38 UTC
The five listed originally in this bug appear to be fixed in 180-7, however at least one other one that hadn't been discovered until now still remains.

FROM:striped TO:raid6_n_6

180-[5]

[root@host-073 ~]#  lvcreate -ay --type striped  -i 3 -n takeover -L 2.75G VG
  Using default stripesize 64.00 KiB.
  Rounding size 2.75 GiB (704 extents) up to stripe boundary size 2.75 GiB(705 extents).
  Logical volume "takeover" created.
[root@host-073 ~]# lvconvert --type raid6_n_6 VG/takeover
  Using default stripesize 64.00 KiB.
Are you sure you want to convert striped LV VG/takeover to raid6_n_6 type? [y/n]: y
  Logical volume VG/takeover successfully converted.
[root@host-073 ~]# lvs -a -o +segtype
  LV                  VG            Attr       LSize   Pool   Origin Data%  Meta%  Move Log Cpy%Sync Convert Type     
  takeover            VG            rwi-a-r---   2.75g                                      12.65            raid6_n_6


180-[6,7]

[root@host-073 ~]#  lvcreate  --type striped  -i 3 -n takeover -L 2.75G centipede2
  Using default stripesize 64.00 KiB.
  Rounding size 2.75 GiB (704 extents) up to stripe boundary size 2.75 GiB(705 extents).
  Logical volume "takeover" created.

[root@host-073 ~]# lvconvert --force --yes --type raid6_n_6 centipede2/takeover
  Using default stripesize 64.00 KiB.
  Replaced LV type raid6_n_6 with possible type raid5_n.
  Repeat this command to convert to raid6_n_6 after an interim conversion has finished.
  Logical volume centipede2/takeover successfully converted.





## FIXED in 180-7:

FROM:raid0_meta TO:raid4
[root@host-092 ~]# lvcreate -ay --type raid0_meta  -i 3 -n takeover -L 2.75G VG
  Using default stripesize 64.00 KiB.
  Rounding size 2.75 GiB (704 extents) up to stripe boundary size 2.75 GiB(705 extents).
  Logical volume "takeover" created.
[root@host-092 ~]# lvconvert --type raid4 VG/takeover
  Using default stripesize 64.00 KiB.
Are you sure you want to convert raid0_meta LV VG/takeover to raid4 type? [y/n]: y
  Logical volume VG/takeover successfully converted.


FROM:raid4 TO:striped
[root@host-092 ~]# lvcreate -ay --type raid4 -i 3 -n takeover -L 2.75G VG
  Using default stripesize 64.00 KiB.
  Rounding size 2.75 GiB (704 extents) up to stripe boundary size 2.75 GiB(705 extents).
  Logical volume "takeover" created.
[root@host-092 ~]# lvconvert --type striped VG/takeover
Are you sure you want to convert raid4 LV VG/takeover to striped type? [y/n]: y
  Logical volume VG/takeover successfully converted.


FROM:raid4 TO:raid0
[root@host-092 ~]# lvcreate -ay --type raid4 -i 3 -n takeover -L 2.75G VG
  Using default stripesize 64.00 KiB.
  Rounding size 2.75 GiB (704 extents) up to stripe boundary size 2.75 GiB(705 extents).
  Logical volume "takeover" created.
[root@host-092 ~]# lvconvert --type raid0 VG/takeover
  Using default stripesize 64.00 KiB.
Are you sure you want to convert raid4 LV VG/takeover to raid0 type? [y/n]: y
  Logical volume VG/takeover successfully converted.


FROM:raid4 TO:raid0_meta
[root@host-092 ~]# lvcreate -ay --type raid4 -i 3 -n takeover -L 2.75G VG
  Using default stripesize 64.00 KiB.
  Rounding size 2.75 GiB (704 extents) up to stripe boundary size 2.75 GiB(705 extents).
  Logical volume "takeover" created.
[root@host-092 ~]# lvconvert --type raid0_meta VG/takeover
  Using default stripesize 64.00 KiB.
Are you sure you want to convert raid4 LV VG/takeover to raid0_meta type? [y/n]: y
  Logical volume VG/takeover successfully converted.


FROM:striped TO:raid4
[root@host-092 ~]# lvcreate -ay --type striped -i 3 -n takeover -L 2.75G VG
  Using default stripesize 64.00 KiB.
  Rounding size 2.75 GiB (704 extents) up to stripe boundary size 2.75 GiB(705 extents).
  Logical volume "takeover" created.
[root@host-092 ~]# lvconvert --type raid4 VG/takeover
  Using default stripesize 64.00 KiB.
Are you sure you want to convert striped LV VG/takeover to raid4 type? [y/n]: y
  Logical volume VG/takeover successfully converted.

Comment 9 Heinz Mauelshagen 2018-09-07 10:41:46 UTC
lvm2 upstream commit 22a13043683a5647e8cc4e3aead911e5269ffd2f addresses this bz.

Leaving in assigned though, because Corey told me about a
striped/raid0/raid0_meta -> raid6 case, where we can avoid an interim raid5_n step in case of >= 3 data stripes which I'll post a fix for shortly.

Comment 10 Heinz Mauelshagen 2018-09-07 11:50:45 UTC
lvm2 upstream commit e2e30a64ab10602951443dfbd3481bd6b32f5459 solving
aforementioned issue as of comment #9.

Comment 11 Corey Marthaler 2018-09-24 21:59:10 UTC
Marking verified in the latest rpms. All scenarios mentioned in this bug now work directly again. If any others arise, a new bug will be filed to be dealt with in 7.7.

3.10.0-951.el7.x86_64
lvm2-2.02.180-8.el7    BUILT: Mon Sep 10 04:45:22 CDT 2018
lvm2-libs-2.02.180-8.el7    BUILT: Mon Sep 10 04:45:22 CDT 2018
device-mapper-1.02.149-8.el7    BUILT: Mon Sep 10 04:45:22 CDT 2018
device-mapper-libs-1.02.149-8.el7    BUILT: Mon Sep 10 04:45:22 CDT 2018
device-mapper-event-1.02.149-8.el7    BUILT: Mon Sep 10 04:45:22 CDT 2018
device-mapper-event-libs-1.02.149-8.el7    BUILT: Mon Sep 10 04:45:22 CDT 2018
device-mapper-persistent-data-0.7.3-3.el7    BUILT: Tue Nov 14 05:07:18 CST 2017



FROM:striped TO:raid6_n_6
[root@host-087 ~]# lvcreate -ay --type striped  -i 3 -n takeover -L 2.75G VG
  Using default stripesize 64.00 KiB.
  Rounding size 2.75 GiB (704 extents) up to stripe boundary size 2.75 GiB(705 extents).
  Logical volume "takeover" created.
[root@host-087 ~]# lvconvert --type raid6_n_6 VG/takeover
  Using default stripesize 64.00 KiB.
Are you sure you want to convert striped LV VG/takeover to raid6_n_6 type? [y/n]: y
  Logical volume VG/takeover successfully converted.



FROM:raid0_meta TO:raid6_n_6
[root@host-087 ~]# lvcreate -ay --type raid0_meta  -i 3 -n takeover -L 2.75G VG
  Using default stripesize 64.00 KiB.
  Rounding size 2.75 GiB (704 extents) up to stripe boundary size 2.75 GiB(705 extents).
  Logical volume "takeover" created.
[root@host-087 ~]# lvconvert --type raid6 VG/takeover
  Using default stripesize 64.00 KiB.
  Replaced LV type raid6 (same as raid6_zr) with possible type raid6_n_6.
  Repeat this command to convert to raid6 after an interim conversion has finished.
Are you sure you want to convert raid0_meta LV VG/takeover to raid6_n_6 type? [y/n]: y
  Logical volume VG/takeover successfully converted.



FROM:raid0_meta TO:raid4
[root@host-087 ~]# lvcreate -ay --type raid0_meta  -i 3 -n takeover -L 2.75G VG
  Using default stripesize 64.00 KiB.
  Rounding size 2.75 GiB (704 extents) up to stripe boundary size 2.75 GiB(705 extents).
  Logical volume "takeover" created.
[root@host-087 ~]# lvconvert --type raid4 VG/takeover
  Using default stripesize 64.00 KiB.
Are you sure you want to convert raid0_meta LV VG/takeover to raid4 type? [y/n]: y
  Logical volume VG/takeover successfully converted.



FROM:raid4 TO:striped
[root@host-087 ~]# lvcreate -ay --type raid4 -i 3 -n takeover -L 2.75G VG
  Using default stripesize 64.00 KiB.
  Rounding size 2.75 GiB (704 extents) up to stripe boundary size 2.75 GiB(705 extents).
  Logical volume "takeover" created.
[root@host-087 ~]# lvconvert --type striped VG/takeover
Are you sure you want to convert raid4 LV VG/takeover to striped type? [y/n]: y
  Logical volume VG/takeover successfully converted.



FROM:raid4 TO:raid0
[root@host-087 ~]# lvcreate -ay --type raid4 -i 3 -n takeover -L 2.75G VG
  Using default stripesize 64.00 KiB.
  Rounding size 2.75 GiB (704 extents) up to stripe boundary size 2.75 GiB(705 extents).
  Logical volume "takeover" created.
[root@host-087 ~]# lvconvert --type raid0 VG/takeover
  Using default stripesize 64.00 KiB.
Are you sure you want to convert raid4 LV VG/takeover to raid0 type? [y/n]: y
  Logical volume VG/takeover successfully converted.



FROM:raid4 TO:raid0_meta
[root@host-087 ~]# lvcreate -ay --type raid4 -i 3 -n takeover -L 2.75G VG
  Using default stripesize 64.00 KiB.
  Rounding size 2.75 GiB (704 extents) up to stripe boundary size 2.75 GiB(705 extents).
  Logical volume "takeover" created.
[root@host-087 ~]# lvconvert --type raid0_meta VG/takeover
  Using default stripesize 64.00 KiB.
Are you sure you want to convert raid4 LV VG/takeover to raid0_meta type? [y/n]: y
  Logical volume VG/takeover successfully converted.



FROM:striped TO:raid4
[root@host-087 ~]# lvcreate -ay --type striped -i 3 -n takeover -L 2.75G VG
  Using default stripesize 64.00 KiB.
  Rounding size 2.75 GiB (704 extents) up to stripe boundary size 2.75 GiB(705 extents).
  Logical volume "takeover" created.
[root@host-087 ~]# lvconvert --type raid4 VG/takeover
  Using default stripesize 64.00 KiB.
Are you sure you want to convert striped LV VG/takeover to raid4 type? [y/n]: y
  Logical volume VG/takeover successfully converted.

Comment 13 errata-xmlrpc 2018-10-30 11:03:51 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-2018:3193