Bug 1119323

Summary: [RHEL7.1] LVM Thin Provisioning - feature tracker
Product: Red Hat Enterprise Linux 7 Reporter: Jonathan Earl Brassow <jbrassow>
Component: lvm2Assignee: Jonathan Earl Brassow <jbrassow>
lvm2 sub component: Thin Provisioning QA Contact: Cluster QE <mspqa-list>
Status: CLOSED NOTABUG Docs Contact:
Severity: unspecified    
Priority: unspecified CC: agk, dustymabe, fdeutsch, heinzm, jbrassow, mcsontos, msnitzer, prajnoha, prockai, thornber, zkabelac
Version: 7.0Keywords: Tracking
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-02-04 16:51:15 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: 1164947, 1899140, 1899206, 998347, 1000604, 1065456, 1075644, 1077368, 1079430, 1083633, 1091562, 1112642, 1119839, 1132211, 1133079, 1149008, 1149279, 1149287, 1152806, 1153306, 1163529, 1163530, 1163532, 1163873, 1163880, 1163895, 1164915, 1164933, 1164942, 1166873, 1168140    
Bug Blocks: 958235    

Description Jonathan Earl Brassow 2014-07-14 14:06:59 UTC
This bug is a tracking bug for all thin-p feature bugs for RHEL7.

Comment 7 Jonathan Earl Brassow 2014-11-03 22:44:19 UTC
RESOLVED:

UNRESOLVED:
Bug 1119839 [rhel7] LVM Thin: Enable use of error_if_no_space
Bug 1152806 [rhel7] LVM Thin: Add ability to specify individual thin LV chunk size
Bug 1153362 [rhel7] LVM thin: Support ThinDataLV on cache volumes

UNSCHEDULED:
Bug 1000604 [rhel7] allow user to switch thin-pool to read-only mode at a configurable low space threshold

Comment 8 Jonathan Earl Brassow 2014-11-03 23:11:45 UTC
RESOLVED:

UNRESOLVED:
Bug 1119839 [rhel7] LVM Thin: Enable use of error_if_no_space
Bug 1152806 [rhel7] LVM Thin: Add ability to specify individual thin LV chunk size
Bug 1153362 [rhel7] LVM thin: Support ThinDataLV on cache volumes
Bug 1083633 [rhel7] LVM tools need to deal properly with thin provisioning needs_check flag
Bug 1132211 [RHEL6] thin pool conversion fails when the size gap between the pool and meta device is too great
Bug 1133079 [RHEL6] lvconvert validation is missing when same LV name is used for thinpool and originname
Bug 1153306 [rhel7] lvconvert validation is missing when same LV name is used for thinpool and originname
Bug 1091562 [rhel6] LVM THIN: Unable to perform vgsplit when specifying thin[pool] by name
Bug 1104702 [rhel6] [RFE] Thin pool should support offline metadata resize
Bug 1112642 [rhel6] lvs needs an attribute to indicate when a thin pool is out-of-space and unusable
Bug 1149008 [rhel6] exclusive activation of thin pool and thin origin device is not maintained when mixing and merging thin and non thin snapshots
Bug 1149279 [rhel6] exclusive activation of lvol0_pmspare is not maintained after a pvmove of it's device
Bug 1075644 [rhel7] Resizing pool metadata on RAID10 LV fails due to rounding error
Bug 1077368 [rhel7] make 'lvresize --poolmetadatasize' round values like 'lvresize -L' does


UNSCHEDULED:
Bug 1000604 [rhel7] allow user to switch thin-pool to read-only mode at a configurable low space threshold
Bug 1149287 [RHEL6] pvmove doesn't work on exclusively activated clustered thin pool volumes
Bug 1065456 [rhel7] Thin pool is not readable while waits for pool resize
Bug 1079430 [rhel7] [RFE] Allow creating pmspare volume on RAID

Comment 9 Jonathan Earl Brassow 2014-11-03 23:20:36 UTC
RESOLVED:

