Bug 814777

Summary: Ensure lvrename handles all types of thin LVs sensibly
Product: Red Hat Enterprise Linux 6 Reporter: Alasdair Kergon <agk>
Component: lvm2Assignee: Zdenek Kabelac <zkabelac>
Status: CLOSED ERRATA QA Contact: Cluster QE <mspqa-list>
Severity: medium Docs Contact:
Priority: medium    
Version: 6.4CC: agk, cmarthal, dwysocha, heinzm, jbrassow, msnitzer, prajnoha, prockai, thornber, zkabelac
Target Milestone: rc   
Target Release: 6.4   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: lvm2-2.02.98-1.el6 Doc Type: Bug Fix
Doc Text:
Rename of thin snapshot volumes have not been working. This has been fixed also with full support for stacked devices.
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-02-21 08:09:29 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: 814732    
Bug Blocks:    

Description Alasdair Kergon 2012-04-20 16:03:30 UTC
Check all uses of lvrename with thin pools/LVs/snapshots work as expected.

Comment 1 Zdenek Kabelac 2012-04-25 09:09:44 UTC
New set of tests will be created once we start to support lvconvert.

Comment 2 Corey Marthaler 2012-07-26 19:47:57 UTC
QE reviewed this BZ for QA_ACK but was unable to ack due to a lack of
requirements or description of how the new feature is supposed to work or be
tested.

What are all the uses of lvrename?

Please see
https://wiki.test.redhat.com/ClusterStorage/WhyNoAck

