2010/5/24 MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx>: >> However, I don't think nbd would be a good protocol. My preference >> would be for a plugin API, or for a new local protocol that uses >> splice() to avoid copies. >> > > Both would be okay for Sheepdog. I want to take a suitable approach > for qemu. I think both should be possible: - Using splice() we would need a daemon that is listening on a control socket for requests from qemu-processes or admin commands. When a qemu-process wants to open an image it could call open_image("protocol:imagename") on the controll socket and the daemon has to create a pipe to which the image is mapped. (What I'm unsure about, are the security implications. Do we need some kind of authentication for the sockets? What about sVirt? - Building a plugin API seems a bit simpler to me, although I'm to sure if I'd get the idea correctly: The block layer has already some kind of api (.bdrv_file_open, .bdrv_read). We could simply compile the block-drivers as shared objects and create a method for loading the necessary modules at runtime. Are you planing to use this for all block drivers? Regards, Christian -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html