UNRESOLVED:
Bug 1119839 [rhel7] LVM Thin: Enable use of error_if_no_space
Bug 1152806 [rhel7] LVM Thin: Add ability to specify individual thin LV chunk size
Bug 1153362 [rhel7] LVM thin: Support ThinDataLV on cache volumes
Bug 1083633 [rhel7] LVM tools need to deal properly with thin provisioning needs_check flag
Bug 1132211 [RHEL6] thin pool conversion fails when the size gap between the pool and meta device is too great
Bug 1133079 [RHEL6] lvconvert validation is missing when same LV name is used for thinpool and originname
Bug 1153306 [rhel7] lvconvert validation is missing when same LV name is used for thinpool and originname
Bug 1091562 [rhel6] LVM THIN: Unable to perform vgsplit when specifying thin[pool] by name
Bug 1104702 [rhel6] [RFE] Thin pool should support offline metadata resize
Bug 1112642 [rhel6] lvs needs an attribute to indicate when a thin pool is out-of-space and unusable
Bug 1149008 [rhel6] exclusive activation of thin pool and thin origin device is not maintained when mixing and merging thin and non thin snapshots
Bug 1149279 [rhel6] exclusive activation of lvol0_pmspare is not maintained after a pvmove of it's device
Bug 1075644 [rhel7] Resizing pool metadata on RAID10 LV fails due to rounding error
Bug 1077368 [rhel7] make 'lvresize --poolmetadatasize' round values like 'lvresize -L' does
Bug 998347 [rhel7] "lvcreate -l 100%FREE -T vg/thin-pool" returns error


UNSCHEDULED:
Bug 1000604 [rhel7] allow user to switch thin-pool to read-only mode at a configurable low space threshold
Bug 1149287 [RHEL6] pvmove doesn't work on exclusively activated clustered thin pool volumes
Bug 1065456 [rhel7] Thin pool is not readable while waits for pool resize
Bug 1079430 [rhel7] [RFE] Allow creating pmspare volume on RAID

Comment 18 Jonathan Earl Brassow 2014-11-17 23:00:07 UTC
RESOLVED:

UNRESOLVED:
Bug 1119839 [rhel7] LVM Thin: Enable use of error_if_no_space
Bug 1152806 [rhel7] LVM Thin: Add ability to specify individual thin LV chunk size
Bug 1153362 [rhel7] LVM thin: Support ThinDataLV on cache volumes
Bug 1083633 [rhel7] LVM tools need to deal properly with thin provisioning needs_check flag
Bug 1132211 [RHEL6] thin pool conversion fails when the size gap between the pool and meta device is too great
Bug 1133079 [RHEL6] lvconvert validation is missing when same LV name is used for thinpool and originname
Bug 1153306 [rhel7] lvconvert validation is missing when same LV name is used for thinpool and originname
Bug 1091562 [rhel6] LVM THIN: Unable to perform vgsplit when specifying thin[pool] by name
Bug 1104702 [rhel6] [RFE] Thin pool should support offline metadata resize
Bug 1112642 [rhel6] lvs needs an attribute to indicate when a thin pool is out-of-space and unusable
Bug 1149008 [rhel6] exclusive activation of thin pool and thin origin device is not maintained when mixing and merging thin and non thin snapshots
Bug 1149279 [rhel6] exclusive activation of lvol0_pmspare is not maintained after a pvmove of it's device
Bug 1075644 [rhel7] Resizing pool metadata on RAID10 LV fails due to rounding error
Bug 1077368 [rhel7] make 'lvresize --poolmetadatasize' round values like 'lvresize -L' does
Bug 998347 [rhel7] "lvcreate -l 100%FREE -T vg/thin-pool" returns error


