Bug 1042510

Summary: mirror and raid creation should be able to use -l100%FREE
Product: Red Hat Enterprise Linux 7 Reporter: Corey Marthaler <cmarthal>
Component: lvm2Assignee: LVM and device-mapper development team <lvm-team>
lvm2 sub component: Default / Unclassified QA Contact: cluster-qe <cluster-qe>
Status: CLOSED ERRATA Docs Contact:
Severity: low    
Priority: low CC: agk, dwysocha, heinzm, jbrassow, msnitzer, nperic, peljasz, prajnoha, prockai, thornber, zkabelac
Version: 7.0Keywords: Triaged
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: lvm2-2.02.114-2.el7.x86_64 Doc Type: Bug Fix
Doc Text:
Previously, when using '-l 100%FREE' to create RAID logical volumes, an error would result. This issue has been resolved.
Story Points: ---
Clone Of: 829920 Environment:
Last Closed: 2015-03-05 13:07:33 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: 829920, 1085904    
Bug Blocks: 1075262    

Comment 3 Jonathan Earl Brassow 2014-12-03 00:21:21 UTC
I just tested this and the fix is present in <= lvm2-2.02.114-2.el7.x86_64.

# There are 5 PVs in my VG
[root@bp-03 ~]# pvs
  PV         VG         Fmt  Attr PSize   PFree
  /dev/sda2  rhel_bp-03 lvm2 a--  465.27g  64.00m
  /dev/sdb1  vg         lvm2 a--  836.68g 836.68g
  /dev/sdc1  vg         lvm2 a--  836.68g 836.68g
  /dev/sdd1  vg         lvm2 a--  836.68g 836.68g
  /dev/sde1  vg         lvm2 a--  836.68g 836.68g
  /dev/sdf1  vg         lvm2 a--  836.68g 836.68g
  /dev/sdg1             lvm2 ---  836.68g 836.68g
  /dev/sdh1             lvm2 ---  836.68g 836.68g
  /dev/sdi1             lvm2 ---  836.68g 836.68g


###################
# MIRROR TEST
###################
# In this case, even the '-m 1' isn't necessary as it is the default
[root@bp-03 ~]# lvcreate --type mirror -l 100%FREE -m 1 -n lv vg
  Logical volume "lv" created.

[root@bp-03 ~]# lvs -a -o name,size,devices vg
  LV            LSize Devices
  lv            1.63t lv_mimage_0(0),lv_mimage_1(0)
  [lv_mimage_0] 1.63t /dev/sdb1(0)
  [lv_mimage_0] 1.63t /dev/sdd1(0)
  [lv_mimage_1] 1.63t /dev/sdc1(0)
  [lv_mimage_1] 1.63t /dev/sde1(0)
  [lv_mlog]     4.00m /dev/sdf1(0)

# Note the final PV is used for a log (there can't be an image there with no pair)
[root@bp-03 ~]# pvs
  PV         VG         Fmt  Attr PSize   PFree
  /dev/sda2  rhel_bp-03 lvm2 a--  465.27g  64.00m
  /dev/sdb1  vg         lvm2 a--  836.68g      0
  /dev/sdc1  vg         lvm2 a--  836.68g      0
  /dev/sdd1  vg         lvm2 a--  836.68g      0
  /dev/sde1  vg         lvm2 a--  836.68g      0
  /dev/sdf1  vg         lvm2 a--  836.68g 836.68g
  /dev/sdg1             lvm2 ---  836.68g 836.68g
  /dev/sdh1             lvm2 ---  836.68g 836.68g
  /dev/sdi1             lvm2 ---  836.68g 836.68g


###################
# RAID1 TEST
###################
[root@bp-03 ~]# lvcreate --type raid1 -l 100%FREE -n lv vg
  Logical volume "lv" created.

[root@bp-03 ~]# lvs -a -o name,size,devices vg
  LV            LSize Devices
  lv            1.63t lv_rimage_0(0),lv_rimage_1(0)
  [lv_rimage_0] 1.63t /dev/sdb1(1)
  [lv_rimage_0] 1.63t /dev/sdd1(0)
  [lv_rimage_1] 1.63t /dev/sdc1(1)
  [lv_rimage_1] 1.63t /dev/sde1(0)
  [lv_rmeta_0]  4.00m /dev/sdb1(0)
  [lv_rmeta_1]  4.00m /dev/sdc1(0)

# The last PV can't be used because there is no pair
[root@bp-03 ~]# pvs
  PV         VG         Fmt  Attr PSize   PFree
  /dev/sda2  rhel_bp-03 lvm2 a--  465.27g  64.00m
  /dev/sdb1  vg         lvm2 a--  836.68g      0
  /dev/sdc1  vg         lvm2 a--  836.68g      0
  /dev/sdd1  vg         lvm2 a--  836.68g      0
  /dev/sde1  vg         lvm2 a--  836.68g      0
  /dev/sdf1  vg         lvm2 a--  836.68g 836.68g
  /dev/sdg1             lvm2 ---  836.68g 836.68g
  /dev/sdh1             lvm2 ---  836.68g 836.68g
  /dev/sdi1             lvm2 ---  836.68g 836.68g


###################
# RAID5 TEST
###################
# Not specifying '-i' defaults to striping across all devs
[root@bp-03 ~]# lvcreate --type raid5 -l 100%FREE -n lv vg
  Rounding size (1070950 extents) down to stripe boundary size (1070948 extents)
  Logical volume "lv" created.
