[libvirt] Device backend in another domain (xen)
Daniel P. Berrange
berrange at redhat.com
Fri Apr 5 08:28:42 UTC 2013
On Fri, Apr 05, 2013 at 01:23:15AM +0200, Marek Marczykowski wrote:
> Hi all,
>
> Xen have (AFAIK unique) feature of having backend device in other domU
> (sometimes called driver domain) instead of dom0. Currently libxl support it
> for disk and network devices, but in general it is valid for any device
> (perhaps excluding PCI). Current implementation requires ID of backend domain
> to be specified during device attach/domain startup. There are some upcoming
> patches to allow also use domain name.
>
> I'd like to add support for it into libvirt. The question is how specify
> domain reference. The simplest approach is to use direct domain ID, logically
> it fits in <source/> tag, so something like:
> <disk type='file'>
> <source file='/path/to/file/inside/domain/7' domid='7'/>
> <target dev='xvdb'/>
> </disk>
> <interface type='bridge'>
> <source bridge='name-of-bridge-in-domiain-7' domid='7'/>
> </interface>
>
> This have obvious limitation that domain ID changes with each domain restart.
> But perhaps more correct approach is to use name or UUID?
Yeah, I think you're going to want to use the name/uuid here as
they are long term stable.
> Extending <source/> tag is right thing to do? Or should I add a new tag
> (<backenddomain uuid='...'/> ? )?
I think perhaps the new tag like <backenddomain> is a good idea.
Perhaps just shorten that name to <domain>
> Regarding implementation I need some hints how to do the value verification
> (check if domain exists at least). If it has to be done in domain_conf.c
> (during XML parsing) it will require predetermined domain load order, which
> IMHO isn't acceptable. So perhaps the check should be done at domain
> startup/device attach (by driver)?
> In any case: is it possible at all to check if domain with given name/UUID
> exists in scope of domain_conf.c? It looks like it requires connection
> reference, which isn't passed to virDomain*DefParseXML.
The code in domain_conf.c should only concern itself with syntactic
validation. Any kind of semantic validation should live in the driver
code, for example in src/xen/*.c (or src/.libxl/*.c if you're planning
to use the new xen driver).
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
More information about the libvir-list
mailing list