Bug 1283759 - raid10 conversion attempt with -m flag failure should be handled better
raid10 conversion attempt with -m flag failure should be handled better
Status: ASSIGNED
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: lvm2 (Show other bugs)
7.2
x86_64 Linux
unspecified Severity low
: rc
: ---
Assigned To: David Teigland
cluster-qe@redhat.com
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2015-11-19 13:28 EST by Corey Marthaler
Modified: 2017-11-01 20:03 EDT (History)
7 users (show)

See Also:
Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed:
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Corey Marthaler 2015-11-19 13:28:05 EST
Description of problem:
[root@host-112 ~]# lvs
  LV     VG            Attr       LSize   Cpy%Sync Convert
  raid1  snapper_thinp rwi-a-r--- 100.00m 100.00          
  raid10 snapper_thinp rwi-a-r--- 104.00m 100.00          
  raid4  snapper_thinp rwi-a-r--- 104.00m 100.00          
  raid5  snapper_thinp rwi-a-r--- 104.00m 100.00          
  raid6  snapper_thinp rwi-a-r--- 108.00m 100.00          

# no -m flag
[root@host-112 ~]# for i in 1 10 4 5 6; do lvconvert --type raid1 snapper_thinp/raid$i; done
  Converting the segment type for snapper_thinp/raid1 from raid1 to raid1 is not yet supported.
  Converting the segment type for snapper_thinp/raid10 from raid10 to raid1 is not yet supported.
  Converting the segment type for snapper_thinp/raid4 from raid4 to raid1 is not yet supported.
  Converting the segment type for snapper_thinp/raid5 from raid5 to raid1 is not yet supported.
  Converting the segment type for snapper_thinp/raid6 from raid6 to raid1 is not yet supported.

# no -m flag
[root@host-112 ~]# for i in 1 10 4 5 6; do lvconvert --type raid10 snapper_thinp/raid$i; done
  Converting the segment type for snapper_thinp/raid1 from raid1 to raid10 is not yet supported.
  Converting the segment type for snapper_thinp/raid10 from raid10 to raid10 is not yet supported.
  Converting the segment type for snapper_thinp/raid4 from raid4 to raid10 is not yet supported.
  Converting the segment type for snapper_thinp/raid5 from raid5 to raid10 is not yet supported.
  Converting the segment type for snapper_thinp/raid6 from raid6 to raid10 is not yet supported.

# -m flag
[root@host-112 ~]# for i in 1 10 4 5 6; do lvconvert -m 1 --type raid1 snapper_thinp/raid$i; done
  snapper_thinp/raid1 already has image count of 2.
  device-mapper: reload ioctl on (253:40) failed: Invalid argument
  Failed to suspend snapper_thinp/raid10 before committing changes
  '--mirrors/-m' is not compatible with raid4
  '--mirrors/-m' is not compatible with raid5
  '--mirrors/-m' is not compatible with raid6

Nov 19 11:35:34 host-112 kernel: device-mapper: raid: Reshaping arrays not yet supported. (device count change)
Nov 19 11:35:34 host-112 kernel: device-mapper: table: 253:40: raid: Unable to assemble array: Invalid superblocks
Nov 19 11:35:34 host-112 kernel: device-mapper: ioctl: error adding target to table

# -m flag
[root@host-112 ~]# for i in 1 10 4 5 6; do lvconvert -m 1 --type raid10 snapper_thinp/raid$i; done
  snapper_thinp/raid1 already has image count of 2.
  device-mapper: reload ioctl on (253:40) failed: Invalid argument
  Failed to suspend snapper_thinp/raid10 before committing changes
  '--mirrors/-m' is not compatible with raid4
  '--mirrors/-m' is not compatible with raid5
  '--mirrors/-m' is not compatible with raid6

Nov 19 11:35:24 host-112 kernel: device-mapper: raid: Reshaping arrays not yet supported. (device count change)
Nov 19 11:35:24 host-112 kernel: device-mapper: table: 253:40: raid: Unable to assemble array: Invalid superblocks
Nov 19 11:35:24 host-112 kernel: device-mapper: ioctl: error adding target to table


Version-Release number of selected component (if applicable):
3.10.0-327.el7.x86_64
lvm2-2.02.130-5.el7    BUILT: Wed Oct 14 08:27:29 CDT 2015
lvm2-libs-2.02.130-5.el7    BUILT: Wed Oct 14 08:27:29 CDT 2015
lvm2-cluster-2.02.130-5.el7    BUILT: Wed Oct 14 08:27:29 CDT 2015
device-mapper-1.02.107-5.el7    BUILT: Wed Oct 14 08:27:29 CDT 2015
device-mapper-libs-1.02.107-5.el7    BUILT: Wed Oct 14 08:27:29 CDT 2015
device-mapper-event-1.02.107-5.el7    BUILT: Wed Oct 14 08:27:29 CDT 2015
device-mapper-event-libs-1.02.107-5.el7    BUILT: Wed Oct 14 08:27:29 CDT 2015
device-mapper-persistent-data-0.5.5-1.el7    BUILT: Thu Aug 13 09:58:10 CDT 2015
cmirror-2.02.130-5.el7    BUILT: Wed Oct 14 08:27:29 CDT 2015
sanlock-3.2.4-1.el7    BUILT: Fri Jun 19 12:48:49 CDT 2015
sanlock-lib-3.2.4-1.el7    BUILT: Fri Jun 19 12:48:49 CDT 2015
lvm2-lockd-2.02.130-5.el7    BUILT: Wed Oct 14 08:27:29 CDT 2015
Comment 1 Heinz Mauelshagen 2016-07-06 10:33:37 EDT
Code's done and in review/integration.
Comment 3 David Teigland 2016-07-25 12:28:38 EDT
Now that we've formalized all the permitted primary lvconvert operations, and split each into a unique code path, one of the next steps is adding option validation within each of those paths.  Unless this is more than a nuisance, I'd suggest doing this after 7.3.

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