UNSCHEDULED:
Bug 1000604 [rhel7] allow user to switch thin-pool to read-only mode at a configurable low space threshold
Bug 1149287 [RHEL6] pvmove doesn't work on exclusively activated clustered thin pool volumes
Bug 1065456 [rhel7] Thin pool is not readable while waits for pool resize
Bug 1079430 [rhel7] [RFE] Allow creating pmspare volume on RAID
Bug 1163529 [rhel7] LVM Thin: Warn if Thin/CacheMetadataLV is not on fast storage.
Bug 1163530 [rhel7] LVM Thin: Support automatic resize of ThinpoolMetaLV
Bug 1163532 [rhel7] LVM Thin: Allow a thin pool to be defragmented
Bug 1163873 [rhel7] LVM Thin: Add ability to set pool metadata area to read-only
Bug 1163880 [rhel7] LVM Thin: Add vgsplit/vgmerge support for thin[pools]
Bug 1163894 [rhel7] LVM Thin: Record and display 'origin' and divergence time for thin snapshots
Bug 1163895 [rhel7] LVM Thin: Allow operations on sets of thin volumes.
Bug 1164915 [rhel7] LVM Thin: Create thin-volumes from existing old-style snapshots
Bug 1164933 [rhel7] LVM Thin: Add ability to import LVs into a thin pool
Bug 1164942 [rhel7] LVM Thin: Improve fault handling and recovery
Bug 1164947 [rhel7] LVM Thin: /boot support for ThinLVs

Comment 19 Jonathan Earl Brassow 2014-11-21 20:08:09 UTC
Another unscheduled:
Bug 1166873 - LVM Thin: Ability to resize thinsnaps to something other than their origin

Comment 20 Joe Thornber 2014-12-02 10:39:12 UTC
>  - Support offline resize via metadata export/import
>
>    This can already be done online, so we need to look at the
>    usecases driving this.
>

NEEDINFO

Shrinking a data pool cannot be safely done online.  This could well
require moving data away from the part of the device that is to be
removed.  On offline tool is being written (part of thinp-tools).

>  - Metadata backup for pools where the mappings aren't changing.

I'm not sure where this requirement came from.  LVM would have to be
very certain that the mappings are not changing (ie. always activating
in read-only-metadata mode).  The backup could be made in binary or
xml format; either using dd, or thin_dump.

>  - When doing a merge of an internal snap offer the option to keep
>    the old origin around.

NEEDINFO - isn't this just a rename of both then?  What's the point?

Yes, 'merge' is a trivial rename + reactivation.  This requirement is
purely about providing a friendly command line interface.  The point is one or both of the devices may be active, so we need to reload tables pointing to different thin devices.

>  - Undo external snap (with no merging).
>    Mostly done, external origin ends up with a different name.

NEEDINFO - I don't understand this request.

When taking an external snapshot the external dev becomes read-only,
we then create two snapshots within the pool.  One which acts as a
writeable version of the origin/external dev, and one which is the
'snapshot' requested.

People may want to undo this, and go back to modifying the origin
directly.

>
>  - Merge of external snap

NEEDINFO - do you mean merge to external origin?

Yes.

> Migration to thinp
> ==================
>
> - Create thin-volumes from existing old-style snapshots sharing same
>   data blocks in the pool (not necessary a full deduplication,
>   compare and share only blocks at the same offset) to allow dropping
>   the original (old-style snapshot) LVs.
>

Bug 1164915
NEEDINFO: Not clear on design.

An offline tool would examine the old style snapshot, and either modify an
existing pool, or create a new one:


- The data device would be extended with the COW store from the old snap.
- Mappings would be added to map a thin onto the COW blocks.

- The origin would become read only; but a new snap of it would be
  used to provide writeable origin (see external snap discussion
  above).

Optionally we could pull the origin into the pool as well.  Probably
default behaviour if the origin is an LV.

> System integration
> ==================
>
>  - / on a thin LV
>     - repair tools in dracut, scripted/configurable behaviour, recovery when
> not safe to do automatically

DONE.
NEEDINFO:  We can have / on thinLVs, but how well are we handling recovery scenarios?

