Bug 2210349

Summary: raid --minrecoveryrate flag either doesn't work at all with lvcreate, or should tell the user what the maximum is
Product: Red Hat Enterprise Linux 9 Reporter: Corey Marthaler <cmarthal>
Component: lvm2Assignee: LVM Team <lvm-team>
lvm2 sub component: Mirroring and RAID QA Contact: cluster-qe <cluster-qe>
Status: NEW --- Docs Contact:
Severity: low    
Priority: unspecified CC: agk, heinzm, jbrassow, msnitzer, prajnoha, zkabelac
Version: 9.3   
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
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: --- Target Upstream Version:
Embargoed:

Description Corey Marthaler 2023-05-26 18:25:20 UTC
Description of problem:

[root@virt-521 ~]# lvcreate --type raid10 -i 2 -m 1 -L 10G --minrecoveryrate 64 -n mylv2 myvg 
  Using default stripesize 64.00 KiB.
  Minimum recovery rate cannot be higher than maximum.
  Run `lvcreate --help' for more information.
[root@virt-521 ~]# lvcreate --type raid10 -i 2 -m 1 -L 10G --minrecoveryrate 32 -n mylv2 myvg 
  Using default stripesize 64.00 KiB.
  Minimum recovery rate cannot be higher than maximum.
  Run `lvcreate --help' for more information.
[root@virt-521 ~]# lvcreate --type raid10 -i 2 -m 1 -L 10G --minrecoveryrate 16 -n mylv2 myvg 
  Using default stripesize 64.00 KiB.
  Minimum recovery rate cannot be higher than maximum.
  Run `lvcreate --help' for more information.
[root@virt-521 ~]# lvcreate --type raid10 -i 2 -m 1 -L 10G --minrecoveryrate 8 -n mylv2 myvg 
  Using default stripesize 64.00 KiB.
  Minimum recovery rate cannot be higher than maximum.
  Run `lvcreate --help' for more information.
[root@virt-521 ~]# lvcreate --type raid10 -i 2 -m 1 -L 10G --minrecoveryrate 4 -n mylv2 myvg 
  Using default stripesize 64.00 KiB.
  Minimum recovery rate cannot be higher than maximum.
  Run `lvcreate --help' for more information.
[root@virt-521 ~]# lvcreate --type raid10 -i 2 -m 1 -L 10G --minrecoveryrate 2 -n mylv2 myvg 
  Using default stripesize 64.00 KiB.
  Minimum recovery rate cannot be higher than maximum.
  Run `lvcreate --help' for more information.
[root@virt-521 ~]# lvcreate --type raid10 -i 2 -m 1 -L 10G --minrecoveryrate 1 -n mylv2 myvg 
  Using default stripesize 64.00 KiB.
  Minimum recovery rate cannot be higher than maximum.
  Run `lvcreate --help' for more information.

[root@virt-521 ~]# lvcreate --type raid10 -i 2 -m 1 -L 10G --minrecoveryrate 1b -n mylv2 myvg 
  Size is not a multiple of 512. Try using 0 or 512.
  Invalid argument for --minrecoveryrate: 1b
  Error during parsing of command line.

[root@virt-521 ~]# lvcreate --type raid10 -i 2 -m 1 -L 10G --minrecoveryrate 512 -n mylv2 myvg 
  Using default stripesize 64.00 KiB.
  Minimum recovery rate cannot be higher than maximum.
  Run `lvcreate --help' for more information.

[root@virt-521 ~]# lvcreate --type raid1 -m 1 -L 10G --minrecoveryrate 512 -n mylv2 myvg 
  Minimum recovery rate cannot be higher than maximum.
  Run `lvcreate --help' for more information.
[root@virt-521 ~]# lvcreate --type raid1 -m 1 -L 10G --minrecoveryrate 4kb -n mylv2 myvg 
  Minimum recovery rate cannot be higher than maximum.
  Run `lvcreate --help' for more information.



Version-Release number of selected component (if applicable):
kernel-5.14.0-312.el9    BUILT: Thu May 11 08:04:19 PM CEST 2023
lvm2-2.03.21-2.el9    BUILT: Thu May 25 12:03:04 AM CEST 2023
lvm2-libs-2.03.21-2.el9    BUILT: Thu May 25 12:03:04 AM CEST 2023

Comment 1 Corey Marthaler 2023-05-26 18:29:14 UTC
This works w/ lvchange however.

[root@virt-521 ~]# lvs -a -o +devices,raid_min_recovery_rate,raid_max_recovery_rate
  LV              VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert Devices                           MinSync MaxSync
  mylv            myvg rwi-a-r--- 10.00g                                    100.00           mylv_rimage_0(0),mylv_rimage_1(0)                
  [mylv_rimage_0] myvg iwi-aor--- 10.00g                                                     /dev/sda(1)                                      
  [mylv_rimage_1] myvg iwi-aor--- 10.00g                                                     /dev/sdb(1)                                      
  [mylv_rmeta_0]  myvg ewi-aor---  4.00m                                                     /dev/sda(0)                                      
  [mylv_rmeta_1]  myvg ewi-aor---  4.00m                                                     /dev/sdb(0)                                      
[root@virt-521 ~]# lvchange --minrecoveryrate 64 myvg/mylv
  Logical volume myvg/mylv changed.
[root@virt-521 ~]# lvs -a -o +devices,raid_min_recovery_rate,raid_max_recovery_rate
  LV              VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert Devices                           MinSync MaxSync
  mylv            myvg rwi-a-r--- 10.00g                                    100.00           mylv_rimage_0(0),mylv_rimage_1(0)      64        
  [mylv_rimage_0] myvg iwi-aor--- 10.00g                                                     /dev/sda(1)                                      
  [mylv_rimage_1] myvg iwi-aor--- 10.00g                                                     /dev/sdb(1)                                      
  [mylv_rmeta_0]  myvg ewi-aor---  4.00m                                                     /dev/sda(0)                                      
  [mylv_rmeta_1]  myvg ewi-aor---  4.00m                                                     /dev/sdb(0)                                      
[root@virt-521 ~]# lvchange --maxrecoveryrate 128 myvg/mylv
  Logical volume myvg/mylv changed.
[root@virt-521 ~]# lvs -a -o +devices,raid_min_recovery_rate,raid_max_recovery_rate
  LV              VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert Devices                           MinSync MaxSync
  mylv            myvg rwi-a-r--- 10.00g                                    100.00           mylv_rimage_0(0),mylv_rimage_1(0)      64     128
  [mylv_rimage_0] myvg iwi-aor--- 10.00g                                                     /dev/sda(1)                                      
  [mylv_rimage_1] myvg iwi-aor--- 10.00g                                                     /dev/sdb(1)                                      
  [mylv_rmeta_0]  myvg ewi-aor---  4.00m                                                     /dev/sda(0)                                      
  [mylv_rmeta_1]  myvg ewi-aor---  4.00m                                                     /dev/sdb(0)