On 05/25/2010 06:25 AM, Avi Kivity wrote:
On 05/25/2010 02:02 PM, Kevin Wolf wrote:
So could we not standardize a protocol for this that both sheepdog and
ceph could implement?
The protocol already exists, nbd. It doesn't support snapshotting etc.
but we could extend it.
But IMO what's needed is a plugin API for the block layer.
What would it buy us, apart from more downstreams and having to maintain
a stable API and ABI?
Currently if someone wants to add a new block format, they have to
upstream it and wait for a new qemu to be released. With a plugin
API, they can add a new block format to an existing, supported qemu.
Whether we have a plugin or protocol based mechanism to implement block
formats really ends up being just an implementation detail.
In order to implement either, we need to take a subset of block
functionality that we feel we can support long term and expose that.
Right now, that's basically just querying characteristics (like size and
geometry) and asynchronous reads and writes.
A protocol based mechanism has the advantage of being more robust in the
face of poorly written block backends so if it's possible to make it
perform as well as a plugin, it's a preferable approach.
Plugins that just expose chunks of QEMU internal state directly (like
BlockDriver) are a really bad idea IMHO.
Regards,
Anthony Liguori
--
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