Description of problem: nbdkit-curl-plugin currently does not advertise NBD multi-conn. NBD multi-conn (the ability to open multiple connections to the server) is quite important for performance. Upstream we have enable multi-conn, although only for read-only curl connections: https://gitlab.com/nbdkit/nbdkit/-/commit/bb0f93ad7b9de451874d0c54188bf69cd37c5409 Version-Release number of selected component (if applicable): nbdkit 1.32.5-3.el9 How reproducible: 100% Steps to Reproduce: 1. See the commit message and https://listman.redhat.com/archives/libguestfs/2023-February/030581.html for suggestions.
One way to test this would be to create a large disk image, eg: $ virt-builder --size 10G fedora-36 and then compare copying the disk image before and after updating nbdkit using this command: $ time nbdkit -r curl file:/var/tmp/fedora-36.img --run 'nbdcopy -p "$uri" null:' It should be significantly faster (perhaps double) after the patch is applied. This change should also make virt-v2v faster when using the HTTPS method, but that is hard to measure.
Reproduce the bug with nbdkit-1.32.5-3.el9.x86_64 Steps to reproduce: 1.Check if nbdkit curl filter is advertising multi-conn # nbdkit -r curl url='http://fileshare.englab.nay.redhat.com/pub/section3/libvirtmanual/mxie/esx8.0-rhel8.8-x86_64-sda' sslverify=false --run ' nbdinfo $uri ' | grep can_multi_conn can_multi_conn: false 2. Use nbdkit curl filter to download files from web server # time nbdkit -r curl url='http://fileshare.englab.nay.redhat.com/pub/section3/libvirtmanual/mxie/esx8.0-rhel8.8-x86_64-sda' sslverify=false --run 'nbdcopy -p "$uri" null:' █ 100% [****************************************] real 10m8.516s user 0m20.150s sys 0m51.184s Test the bug with nbdkit-1.32.5-4.el9.x86_64 Steps: 1.Check if nbdkit curl filter is advertising multi-conn # nbdkit -r curl url='http://fileshare.englab.nay.redhat.com/pub/section3/libvirtmanual/mxie/esx8.0-rhel8.8-x86_64-sda' sslverify=false --run ' nbdinfo $uri ' | grep can_multi_conn can_multi_conn: true 2. Use nbdkit curl filter to download files from web server # time nbdkit -r curl url='http://fileshare.englab.nay.redhat.com/pub/section3/libvirtmanual/mxie/esx8.0-rhel8.8-x86_64-sda' sslverify=false --run 'nbdcopy -p "$uri" null:' █ 100% [****************************************] real 7m59.417s user 0m23.561s sys 0m59.721s Result: multi-conn has been enabled in nbdkit-curl-plugin
Move the bug to verified status according to comment2
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (nbdkit bug fix and enhancement update), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2023:2347