[openstack-dev] [Nova] Enabling libvirt feature: pass-through of QEMU command line args

Rahul M R thisisrmr at gmail.com
Mon Nov 11 08:13:59 UTC 2013


Hi all,

I'm new to this mailing list :)

I am currently working on the Snabbswitch project < https://github.com/SnabbCo/snabbswitch/wiki >. We are developing an OpenStack Neutron plugin (targeting Icehouse release). Snabbswitch makes use of an experimental patch to QEMU (not merged to mainline yet) that adds support for a user-space PCI device. This device is not supported by the libvirt XML (yet). So, in order to use this feature, some command line arguments will have to be passed to QEMU when booting an instance.

Therefore, I'd like to make a proposal for enabling a libvirt feature: pass-through of QEMU command line args < http://libvirt.org/drvqemu.html#qemucommand >. This will allow us to boot instances with the necessary QEMU command line arguments.

Now regarding the implementation of this feature, currently the plan is as follows:

1. Add metadata when creating an instance using the nova boot API. For e.g.: libvirt_qemu_cli_args=["-arg1", "-arg2"]

2. The libvirt driver will process the instance's metadata and generate the necessary XML (for the instance's libvirt.xml). For e.g.:
````
<domain type='qemu' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
...
<qemu:commandline>
   <qemu:arg>-arg1</qemu:arg>
   <qemu:arg>-arg2</qemu:arg>
</qemu:commandline>
...
</domain>
````

I'd love to get some feedback regarding the above proposal.
Also, are there any specific requirements for making a Nova Blueprint (i.e., equivalent of < https://wiki.openstack.org/wiki/Neutron/BlueprintTemplate > )?

We would like to have this feature included in Icehouse release.

Thanks in advance.

Regards,
Rahul



More information about the OpenStack-dev mailing list