-
Bug
-
Resolution: Done-Errata
-
Blocker
-
rhel-9.4
-
None
-
lvm2-2.03.24-1.el9
-
None
-
None
-
rhel-storage-lvm
-
ssg_filesystems_storage_and_HA
-
21
-
22
-
2
-
QE ack, Dev ack
-
False
-
False
-
-
None
-
None
-
-
x86_64
-
None
This is a follow up to bug https://issues.redhat.com/browse/RHEL-31863.
The reality is that any attempted use of the multiple "vdo" thin volumes results in I/O errors. So, sure LVM will allow you to create them, but they can't actually be used, hence we shouldn't advertise this functionality in the vdo man page.
kernel-5.14.0-427.el9 BUILT: Fri Feb 23 07:31:31 AM CET 2024
lvm2-2.03.23-2.el9 BUILT: Sat Feb 3 01:10:34 AM CET 2024
lvm2-libs-2.03.23-2.el9 BUILT: Sat Feb 3 01:10:34 AM CET 2024
From lvmvdo(7):
1. Using multiple volumes using same VDOPoolLV
You can convert existing VDO LV into a thin volume. After this conversion you can create a thin snapshot or you can add more thin volumes with thin-pool named after orignal LV name LV_tpool0.
Example
# lvcreate --type vdo -L 5G -V 10G -n vdo1 vg/vdopool
# lvconvert --type thin vg/vdo1
# lvcreate -V20 vg/vdo1_tpool0
[root@virt-019 ~]# lvcreate --yes --type vdo -n vdo_lv -L 25G vdo_sanity -V 50G
Wiping vdo signature on /dev/vdo_sanity/vpool0.
The VDO volume can address 22 GB in 11 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_lv" created.
[root@virt-019 ~]# mkfs --type xfs -f /dev/vdo_sanity/vdo_lv
meta-data=/dev/vdo_sanity/vdo_lv isize=512 agcount=4, agsize=3276800 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=1 inobtcount=1 nrext64=0
data = bsize=4096 blocks=13107200, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=16384, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
Discarding blocks...Done.
[root@virt-019 ~]# lvconvert --yes --type thin vdo_sanity/vdo_lv
Thin pool volume with chunk size 64.00 KiB can address at most <15.88 TiB of data.
WARNING: Converting vdo_sanity/vdo_lv to fully provisioned thin volume.
Converted vdo_sanity/vdo_lv to thin volume.
[root@virt-019 ~]# lvs -a -o +devices
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices
[lvol0_pmspare] vdo_sanity ewi------- 52.00m /dev/sda1(6413)
vdo_lv vdo_sanity Vwi-a-tz-- 50.00g vdo_lv_tpool0 100.00
vdo_lv_tpool0 vdo_sanity twi-aotz-- 50.00g 100.00 34.97 vdo_lv_tpool0_tdata(0)
[vdo_lv_tpool0_tdata] vdo_sanity vwi-aov--- 50.00g vpool0 0.01 vpool0(0)
[vdo_lv_tpool0_tmeta] vdo_sanity ewi-ao---- 52.00m /dev/sda1(6400)
vpool0 vdo_sanity dwi------- 25.00g 12.06 vpool0_vdata(0)
[vpool0_vdata] vdo_sanity Dwi-ao---- 25.00g /dev/sda1(0)
[root@virt-019 ~]# lvcreate --yes --virtualsize 10G -T vdo_sanity/vdo_lv_tpool0 -n another_virt1
WARNING: Sum of all thin volume sizes (60.00 GiB) exceeds the size of thin pool vdo_sanity/vdo_lv_tpool0 (50.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 "another_virt1" created.
[root@virt-019 ~]# lvcreate --yes --virtualsize 10G -T vdo_sanity/vdo_lv_tpool0 -n another_virt2
WARNING: Sum of all thin volume sizes (70.00 GiB) exceeds the size of thin pool vdo_sanity/vdo_lv_tpool0 (50.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 "another_virt2" created.
[root@virt-019 ~]# lvcreate --yes --virtualsize 10G -T vdo_sanity/vdo_lv_tpool0 -n another_virt3
WARNING: Sum of all thin volume sizes (80.00 GiB) exceeds the size of thin pool vdo_sanity/vdo_lv_tpool0 (50.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 "another_virt3" created.
[root@virt-019 ~]# mkfs /dev/vdo_sanity/another_virt3
mke2fs 1.46.5 (30-Dec-2021)
Discarding device blocks: done
Creating filesystem with 2621440 4k blocks and 655360 inodes
Filesystem UUID: 77ecf527-e2dc-47ae-9f9d-6868b671ca1d
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Allocating group tables: done
Writing inode tables: done
Writing superblocks and filesystem accounting information: mkfs.ext2: Input/output error while writing out and closing file system
Apr 23 21:27:36 virt-019 kernel: device-mapper: thin: 253:7: switching pool to out-of-data-space (error IO) mode
Apr 23 21:27:36 virt-019 kernel: buffer_io_error: 249 callbacks suppressed
Apr 23 21:27:36 virt-019 kernel: Buffer I/O error on dev dm-11, logical block 0, lost async page write
Apr 23 21:27:37 virt-019 kernel: Buffer I/O error on dev dm-11, logical block 1, lost async page write
Apr 23 21:27:37 virt-019 kernel: Buffer I/O error on dev dm-11, logical block 2, lost async page write
Apr 23 21:27:37 virt-019 kernel: Buffer I/O error on dev dm-11, logical block 3, lost async page write
Apr 23 21:27:37 virt-019 kernel: Buffer I/O error on dev dm-11, logical block 4, lost async page write
Apr 23 21:27:37 virt-019 kernel: Buffer I/O error on dev dm-11, logical block 5, lost async page write
Apr 23 21:27:37 virt-019 kernel: Buffer I/O error on dev dm-11, logical block 6, lost async page write
Apr 23 21:27:37 virt-019 kernel: Buffer I/O error on dev dm-11, logical block 7, lost async page write
Apr 23 21:27:37 virt-019 kernel: Buffer I/O error on dev dm-11, logical block 8, lost async page write
Apr 23 21:27:37 virt-019 kernel: Buffer I/O error on dev dm-11, logical block 9, lost async page write
- depends on
-
RHEL-38471 Rebase lvm2 to 2.03.24 or later
-
- Closed
-
- links to
-
RHBA-2024:136325
lvm2 bug fix and enhancement update