Bug 2108326 - use_sparse_index doesn't appear to work, even with the suggested minimum giving by the warning message
Summary: use_sparse_index doesn't appear to work, even with the suggested minimum givi...
Keywords:
Status: POST
Alias: None
Product: Red Hat Enterprise Linux 8
Classification: Red Hat
Component: lvm2
Version: 8.7
Hardware: x86_64
OS: Linux
unspecified
low
Target Milestone: rc
: ---
Assignee: Zdenek Kabelac
QA Contact: cluster-qe
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2022-07-18 20:53 UTC by Corey Marthaler
Modified: 2023-08-10 15:41 UTC (History)
7 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Type: Bug
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker RHELPLAN-128081 0 None None None 2022-07-18 20:57:10 UTC

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


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