[root@bp-03 ~]# lvs -a -o name,size,devices vg
  LV            LSize   Devices
  lv              3.27t lv_rimage_0(0),lv_rimage_1(0),lv_rimage_2(0),lv_rimage_3(0),lv_rimage_4(0)
  [lv_rimage_0] 836.68g /dev/sdb1(1)
  [lv_rimage_1] 836.68g /dev/sdc1(1)
  [lv_rimage_2] 836.68g /dev/sdd1(1)
  [lv_rimage_3] 836.68g /dev/sde1(1)
  [lv_rimage_4] 836.68g /dev/sdf1(1)
  [lv_rmeta_0]    4.00m /dev/sdb1(0)
  [lv_rmeta_1]    4.00m /dev/sdc1(0)
  [lv_rmeta_2]    4.00m /dev/sdd1(0)
  [lv_rmeta_3]    4.00m /dev/sde1(0)
  [lv_rmeta_4]    4.00m /dev/sdf1(0)
[root@bp-03 ~]# pvs
  PV         VG         Fmt  Attr PSize   PFree
  /dev/sda2  rhel_bp-03 lvm2 a--  465.27g  64.00m
  /dev/sdb1  vg         lvm2 a--  836.68g      0
  /dev/sdc1  vg         lvm2 a--  836.68g      0
  /dev/sdd1  vg         lvm2 a--  836.68g      0
  /dev/sde1  vg         lvm2 a--  836.68g      0
  /dev/sdf1  vg         lvm2 a--  836.68g      0
  /dev/sdg1             lvm2 ---  836.68g 836.68g
  /dev/sdh1             lvm2 ---  836.68g 836.68g
  /dev/sdi1             lvm2 ---  836.68g 836.68g


# Specifying a -i will do the best it can while maintaining RAID config
[root@bp-03 ~]# lvcreate --type raid5 -i 3 -l 100%FREE -n lv vg
  Using default stripesize 64.00 KiB.
  Rounding size (1070950 extents) down to stripe boundary size (1070949 extents)
  Logical volume "lv" created.
[root@bp-03 ~]# lvs -a -o name,size,devices vg
  LV            LSize   Devices
  lv              2.45t lv_rimage_0(0),lv_rimage_1(0),lv_rimage_2(0),lv_rimage_3(0)
  [lv_rimage_0] 836.68g /dev/sdb1(1)
  [lv_rimage_1] 836.68g /dev/sdc1(1)
  [lv_rimage_2] 836.68g /dev/sdd1(1)
  [lv_rimage_3] 836.68g /dev/sde1(1)
  [lv_rmeta_0]    4.00m /dev/sdb1(0)
  [lv_rmeta_1]    4.00m /dev/sdc1(0)
  [lv_rmeta_2]    4.00m /dev/sdd1(0)
  [lv_rmeta_3]    4.00m /dev/sde1(0)
[root@bp-03 ~]# pvs
  PV         VG         Fmt  Attr PSize   PFree
  /dev/sda2  rhel_bp-03 lvm2 a--  465.27g  64.00m
  /dev/sdb1  vg         lvm2 a--  836.68g      0
  /dev/sdc1  vg         lvm2 a--  836.68g      0
  /dev/sdd1  vg         lvm2 a--  836.68g      0
  /dev/sde1  vg         lvm2 a--  836.68g      0
  /dev/sdf1  vg         lvm2 a--  836.68g 836.68g
  /dev/sdg1             lvm2 ---  836.68g 836.68g
  /dev/sdh1             lvm2 ---  836.68g 836.68g
  /dev/sdi1             lvm2 ---  836.68g 836.68g

Comment 4 Jonathan Earl Brassow 2014-12-03 00:22:37 UTC
Putting this bug in POST (even though it should be in MODIFIED) to ensure that it gets into the errata.

Comment 6 Nenad Peric 2015-01-16 10:27:39 UTC
[root@virt-140 ~]# lvcreate -i 2 -n stripe -l100%FREE vg
  Using default stripesize 64.00 KiB.
  Rounding size (33277 extents) down to stripe boundary size (33276 extents)
  Logical volume "stripe" created.


[root@virt-140 ~]# lvcreate --type mirror -m 1 -n mirror -l100%FREE --corelog vg
  Logical volume "mirror" created.


[root@virt-140 ~]# lvcreate -m 1 -n raid -l100%FREE vg
  Logical volume "raid" created.


Marking verified with:

3.10.0-223.el7.x86_64

lvm2-2.02.114-5.el7    BUILT: Wed Jan 14 15:42:28 CET 2015
lvm2-libs-2.02.114-5.el7    BUILT: Wed Jan 14 15:42:28 CET 2015
lvm2-cluster-2.02.114-5.el7    BUILT: Wed Jan 14 15:42:28 CET 2015
device-mapper-1.02.92-5.el7    BUILT: Wed Jan 14 15:42:28 CET 2015
device-mapper-libs-1.02.92-5.el7    BUILT: Wed Jan 14 15:42:28 CET 2015
device-mapper-event-1.02.92-5.el7    BUILT: Wed Jan 14 15:42:28 CET 2015
device-mapper-event-libs-1.02.92-5.el7    BUILT: Wed Jan 14 15:42:28 CET 2015
device-mapper-persistent-data-0.4.1-2.el7    BUILT: Wed Nov 12 19:39:46 CET 2014
cmirror-2.02.114-5.el7    BUILT: Wed Jan 14 15:42:28 CET 2015

Comment 8 errata-xmlrpc 2015-03-05 13:07:33 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://rhn.redhat.com/errata/RHBA-2015-0513.html