Hi,

So I just ran into a issue (again) where a NFS mount was hanging and a
ISO could not be attached. Long story short, NFS goes through kernel
space and causes timeouts, hanging kernels, processes in status D, etc, etc.

Qemu already supports attaching a CD-Rom via HTTP to a VM, I just tried:
http://widodh.o.auroraobjects.eu/qemu_cdrom_iso.png

Thought about this for 30 minutes and figured I write it down here and
maybe work on this later.

Idea would be to implement a HTTP storage pool in libvirt which could talk:
- S3
- WebDAV

It requires the HV to have direct access to the HTTP store, but we do
not need a staging NFS in between.

Since the HTTP talks happen in userspace (Qemu) we can properly timeout
on hanging HTTP requests, get back a status-code if stuff doesn't work
instead of just waiting for ever.

cURL is just a great HTTP library which can do this for us.

With a pre-signed URL you can attach a S3 URL directly to Qemu and via
WebDAV you only need to give in the username+password (if required).

On S3 you can also set the ACL of the ISO objects to Public, that would
rule out the need for a pre-signed URL.

I would love to get rid of NFS here!

This e-mail doesn't mean I'm about to implement it though :) The first
work would be libvirt.

I still have some pending RBD work for libvirt, so maybe I'll  take a
look at this.

Wido

Reply via email to