RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 1805896 - mode to empty writecache content
Summary: mode to empty writecache content
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 8
Classification: Red Hat
Component: lvm2
Version: 8.4
Hardware: Unspecified
OS: Unspecified
high
unspecified
Target Milestone: rc
: 8.0
Assignee: David Teigland
QA Contact: cluster-qe@redhat.com
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-02-21 17:14 UTC by David Teigland
Modified: 2021-09-07 11:49 UTC (History)
11 users (show)

Fixed In Version: lvm2-2.03.11-0.2.20201103git8801a86.el8
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2021-05-18 15:01:41 UTC
Type: Bug
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description David Teigland 2020-02-21 17:14:39 UTC
Description of problem:

Something like the cleaner policy in dm-cache which will lead to all data in the writecache being written back to the origin.

Also possibly a command that a user can run to transiently write back data to the origin and allowing the writecache to continue being used for new writes.

Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

Comment 1 Roman Bednář 2020-04-14 07:31:25 UTC
Cond. NAK for 8.3 - insufficient description.

Comment 2 David Teigland 2020-06-01 16:31:52 UTC
This is an internal change to the way lvm flushes data from the cache to the origin.  Since this changes the way writecache is implemented in lvm, not changing this will mean that very few other changes are possible.


writecache: use two stage detach

Avoid flushing, and potentially blocking for a long time,
in suspend by using the cleaner setting.

To detach the writecache, first set the cleaner option on the
writecache LV without detaching the writecache.  Then return
to the top level of the command, releasing the VG and the VG lock.
From there, periodically check the progress of the cleaner by
locking/reading the VG and checking kernel status.  Once the
cleaner has finished flushing, detach the writecache from the LV.

Comment 12 Corey Marthaler 2021-01-20 23:22:54 UTC
Fix verified in the rpms.

kernel-4.18.0-275.el8    BUILT: Sat Jan 16 06:29:19 CST 2021
lvm2-2.03.11-1.el8    BUILT: Fri Jan  8 05:21:07 CST 2021
lvm2-libs-2.03.11-1.el8    BUILT: Fri Jan  8 05:21:07 CST 2021
device-mapper-1.02.175-1.el8    BUILT: Fri Jan  8 05:21:07 CST 2021
device-mapper-libs-1.02.175-1.el8    BUILT: Fri Jan  8 05:21:07 CST 2021
device-mapper-event-1.02.175-1.el8    BUILT: Fri Jan  8 05:21:07 CST 2021
device-mapper-event-libs-1.02.175-1.el8    BUILT: Fri Jan  8 05:21:07 CST 2021


# Start writing a bunch of files
[root@hayes-01 ~]#  /usr/tests/sts-rhel8.3/bin/checkit -w /mnt/large_writecache_removal -f /tmp/checkit_origin_1 -n 1200
checkit starting with:
CREATE
Num files:          1200
Random Seed:        3819
Verify XIOR Stream: /tmp/checkit_origin_1
Working dir:        /mnt/large_writecache_removal


[root@hayes-01 ~]# lvs
  LV                       VG                Attr       LSize Pool        Origin                            Data%  Meta%  Move Log Cpy%Sync Convert
  large_writecache_removal writecache_sanity Cwi-aoC--- 2.00g [pool_cvol] [large_writecache_removal_wcorig] 38.70                                  

# split the cache during the write and cancel it half way through
[root@hayes-01 ~]# lvconvert --splitcache writecache_sanity/large_writecache_removal
  Detaching writecache setting cleaner.
  Detaching writecache cleaning 932457 blocks
  This command can be cancelled and rerun to complete writecache detach.
^C

[root@hayes-01 ~]# lvs -a -o +devices
  LV                                VG                Attr       LSize Pool        Origin                            Data%  Meta%  Move Log Cpy%Sync Convert Devices                           
  large_writecache_removal          writecache_sanity Cwi-aoC--- 2.00g [pool_cvol] [large_writecache_removal_wcorig] 0.01                                    large_writecache_removal_wcorig(0)
  [large_writecache_removal_wcorig] writecache_sanity owi-aoC--- 2.00g                                                                                       /dev/sdb(0)                       
  [pool_cvol]                       writecache_sanity Cwi-aoC--- 1.00g                                                                                       /dev/sdc(0)                       

# Restart the splitcache a second time and let it and the i/o finish
[root@hayes-01 ~]# lvconvert --splitcache writecache_sanity/large_writecache_removal
  Detaching writecache setting cleaner.
  Detaching writecache finished cleaning.
  Logical volume writecache_sanity/large_writecache_removal writecache has been detached.

[root@hayes-01 ~]# lvs -a -o +devices
  LV                       VG                Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert Devices    
  large_writecache_removal writecache_sanity -wi-ao---- 2.00g                                                     /dev/sdb(0)
  pool                     writecache_sanity -wi------- 1.00g                                                     /dev/sdc(0)

# verify the data on the single origin volume 
[root@hayes-01 ~]# /usr/tests/sts-rhel8.3/bin/checkit -w /mnt/large_writecache_removal -f /tmp/checkit_origin_1 -v
checkit starting with:
VERIFY
Verify XIOR Stream: /tmp/checkit_origin_1
Working dir:        /mnt/large_writecache_removal

Comment 13 Corey Marthaler 2021-01-27 17:45:14 UTC
FYI - this verification process doesn't work with striped wc origin volumes (See bug 1921214).

Comment 15 errata-xmlrpc 2021-05-18 15:01:41 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 (lvm2 bug fix and enhancement update), 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://access.redhat.com/errata/RHBA-2021:1659


Note You need to log in before you can comment on or make changes to this bug.