[libvirt] Adding VirtualBox support to libvirt

John Levon levon at movementarian.org
Thu Feb 26 15:22:00 UTC 2009


On Thu, Feb 26, 2009 at 03:26:34PM +0100, Pritesh Kothari wrote:

> Is the XML format for defining the Domains common to all the hypervisors? If 
> not then how should I start about defining it for Virtualbox?

Hi Pritesh. The XML format is not exactly the same between the
hypervisors, but large parts of it are shared. For example, we may have:

<domain type='xen' id='-1'>

You'd define the vbox type here in Relax-NG spec.
Most elements you'll find are the same between hypervisors, but some are
split across types, e.g.:

  <define name='os'>
    <choice>
      <ref name='osxen'/>
      <ref name='oshvm'/>
      <ref name='osexe'/>
    </choice>
  </define>

Generally, if you can, use the generic parts. If you need to specify
something specific to VBox you have three options:

1. work out a hypervisor-agnostic abstraction for what you're trying to
define (preferred), then use that
1. define a vbox-specific ref as you above
2. if it's just a small addition or choice, allow it as optional in the
spec (say it's a disk property you want to add)


> What exactly does the tag <os_type>xen</os_type> exactly mean? how can xen, 
> hvm, etc be an os type?

It's a horrible wart. OS type really means "v12n method", and it means
either paravirt or HVM here. Presumably vbox wouldn't use this choice
(remember the relax ng spec isn't/can't be completely prescriptive).

> why virDomainCreate doesn't actually create the domain but it just starts it? 
> (virDomainCreateXML actually creates it)

Bad names. "Create" means start, "CreateXML" means "create using the
definition given here, but don't persist the definition when it's shut
down".

regards
john




More information about the libvir-list mailing list