What were you trying to do that didn't work?
An LVM storage class is configured in OpenShift Virtualization, with the thin pool chunk size set to 128 KiB:
# lvs -o lv_name,vg_name,lv_attr,chunk_size |egrep -i "thin-pool|chunk"
LV VG Attr Chunk
thin-pool-1 vg1 twi-aotz-- 128.00k
The minimum_io_size for the LVs created on this VG is 128 KiB.
# ls -laR /dev/vg1/ |grep dm
lrwxrwxrwx. 1 root root 7 Jan 7 17:57 36426c69-4d59-4c14-8b89-4f1e780d5a28 -> ../dm-6
lrwxrwxrwx. 1 root root 7 Jan 7 17:42 cb7533fb-1fb1-4ee7-b5ff-9bfafdb7dccf -> ../dm-4
lrwxrwxrwx. 1 root root 7 Jan 7 17:57 e513dc69-4a95-42bd-b961-377baaee9687 -> ../dm-5
# cat /sys/block/dm-{4,5,6}/queue/minimum_io_size
131072
131072
131072
If the VM is migrated using MTV to this LVM storage class, the migration is failing during nbdcopy in the file plugin with error "plugin must set minimum block size between 1 and 64K" :
LANG=C 'nbdkit' '--exit-with-parent' '--foreground' '--pidfile' '/tmp/v2vnbdkit.mka09q/nbdkit2.pid' '--unix' '/tmp/v2v.Boqmfq/out0' '--threads' '16' '-D' 'nbdkit.backend.datapath=0' '--verbose' '--filter' 'count' 'file' 'dir=/var/tmp/v2v' 'cache=none' .... .... nbdcopy 'nbd+unix:///%5bOCP-PNQ-Datastore%5d%206b5b5468-003e-e6c5-278b-e43d1a0d4e10/nijin-rhel-9-10%5f2-000001.vmdk?socket=/tmp/v2v.Boqmfq/in0' 'nbd+unix:///nijin-rhel-9-10-sda?socket=/tmp/v2v.Boqmfq/out0 ' '--requests=64' '--blkhash' '--flush' '–progress' ..... ..... nbdkit: file[2]: debug: extents disabled: lseek: SEEK_HOLE: Invalid argument nbdkit: file[2]: debug: newstyle negotiation: flags: export 0x5fd nbdkit: file[2]: debug: count: block_size nbdkit: file[2]: debug: file: block_size nbdkit: file[2]: error: plugin must set minimum block size between 1 and 64K nbdcopy: nbd+unix:///nijin-rhel-9-10-sda?socket=/tmp/v2v.Boqmfq/out0: nbd_connect_uri: recv: server disconnected unexpectedly nbdkit: vddk[6]: debug: client closed input socket, closing connection nbdkit: vddk[6]: debug: multi-conn: finalize nbdkit: vddk[6]: debug: cow: finalize nbdkit: vddk[6]: debug: blocksize: finalize nbdkit: vddk[6]: debug: count: finalize nbdkit: vddk[6]: debug: retry: finalize nbdkit: vddk[6]: debug: vddk: finalize nbdkit: file[2]: debug: count: close nbdkit: file[2]: debug: file: close virt-v2v: error: nbdcopy exited with non-zero error code 1
The disk nijin-rhel-9-10-sda is the block device /dev/block0 inside the container, which corresponds to an LV on the OCP node which is having minimum_io_size of 128KiB:
sh-5.2$ ls -l /var/tmp/v2v/
total 0
lrwxrwxrwx. 1 qemu qemu 11 Jan 7 18:44 nijin-rhel-9-10-sda -> /dev/block0
What is the impact of this issue to you?
Migration from VMware to OpenShift Virtualization is failing.
Please provide the package NVR for which the bug is seen:
MTV 2.10.1
nbdkit-1.44.1-2.el10.x86_64
virt-v2v-2.8.1-10.el10_1.x86_64
How reproducible is this bug?:
100%
Steps to reproduce
Reproduced with MTV while converting to LVM storage class with chunk size set to 128 KiB.
Expected results
Migration should work if the output block device minimum_io_size is greater than 64KiB