Comment 3 Alasdair Kergon 2012-07-30 19:22:27 UTC
Well if you need my short-hand spelling out:
Create every possible type of LV involved with thin provisioning (pool/metadata/snapshots), in every possible state (active/inactive, undergoing any conversions/moves that might be permitted), then run lvrename against every distinct type of LV name present (incl. hidden ones) and check the behaviour is sensible (i.e. it either refuses the rename if it wouldn't work, or it permits it and does the rename correctly and completely, incl all associated LVs that share the main part of the name be they active or inactive).

Comment 5 Corey Marthaler 2012-07-30 21:59:45 UTC
Adding QA ack for 6.4. 

Devel will need to provide unit testing results however before this bug can be
ultimately verified by QA.

Comment 7 Corey Marthaler 2012-08-29 20:49:51 UTC
FWIW, the current 6.3 rpms do not support rename of thin snaps.

[root@taft-01 ~]# lvs -a -o +devices
  LV           VG            Attr     LSize   Pool Origin Data%  Devices
  POOL         snapper_thinp twi-a-tz 300.00m               0.00 POOL_tdata(0)
  [POOL_tdata] snapper_thinp Twi-aot- 300.00m                    /dev/sdh1(0)
  [POOL_tmeta] snapper_thinp ewi-aot-   4.00m                    /dev/sdg1(0)
  origin       snapper_thinp Vwi-a-tz   1.00g POOL          0.00
  rename_snapA snapper_thinp Vwi-a-tz   1.00g POOL origin   0.00

[root@taft-01 ~]# lvrename /dev/snapper_thinp/rename_snapA /dev/snapper_thinp/rename_snapB
  Cannot rename "rename_snapA": name format not recognized for internal LV "POOL"

Comment 8 Zdenek Kabelac 2012-10-09 12:25:24 UTC
Insert layer has been updated to support thin provisioning rename of stacked devices:

https://www.redhat.com/archives/lvm-devel/2012-October/msg00013.html

and should be usable with release 2.02.98.

Comment 10 Corey Marthaler 2012-12-05 20:10:45 UTC
Verified in the latest rpms.

2.6.32-343.el6.x86_64

lvm2-2.02.98-3.el6    BUILT: Mon Nov  5 06:45:48 CST 2012
lvm2-libs-2.02.98-3.el6    BUILT: Mon Nov  5 06:45:48 CST 2012
lvm2-cluster-2.02.98-3.el6    BUILT: Mon Nov  5 06:45:48 CST 2012
udev-147-2.43.el6    BUILT: Thu Oct 11 05:59:38 CDT 2012
device-mapper-1.02.77-3.el6    BUILT: Mon Nov  5 06:45:48 CST 2012
device-mapper-libs-1.02.77-3.el6    BUILT: Mon Nov  5 06:45:48 CST 2012
device-mapper-event-1.02.77-3.el6    BUILT: Mon Nov  5 06:45:48 CST 2012
device-mapper-event-libs-1.02.77-3.el6    BUILT: Mon Nov  5 06:45:48 CST 2012
cmirror-2.02.98-3.el6    BUILT: Mon Nov  5 06:45:48 CST 2012

SCENARIO - [snap_rename_active]
Create and attempt to rename the following volumes associated with thinprovising while ACTIVE:
pool volume, pool_tdata, pool_tmeta, virt origin volume, thinp snapshot volume
Making origin volume
Creating thinpool and corresponding thin virtual volumes (one to be used as an origin)
lvcreate --thinpool POOLA -L 1G snapper_thinp
lvcreate --virtualsize 1G --thinpool snapper_thinp/POOLA -n origin
lvcreate --virtualsize 1G --thinpool snapper_thinp/POOLA -n other1
lvcreate --virtualsize 1G --thinpool snapper_thinp/POOLA -n other2
lvcreate --virtualsize 1G --thinpool snapper_thinp/POOLA -n other3
lvcreate --virtualsize 1G --thinpool snapper_thinp/POOLA -n other4
lvcreate --virtualsize 1G --thinpool snapper_thinp/POOLA -n other5
Create a snap and then rename it
lvcreate -s /dev/snapper_thinp/origin -n rename_snapA
taft-01: lvrename /dev/snapper_thinp/POOLA /dev/snapper_thinp/POOLB
taft-01: lvrename /dev/snapper_thinp/POOLB_tmeta /dev/snapper_thinp/POOLC_tmeta
  Names including "_tmeta" are reserved. Please choose a different LV name.
taft-01: lvrename /dev/snapper_thinp/POOLB_tdata /dev/snapper_thinp/POOLC_tdata
  Names including "_tdata" are reserved. Please choose a different LV name.
taft-01: lvrename /dev/snapper_thinp/origin /dev/snapper_thinp/originB
taft-01: lvrename /dev/snapper_thinp/rename_snapA /dev/snapper_thinp/rename_snapB
Removing volume snapper_thinp/rename_snapB
Removing thin origin and other virtual thin volumes
Removing thinpool snapper_thinp/POOLB


SCENARIO - [snap_rename_inactive]
Create and attempt to rename the following volumes associated with thinprovising while INACTIVE:
pool volume, pool_tdata, pool_tmeta, virt origin volume, thinp snapshot volume
Making origin volume
Creating thinpool and corresponding thin virtual volumes (one to be used as an origin)
lvcreate --thinpool POOLA -L 1G snapper_thinp
lvcreate --virtualsize 1G --thinpool snapper_thinp/POOLA -n origin
lvcreate --virtualsize 1G --thinpool snapper_thinp/POOLA -n other1
lvcreate --virtualsize 1G --thinpool snapper_thinp/POOLA -n other2
lvcreate --virtualsize 1G --thinpool snapper_thinp/POOLA -n other3
lvcreate --virtualsize 1G --thinpool snapper_thinp/POOLA -n other4
lvcreate --virtualsize 1G --thinpool snapper_thinp/POOLA -n other5
Create a snap and then rename it
lvcreate -s /dev/snapper_thinp/origin -n rename_snapA
Deactivate the volume group
taft-01: lvrename /dev/snapper_thinp/POOLA /dev/snapper_thinp/POOLB
taft-01: lvrename /dev/snapper_thinp/POOLB_tmeta /dev/snapper_thinp/POOLC_tmeta
  Names including "_tmeta" are reserved. Please choose a different LV name.
taft-01: lvrename /dev/snapper_thinp/POOLB_tdata /dev/snapper_thinp/POOLC_tdata
  Names including "_tdata" are reserved. Please choose a different LV name.
taft-01: lvrename /dev/snapper_thinp/origin /dev/snapper_thinp/originB
taft-01: lvrename /dev/snapper_thinp/rename_snapA /dev/snapper_thinp/rename_snapB
Removing volume snapper_thinp/rename_snapB
Removing thin origin and other virtual thin volumes
Removing thinpool snapper_thinp/POOLB

Comment 11 errata-xmlrpc 2013-02-21 08:09:29 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.

http://rhn.redhat.com/errata/RHBA-2013-0501.html