Bug 1005190
Summary: | cling_by_tags not honored in raid LV configurations | ||||||
---|---|---|---|---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | Nenad Peric <nperic> | ||||
Component: | lvm2 | Assignee: | LVM and device-mapper development team <lvm-team> | ||||
lvm2 sub component: | Default / Unclassified | QA Contact: | cluster-qe <cluster-qe> | ||||
Status: | CLOSED CURRENTRELEASE | Docs Contact: | |||||
Severity: | unspecified | ||||||
Priority: | unspecified | CC: | agk, cmarthal, heinzm, jbrassow, msnitzer, prajnoha, prockai, thornber, zkabelac | ||||
Version: | 7.0 | ||||||
Target Milestone: | rc | ||||||
Target Release: | --- | ||||||
Hardware: | Unspecified | ||||||
OS: | Unspecified | ||||||
Whiteboard: | |||||||
Fixed In Version: | lvm2-2.02.103-1.el7 | Doc Type: | Bug Fix | ||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | |||||||
: | 1008012 (view as bug list) | Environment: | |||||
Last Closed: | 2014-06-13 13:28:14 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: | |||||||
Bug Blocks: | 1008012 | ||||||
Attachments: |
|
Description
Nenad Peric
2013-09-06 11:51:57 UTC
Created attachment 794673 [details]
Verbose output of lvextend
Fix committed upstream (2 commits): commit c37c59e155813545c2e674eb370a4609e97aa769 Author: Jonathan Brassow <jbrassow> Date: Tue Sep 24 21:32:53 2013 -0500 Test/clean-up: Indent clean-up and additional RAID resize test Better indenting and a test for bug 1005434 (parity RAID should extend in a contiguous fashion). commit 5ded7314ae00629da8d21d925c3fa091cce2a939 Author: Jonathan Brassow <jbrassow> Date: Tue Sep 24 21:32:10 2013 -0500 RAID: Fix broken allocation policies for parity RAID types A previous commit (b6bfddcd0a830d0c9312bc3ab906cb3d1b7a6dd9) which was designed to prevent segfaults during lvextend when trying to extend striped logical volumes forgot to include calculations for RAID4/5/6 parity devices. This was causing the 'contiguous' and 'cling_by_tags' allocation policies to fail for RAID 4/5/6. The solution is to remember that while we can compare ah->area_count == prev_lvseg->area_count for non-RAID, we should compare (ah->area_count + ah->parity_count) == prev_lvseg->area_count for a general solution. Fix verified in the latest rpms. 3.10.0-113.el7.x86_64 lvm2-2.02.105-14.el7 BUILT: Wed Mar 26 08:29:41 CDT 2014 lvm2-libs-2.02.105-14.el7 BUILT: Wed Mar 26 08:29:41 CDT 2014 lvm2-cluster-2.02.105-14.el7 BUILT: Wed Mar 26 08:29:41 CDT 2014 device-mapper-1.02.84-14.el7 BUILT: Wed Mar 26 08:29:41 CDT 2014 device-mapper-libs-1.02.84-14.el7 BUILT: Wed Mar 26 08:29:41 CDT 2014 device-mapper-event-1.02.84-14.el7 BUILT: Wed Mar 26 08:29:41 CDT 2014 device-mapper-event-libs-1.02.84-14.el7 BUILT: Wed Mar 26 08:29:41 CDT 2014 device-mapper-persistent-data-0.2.8-5.el7 BUILT: Fri Feb 28 19:15:56 CST 2014 cmirror-2.02.105-14.el7 BUILT: Wed Mar 26 08:29:41 CDT 2014 [root@host-049 ~]# vgcreate raid_sanity /dev/sd{a..h}1 Volume group "raid_sanity" successfully created [root@host-049 ~]# pvscan PV /dev/sda1 VG raid_sanity lvm2 [9.99 GiB / 9.99 GiB free] PV /dev/sdb1 VG raid_sanity lvm2 [9.99 GiB / 9.99 GiB free] PV /dev/sdc1 VG raid_sanity lvm2 [9.99 GiB / 9.99 GiB free] PV /dev/sdd1 VG raid_sanity lvm2 [9.99 GiB / 9.99 GiB free] PV /dev/sde1 VG raid_sanity lvm2 [9.99 GiB / 9.99 GiB free] PV /dev/sdf1 VG raid_sanity lvm2 [9.99 GiB / 9.99 GiB free] PV /dev/sdg1 VG raid_sanity lvm2 [9.99 GiB / 9.99 GiB free] PV /dev/sdh1 VG raid_sanity lvm2 [9.99 GiB / 9.99 GiB free] [root@host-049 ~]# pvchange --addtag A /dev/sd{a..c}1 Physical volume "/dev/sda1" changed Physical volume "/dev/sdb1" changed Physical volume "/dev/sdc1" changed 3 physical volumes changed / 0 physical volumes not changed [root@host-049 ~]# pvchange --addtag B /dev/sd{d..f}1 Physical volume "/dev/sdd1" changed Physical volume "/dev/sde1" changed Physical volume "/dev/sdf1" changed 3 physical volumes changed / 0 physical volumes not changed [root@host-049 ~]# pvchange --addtag C /dev/sd{g..h}1 Physical volume "/dev/sdg1" changed Physical volume "/dev/sdh1" changed 2 physical volumes changed / 0 physical volumes not changed [root@host-049 ~]# pvs -a -o +pv_tags PV VG Fmt Attr PSize PFree PV Tags /dev/sda1 raid_sanity lvm2 a-- 9.99g 9.99g A /dev/sdb1 raid_sanity lvm2 a-- 9.99g 9.99g A /dev/sdc1 raid_sanity lvm2 a-- 9.99g 9.99g A /dev/sdd1 raid_sanity lvm2 a-- 9.99g 9.99g B /dev/sde1 raid_sanity lvm2 a-- 9.99g 9.99g B /dev/sdf1 raid_sanity lvm2 a-- 9.99g 9.99g B /dev/sdg1 raid_sanity lvm2 a-- 9.99g 9.99g C /dev/sdh1 raid_sanity lvm2 a-- 9.99g 9.99g C [root@host-049 ~]# lvcreate --type raid4 -i 2 -n cling_raid --alloc cling_by_tags -l 2763 raid_sanity /dev/sdd1 /dev/sde1 /dev/sdf1 Using default stripesize 64.00 KiB Rounding size (2763 extents) up to stripe boundary size (2764 extents). Logical volume "cling_raid" created [root@host-049 ~]# pvs -o pv_name,pv_tags,pv_pe_alloc_count,pv_pe_count PV PV Tags Alloc PE /dev/sda1 A 0 2558 /dev/sdb1 A 0 2558 /dev/sdc1 A 0 2558 /dev/sdd1 B 1383 2558 /dev/sde1 B 1383 2558 /dev/sdf1 B 1383 2558 /dev/sdg1 C 0 2558 /dev/sdh1 C 0 2558 [root@host-049 ~]# lvextend -l 3000 --alloc cling_by_tags raid_sanity/cling_raid Using stripesize of last segment 64.00 KiB Extending logical volume cling_raid to 11.72 GiB Logical volume cling_raid successfully resized [root@host-049 ~]# pvs -o pv_name,pv_tags,pv_pe_alloc_count,pv_pe_count PV PV Tags Alloc PE /dev/sda1 A 0 2558 /dev/sdb1 A 0 2558 /dev/sdc1 A 0 2558 /dev/sdd1 B 1501 2558 /dev/sde1 B 1501 2558 /dev/sdf1 B 1501 2558 /dev/sdg1 C 0 2558 /dev/sdh1 C 0 2558 This request was resolved in Red Hat Enterprise Linux 7.0. Contact your manager or support representative in case you have further questions about the request. |