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:
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.
This upstream patch is correcting parsing of vdo_use_ prefixed settings: https://listman.redhat.com/archives/lvm-devel/2022-August/024268.html