Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-7384

[libvirt] Use nbdkit plugins for handling http/https and ssh disk sources

    • Normal
    • sst_virtualization_storage
    • ssg_virtualization
    • 5
    • QE ack, Dev ack
    • False
    • Hide

      None

      Show
      None
    • Fail
    • If docs needed, set a value

      Up until now, qemu-kvm has had a dependency on the qemu-block-curl plugin, which allows qemu guests to use http/https network locations as a disk source. However, in rhel 9, this dependency is being removed from qemu-kvm, which results in issues such as bug #2014229.

      The long-term solution is to switch to using the more featureful and maintained nbdkit curl plugin (https://libguestfs.org/nbdkit-curl-plugin.1.html) within libvirt.

      From an email from Rich:

      It would need to instead run an nbdkit subprocess first, eg:

      nbdkit -U /tmp/randomly-named-sock --exit-with-parent -f -r \
      --pidfile /tmp/randomly-named-file \
      curl http://foo protocols=http,https,ftp,ftps &

      1. wait for pidfile to get created
      1. pass nbd:unix:/tmp/randomly-named-sock as qemu parameter
      2. or:
      3. <disk type='network' device='disk'>
      4. <driver name='qemu'/>
      5. <source protocol='nbd'>
      6. <host transport='unix' socket='/tmp/randomly-named-sock'/>
      7. </source>
      8. <target dev='vda' bus='virtio'/>
      9. </disk>
      1. wait for qemu then:
        kill `cat /tmp/randomly-named-file`
        rm /tmp/randomly-named-sock

      (or nbdkit will clean itself up because of --exit-with-parent)

            jjongsma@redhat.com Jonathon Jongsma
            jjongsma@redhat.com Jonathon Jongsma
            Meina Li Meina Li
            Votes:
            0 Vote for this issue
            Watchers:
            23 Start watching this issue

              Created:
              Updated: