Bug 2108326

Summary: use_sparse_index doesn't appear to work, even with the suggested minimum giving by the warning message
Product: Red Hat Enterprise Linux 8 Reporter: Corey Marthaler <cmarthal>
Component: lvm2Assignee: Zdenek Kabelac <zkabelac>
lvm2 sub component: VDO QA Contact: cluster-qe <cluster-qe>
Status: CLOSED MIGRATED Docs Contact:
Severity: low    
Priority: unspecified CC: agk, awalsh, heinzm, jbrassow, mcsontos, prajnoha, zkabelac
Version: 8.7Keywords: MigratedToJIRA, Triaged
Target Milestone: rcFlags: pm-rhel: mirror+
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-09-23 18:35:17 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:

Description Corey Marthaler 2022-07-18 20:53:13 UTC
Description of problem:
use_sparse_index, I've tried guessing enough, and no devel test results were provided with rfe 2100608, so as far as I'm concerned, this option doesn't work.

There is no default value:
[root@hayes-01 ~]# lvs -a -o +vdo_use_sparse_index vdo_sanity/vdo_lv
  LV     VG         Attr       LSize   Pool     Origin Data%  Meta%  Move Log Cpy%Sync Convert VDOSparseIndex
  vdo_lv vdo_sanity vwi-a-v--- 100.00g vdo_pool        0.00                                                  


[root@hayes-01 ~]# lvconvert --yes --type vdo-pool -n vdo_lv --vdosettings 'vdo_use_sparse_index=1' -V100G vdo_sanity/vdo_pool
  Unknown VDO setting "vdo_use_sparse_index".


[root@hayes-01 ~]# lvconvert --yes --type vdo-pool -n vdo_lv --vdosettings 'vdo_sparse_index=1' -V100G vdo_sanity/vdo_pool
  WARNING: Converting logical volume vdo_sanity/vdo_pool to VDO pool volume with formating.
  THIS WILL DESTROY CONTENT OF LOGICAL VOLUME (filesystem etc.)
Minimum required size for VDO volume: 26130157568 bytes
vdoformat: formatVDO failed on '/dev/vdo_sanity/vdo_pool': VDO Status: Out of space
  Command /usr/bin/vdoformat failed.
  Cannot format VDO pool volume vdo_sanity/vdo_pool.


[root@hayes-01 ~]# lvconvert --yes --type vdo-pool -n vdo_lv --vdosettings 'vdo_sparse_index=26130157568' -V100G vdo_sanity/vdo_pool
  WARNING: Converting logical volume vdo_sanity/vdo_pool to VDO pool volume with formating.
  THIS WILL DESTROY CONTENT OF LOGICAL VOLUME (filesystem etc.)
Minimum required size for VDO volume: 26130157568 bytes
vdoformat: formatVDO failed on '/dev/vdo_sanity/vdo_pool': VDO Status: Out of space
  Command /usr/bin/vdoformat failed.
  Cannot format VDO pool volume vdo_sanity/vdo_pool.


[root@hayes-01 ~]# lvconvert --yes --type vdo-pool -n vdo_lv --vdosettings 'vdo_sparse_index=26130157568b' -V100G vdo_sanity/vdo_pool
  Parse error at byte 30 (line 1): unexpected token


[root@hayes-01 ~]# lvconvert --yes --type vdo-pool -n vdo_lv --vdosettings 'vdo_sparse_index=26130157568 bytes' -V100G vdo_sanity/vdo_pool
  Parse error at byte 35 (line 1): unexpected token


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


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

Comment 1 Zdenek Kabelac 2022-08-11 15:37:04 UTC
vdo_use_sparse_index =  1|0    is used to enable/disable  sparse indexing   (dense/sparse  type of indexing)

For specification of indexing size for deduplication  there is option:

vdo_index_memory_size_mb      (with _mb suffix to emphasize the input size value is in MiB units)
(the range is  256MiB .. 1TiB)


--vdosettings is accepting same settings as lvm.conf  (which provides full description of all vdo settings)

As of now - there is no support for any 'suffixes' past the specified parameter value as the original text format has only a simple form of:   setting = value


Since there is identified bug in the processing of vdo_ prefix  'vdo_use_sparse_index' has not been parsed properly - so ATM only 'sparse_index=1' works correctly to continue with testing on this BZ.

The error message about the 26130157568 bytes is for minimal size of converted LV  (and comes from vdoformat tool).

We may need to think if it is worth to pass some vdo size compution into lvm2 code base to avoid calling tools for incorrect parameters.

Comment 2 Zdenek Kabelac 2022-08-15 12:32:43 UTC
This upstream patch is correcting parsing of  vdo_use_  prefixed settings:

https://listman.redhat.com/archives/lvm-devel/2022-August/024268.html

Comment 6 RHEL Program Management 2023-09-23 18:21:45 UTC
Issue migration from Bugzilla to Jira is in process at this time. This will be the last message in Jira copied from the Bugzilla bug.

Comment 7 RHEL Program Management 2023-09-23 18:35:17 UTC
This BZ has been automatically migrated to the issues.redhat.com Red Hat Issue Tracker. All future work related to this report will be managed there.

Due to differences in account names between systems, some fields were not replicated.  Be sure to add yourself to Jira issue's "Watchers" field to continue receiving updates and add others to the "Need Info From" field to continue requesting information.

To find the migrated issue, look in the "Links" section for a direct link to the new issue location. The issue key will have an icon of 2 footprints next to it, and begin with "RHEL-" followed by an integer.  You can also find this issue by visiting https://issues.redhat.com/issues/?jql= and searching the "Bugzilla Bug" field for this BZ's number, e.g. a search like:

"Bugzilla Bug" = 1234567

In the event you have trouble locating or viewing this issue, you can file an issue by sending mail to rh-issues. You can also visit https://access.redhat.com/articles/7032570 for general account information.