[Libvir] [PATCH][RFC] libvirt ldoms support

Daniel Veillard veillard at redhat.com
Thu Apr 10 17:34:05 UTC 2008

On Wed, Apr 09, 2008 at 08:52:44PM -0500, Eunice Moon wrote:
> Hi Daniel,
> Thanks for your comments.  Please see my responses inline below.

  Hi Eunice,

it seems we are basically agreeing on the needed code change, which is 
great ... but there is one big problem remaining:

Example of domain definition data:

> <?xml version="1.0"?>
> <LDM_interface version="1.0">
>   <data version="2.0">
>     <ldom>
>       <ldom_info>
>         <ldom_name>primary</ldom_name>
>         <mac_address>00:14:4f:02:7d:c6</mac_address>
>       </ldom_info>
>       <cpu>
>         <number>10</number>
>       </cpu>
>       <mau>
>         <number>3</number>
>       </mau>
>       <memory>
>         <size>1920M</size>
>       </memory>
>       <physio_device>
>         <name>pci at 780</name>
>       </physio_device>
>       <physio_device>
>         <name>pci at 7c0</name>
>       </physio_device>
>       <vsw>
>         <service_name>primary-vsw0</service_name>
>         <dev_path>e1000g0</dev_path>
>       </vsw>
>       <vcc>
>         <service_name>primary-vcc0</service_name>
>         <min_port>5000</min_port>
>         <max_port>5033</max_port>
>       </vcc>
>       <var>
>         <name>boot-device</name>
>         <value>/pci at 7c0/pci at 0/pci at 1/pci at 0,2/LSILogic,sas at 2/disk at 0,0:a disk net</value>
>       </var>
>       <var>
>         <name>nvramrc</name>
>         <value>devalias disk /pci at 7c0/pci at 0/pci at 1/pci at 0,2/LSILogic,sas at 2/disk at 0
> </value>
>       </var>
>       <var>
>         <name>use-nvramrc?</name>
>         <value>true</value>
>       </var>
>     </ldom>
>   </data>
> </LDM_interface>

  From what i understand this correspond to what you would suggest libvirt
lDOM domain to use, both as input when creating or defining a process or 
when dumping the XML of a domain via 'virsh dumpxml domainame'

  In a sense the XML format is also part of libvirt API and your data
is completely different from what libvirt uses for all other hypervisors:

  I understand that your format correspond to what the virtualization
manager exports as no transformation of the data is done at the libvirt
lDOM patches level.

  So basically as is we are in a situation where no existing tool based on
libvirt (like virt-manager or ovirt) can be ported to a future libvirt
for lDOM without completely changing the XML handling code. That would
seriously diminish the value of the lDOM libvirt port, isn't it ?

  One option is to adapt the virtualization manager to use an XML
format which is based on libvirt existing format, I don't know if this
is possible. One problem to consider is whether the existing format is
'public' or just internal to the existing tools.

  The other option I can see is to provide a conversion layer, either in
libvirt or in the manager to allow the processing of domain descriptions
based on the libvirt public format. I even thing the code could detect
the kind of format near trivially (for example by checking the name of
the root element when receiving XML, and by using a compatibility flag
when extracting XML with virDomainGetXMLDesc).
  I'm not sure i would be able to trivially map your existing format to
a libvirt one, because i don't understand what some of the fields are for
and the way you name devices are a bit strange to me, but i'm sure it can
be solved. it will just take some work,

  what do you think ?


Red Hat Virtualization group http://redhat.com/virtualization/
Daniel Veillard      | virtualization library  http://libvirt.org/
veillard at redhat.com  | libxml GNOME XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine  http://rpmfind.net/

More information about the libvir-list mailing list