Bug 2216353 - there doesn't appear to be a way to display the "lvcreate/lvconvert" attrs from rfe 2070777
Summary: there doesn't appear to be a way to display the "lvcreate/lvconvert" attrs fr...
Keywords:
Status: NEW
Alias: None
Product: Red Hat Enterprise Linux 9
Classification: Red Hat
Component: lvm2
Version: 9.3
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: LVM Team
QA Contact: cluster-qe
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2023-06-20 23:58 UTC by Corey Marthaler
Modified: 2023-08-10 15:41 UTC (History)
6 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-160331 0 None None None 2023-06-21 00:00:57 UTC
Red Hat Issue Tracker RHELPLAN-160332 0 None None None 2023-06-21 00:00:51 UTC

Description Corey Marthaler 2023-06-20 23:58:17 UTC
Description of problem:

=== VDOPOOL NO Lvchange  (only lvcreate/lvconvert) ===

check_point_frequency
index_memory_size_mb
minimum_io_size
slab_size_mb
use_metadata_hints
use_sparse_index


Supported syntax for --vdosettings option



[root@virt-499 ~]# lvcreate --yes --type vdo -n vdo_check_point_frequency --vdosettings 'check_point_frequency=0' -L 10G vdo_sanity -V100G  
  Wiping vdo signature on /dev/vdo_sanity/vpool0.
    The VDO volume can address 6 GB in 3 data slabs, each 2 GB.
    It can grow to address at most 16 TB of physical storage in 8192 slabs.
    If a larger maximum size might be needed, use bigger slabs.
  Logical volume "vdo_check_point_frequency" created.
[root@virt-499 ~]# lvcreate --yes --type vdo -n vdo_minimum_io_size --vdosettings 'minimum_io_size=8' -L 10G vdo_sanity -V100G  
    The VDO volume can address 6 GB in 3 data slabs, each 2 GB.
    It can grow to address at most 16 TB of physical storage in 8192 slabs.
    If a larger maximum size might be needed, use bigger slabs.
  Logical volume "vdo_minimum_io_size" created.
[root@virt-499 ~]# lvcreate --yes --type vdo -n vdo_slab_size_mb --vdosettings 'slab_size_mb=4000' -L 10G vdo_sanity -V100G  
    The VDO volume can address 6 GB in 3 data slabs, each 2 GB.
    It can grow to address at most 16 TB of physical storage in 8192 slabs.
    If a larger maximum size might be needed, use bigger slabs.
  Logical volume "vdo_slab_size_mb" created.
[root@virt-499 ~]# lvcreate --yes --type vdo -n vdo_metadata_hints --vdosettings 'metadata_hints=0' -L 10G vdo_sanity -V100G  
    The VDO volume can address 6 GB in 3 data slabs, each 2 GB.
    It can grow to address at most 16 TB of physical storage in 8192 slabs.
    If a larger maximum size might be needed, use bigger slabs.
  Logical volume "vdo_metadata_hints" created.

[root@virt-499 ~]# lvs -a -o +devices
  LV                        VG            Attr       LSize   Pool   Origin Data%  Meta%  Move Log Cpy%Sync Convert Devices        
  vdo_check_point_frequency vdo_sanity    vwi-a-v--- 100.00g vpool0        0.00                                    vpool0(0)      
  vdo_metadata_hints        vdo_sanity    vwi-a-v--- 100.00g vpool3        0.00                                    vpool3(0)      
  vdo_minimum_io_size       vdo_sanity    vwi-a-v--- 100.00g vpool1        0.00                                    vpool1(0)      
  vdo_slab_size_mb          vdo_sanity    vwi-a-v--- 100.00g vpool2        0.00                                    vpool2(0)      
  vpool0                    vdo_sanity    dwi-------  10.00g               40.04                                   vpool0_vdata(0)
  [vpool0_vdata]            vdo_sanity    Dwi-ao----  10.00g                                                       /dev/sda1(0)   
  vpool1                    vdo_sanity    dwi-------  10.00g               40.04                                   vpool1_vdata(0)
  [vpool1_vdata]            vdo_sanity    Dwi-ao----  10.00g                                                       /dev/sda1(2560)
  vpool2                    vdo_sanity    dwi-------  10.00g               40.04                                   vpool2_vdata(0)
  [vpool2_vdata]            vdo_sanity    Dwi-ao----  10.00g                                                       /dev/sda1(5120)
  vpool3                    vdo_sanity    dwi-------  10.00g               40.04                                   vpool3_vdata(0)
  [vpool3_vdata]            vdo_sanity    Dwi-ao----  10.00g                                                       /dev/sdb1(0)   


