Bug 2077163

Summary: if vdo_pool_autoextend_threshold is off, VDO creation should warn user like thin pool creation does
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: NEW --- Docs Contact:
Severity: low    
Priority: unspecified CC: agk, awalsh, heinzm, jbrassow, prajnoha, zkabelac
Version: 8.6   
Target Milestone: rc   
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: 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-04-20 19:23:45 UTC
Description of problem:
This is really two bugs:
1. If vdo_pool_autoextend_threshold is turned off, then shouldn't VDO creation warn the user like thin pool creation does?

2. Should all lvcreates after a turned off thin_pool_autoextend_threshold thin pool create continue to warn the user?



# Create VDO FIRST, shouldn't there be a "protection against vdo pools running out of space" warning, like with thinpool?
[root@hayes-01 ~]# lvcreate --yes --type vdo -n vdovirt -L 10G -V 50G test
    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 "vdovirt" created.

# Create Thinpool/virt SECOND, note the warning for "protection against thin pools running out of space"
[root@hayes-01 ~]# lvcreate -V 50G -L 10G -T test/pool -n thinvirt
  Thin pool volume with chunk size 64.00 KiB can address at most <15.88 TiB of data.
  WARNING: Sum of all thin volume sizes (50.00 GiB) exceeds the size of thin pool test/pool (10.00 GiB).
  WARNING: You have not turned on protection against thin pools running out of space.
  WARNING: Set activation/thin_pool_autoextend_threshold below 100 to trigger automatic extension of thin pools before they get full.
  Logical volume "thinvirt" created.

[root@hayes-01 ~]# lvs -a -o +devices,seg_type
  LV              VG   Attr       LSize  Pool   Origin Data%  Meta%  Move Log Cpy%Sync Convert Devices         Type     
  [lvol0_pmspare] test ewi------- 12.00m                                                       /dev/sdd1(2560) linear   
  pool            test twi-aotz-- 10.00g               0.00   10.64                            pool_tdata(0)   thin-pool
  [pool_tdata]    test Twi-ao---- 10.00g                                                       /dev/sdd1(2563) linear   
  [pool_tmeta]    test ewi-ao---- 12.00m                                                       /dev/sdi1(0)    linear   
  thinvirt        test Vwi-a-tz-- 50.00g pool          0.00                                                    thin     
  vdovirt         test vwi-a-v--- 50.00g vpool0        0.00                                    vpool0(0)       vdo      
  vpool0          test dwi------- 10.00g               40.04                                   vpool0_vdata(0) vdo-pool 
  [vpool0_vdata]  test Dwi-ao---- 10.00g                                                       /dev/sdd1(0)    linear   



[root@hayes-01 ~]# vgremove -f test
  Logical volume "thinvirt" successfully removed.
  Logical volume "pool" successfully removed.
  Logical volume "vdovirt" successfully removed.
  Volume group "test" successfully removed



# Create Thinpool/virt FIRST, note the warning for "protection against thin pools running out of space"
[root@hayes-01 ~]# lvcreate -V 50G -L 10G -T test/pool -n thinvirt
  Thin pool volume with chunk size 64.00 KiB can address at most <15.88 TiB of data.
  WARNING: Sum of all thin volume sizes (50.00 GiB) exceeds the size of thin pool test/pool (10.00 GiB).
  WARNING: You have not turned on protection against thin pools running out of space.
  WARNING: Set activation/thin_pool_autoextend_threshold below 100 to trigger automatic extension of thin pools before they get full.
  Logical volume "thinvirt" created.

# Actually any lv creation from now on will warn about that prior thinpool threshold not being turned on
[root@hayes-01 ~]# lvcreate -L100M test
  WARNING: Sum of all thin volume sizes (50.00 GiB) exceeds the size of thin pools (10.00 GiB).
  WARNING: You have not turned on protection against thin pools running out of space.
  WARNING: Set activation/thin_pool_autoextend_threshold below 100 to trigger automatic extension of thin pools before they get full.
  Logical volume "lvol1" created.

# Create VDO THIRD, so now we see multiple thinpool warnings, but not one relevant to the vdo threshold not being on
[root@hayes-01 ~]# lvcreate --yes --type vdo -n vdovirt -L 10G -V 50G test
  WARNING: Sum of all thin volume sizes (50.00 GiB) exceeds the size of thin pools (10.00 GiB).
  WARNING: You have not turned on protection against thin pools running out of space.
  WARNING: Set activation/thin_pool_autoextend_threshold below 100 to trigger automatic extension of thin pools before they get full.
  Wiping vdo signature on /dev/test/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.
  WARNING: Sum of all thin volume sizes (50.00 GiB) exceeds the size of thin pools (10.00 GiB).
  WARNING: You have not turned on protection against thin pools running out of space.
  WARNING: Set activation/thin_pool_autoextend_threshold below 100 to trigger automatic extension of thin pools before they get full.
  Logical volume "vdovirt" created.


[root@hayes-01 ~]# lvs -a -o +devices,segtype
  LV              VG   Attr       LSize   Pool   Origin Data%  Meta%  Move Log Cpy%Sync Convert Devices         Type     
  [lvol0_pmspare] test ewi-------  12.00m                                                       /dev/sdd1(0)    linear   
  lvol1           test -wi-a----- 100.00m                                                       /dev/sdd1(5123) linear   
  pool            test twi-aotz--  10.00g               0.00   10.64                            pool_tdata(0)   thin-pool
  [pool_tdata]    test Twi-ao----  10.00g                                                       /dev/sdd1(3)    linear   
  [pool_tmeta]    test ewi-ao----  12.00m                                                       /dev/sdi1(0)    linear   
  thinvirt        test Vwi-a-tz--  50.00g pool          0.00                                                    thin     
  vdovirt         test vwi-a-v---  50.00g vpool0        0.00                                    vpool0(0)       vdo      
  vpool0          test dwi-------  10.00g               40.04                                   vpool0_vdata(0) vdo-pool 
  [vpool0_vdata]  test Dwi-ao----  10.00g                                                       /dev/sdd1(2563) linear   




Version-Release number of selected component (if applicable):
kernel-4.18.0-372.5.1.el8    BUILT: Mon Mar 28 10:29:22 CDT 2022
lvm2-2.03.14-3.el8    BUILT: Tue Jan  4 14:54:16 CST 2022
lvm2-libs-2.03.14-3.el8    BUILT: Tue Jan  4 14:54:16 CST 2022