No idea.  LVM team to answer.

Comment 21 Fabian Deutsch 2015-01-21 13:29:21 UTC
(In reply to Joe Thornber from comment #20)
> > System integration
> > ==================
> >
> >  - / on a thin LV
> >     - repair tools in dracut, scripted/configurable behaviour, recovery when
> > not safe to do automatically
> 
> DONE.
> NEEDINFO:  We can have / on thinLVs, but how well are we handling recovery
> scenarios?
> 
> No idea.  LVM team to answer.

This is also interesting for RHEV, we investigate having / on a thinLV for RHEV-H

Comment 22 Jonathan Earl Brassow 2015-02-04 13:48:34 UTC
RESOLVED:
Bug 1119839 [rhel7] LVM Thin: Enable use of error_if_no_space

UNRESOLVED:
Bug 1152806 [rhel7] LVM Thin: Add ability to specify individual thin LV chunk size
Bug 1153362 [rhel7] LVM thin: Support ThinDataLV on cache volumes
Bug 1083633 [rhel7] LVM tools need to deal properly with thin provisioning needs_check flag
Bug 1132211 [RHEL6] thin pool conversion fails when the size gap between the pool and meta device is too great
Bug 1133079 [RHEL6] lvconvert validation is missing when same LV name is used for thinpool and originname
Bug 1153306 [rhel7] lvconvert validation is missing when same LV name is used for thinpool and originname
Bug 1091562 [rhel6] LVM THIN: Unable to perform vgsplit when specifying thin[pool] by name
Bug 1104702 [rhel6] [RFE] Thin pool should support offline metadata resize
Bug 1112642 [rhel6] lvs needs an attribute to indicate when a thin pool is out-of-space and unusable
Bug 1149008 [rhel6] exclusive activation of thin pool and thin origin device is not maintained when mixing and merging thin and non thin snapshots
Bug 1149279 [rhel6] exclusive activation of lvol0_pmspare is not maintained after a pvmove of it's device
Bug 1075644 [rhel7] Resizing pool metadata on RAID10 LV fails due to rounding error
Bug 1077368 [rhel7] make 'lvresize --poolmetadatasize' round values like 'lvresize -L' does
Bug 998347 [rhel7] "lvcreate -l 100%FREE -T vg/thin-pool" returns error


UNSCHEDULED:
Bug 1000604 [rhel7] allow user to switch thin-pool to read-only mode at a configurable low space threshold
Bug 1149287 [RHEL6] pvmove doesn't work on exclusively activated clustered thin pool volumes
Bug 1065456 [rhel7] Thin pool is not readable while waits for pool resize
Bug 1079430 [rhel7] [RFE] Allow creating pmspare volume on RAID
Bug 1163529 [rhel7] LVM Thin: Warn if Thin/CacheMetadataLV is not on fast storage.
Bug 1163530 [rhel7] LVM Thin: Support automatic resize of ThinpoolMetaLV
Bug 1163532 [rhel7] LVM Thin: Allow a thin pool to be defragmented
Bug 1163873 [rhel7] LVM Thin: Add ability to set pool metadata area to read-only
Bug 1163880 [rhel7] LVM Thin: Add vgsplit/vgmerge support for thin[pools]
Bug 1163894 [rhel7] LVM Thin: Record and display 'origin' and divergence time for thin snapshots
Bug 1163895 [rhel7] LVM Thin: Allow operations on sets of thin volumes.
Bug 1164915 [rhel7] LVM Thin: Create thin-volumes from existing old-style snapshots
Bug 1164933 [rhel7] LVM Thin: Add ability to import LVs into a thin pool
Bug 1164942 [rhel7] LVM Thin: Improve fault handling and recovery
Bug 1164947 [rhel7] LVM Thin: /boot support for ThinLVs
Bug 1166873 - LVM Thin: Ability to resize thinsnaps to something other than their origin