# check_point_frequency
[root@virt-499 ~]# lvs -o vdo_check_point_frequency vdo_sanity/vdo_check_point_frequency
  Unrecognised field: vdo_check_point_frequency
[root@virt-499 ~]# lvs -o check_point_frequency vdo_sanity/vdo_check_point_frequency
  Unrecognised field: check_point_frequency
[root@virt-499 ~]# lvs -o use_check_point_frequency vdo_sanity/vdo_check_point_frequency
  Unrecognised field: use_check_point_frequency

# minimum_io_size
[root@virt-499 ~]# lvs -o vdo_minimum_io_size vdo_sanity/vdo_minimum_io_size
  VDOMinimumIOSize
             4.00k
[root@virt-499 ~]# lvs -o minimum_io_size vdo_sanity/vdo_minimum_io_size
  Unrecognised field: minimum_io_size

# slab_size_mb
[root@virt-499 ~]# lvs -o vdo_slab_size_mb vdo_sanity/vdo_slab_size_mb
  Unrecognised field: vdo_slab_size_mb
[root@virt-499 ~]# lvs -o slab_size_mb vdo_sanity/vdo_slab_size_mb
  Unrecognised field: slab_size_mb
[root@virt-499 ~]# lvs -o slab_size vdo_sanity/vdo_slab_size_mb
  Unrecognised field: slab_size

# metadata_hints
[root@virt-499 ~]# lvs -o metadata_hints vdo_sanity/vdo_metadata_hints
  Unrecognised field: metadata_hints
[root@virt-499 ~]# lvs -o vdo_metadata_hints vdo_sanity/metadata_hints
  Unrecognised field: vdo_metadata_hints



Version-Release number of selected component (if applicable):
kernel-5.14.0-322.el9    BUILT: Fri Jun  2 10:00:53 AM CEST 2023
lvm2-2.03.21-2.el9    BUILT: Thu May 25 12:03:04 AM CEST 2023
lvm2-libs-2.03.21-2.el9    BUILT: Thu May 25 12:03:04 AM CEST 2023

Comment 2 Zdenek Kabelac 2023-06-28 11:27:03 UTC
So to recap:

-- check_point_frequency  - this option is no longer supported by vdoformat - so it has no meaning - and any non-zero value would actually cause lvcreate to fail.
(patch removing this option from code base will be pushed soon upstream).

-- index_memory_size_mb   - the name of vdo parameter is "vdo_index_memory_size"  -  abbreviation allowing the use without the prefix 'vdo_'  is a 'syntax sugar enhancement' for --vdosettings option and the suffix '_mb' is currently the only way how to express 'fixed' unit size on input size (so it's vdo_index_memory_size in MiB units). Otherwise the size values accross lvm.conf should be in  KiB units (unless historically specified differently).   'lvs' does have full unit support.
I'm still undecided how to 'improve' the potential confusion logic for a user - but it's not exactly trivial - we don't want to get parameter explosion on 'lvs' side, yet I believe it's still usable to have size 'unit' embedded in the parameter name, if there is no other way for specification.

-- slab_size_mb           - this is the similar case to index_memory_size_mb  - parameter name is  'vdo_slab_size'

-- minimum_io_size        - the full name of vdo parameter is  'vdo_minimum_io_size'  - as such it works  'lvs -o+vdo_minimum_io_size'

-- use_metadata_hints     - name of parameter is 'vdo_use_metadata_hints'  (prints enabled  when On)

-- use_sparse_index       - name of parameter is 'vdo_use_sparse_index'  

lvs currently doesn't support shortened variants of these 'vdo' parameters. The option --vdosettings is directly associated to 'vdo' so the support for shortened names does not present any possible name-space collision.

Note, all vdo parameters are also visible to the user with the command: 'lvdisplay -m'   showing all settings in the human readable form for segment.


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