Jump to: navigation, search

Difference between revisions of "LibvirtVIFDrivers"

Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
 
= Libvirt VIF Driver Enhacement =
 
= Libvirt VIF Driver Enhacement =
 
 
The Libvirt VIF driver implementations as present in Folsom suffer from a number of problems
 
The Libvirt VIF driver implementations as present in Folsom suffer from a number of problems
  
Line 17: Line 16:
 
* '''<code><nowiki>[[LibvirtOpenVswitchVirtualPortDriver]]([[LibvirtOpenVswitchDriver]])</nowiki></code>'''.  Connects VIFs to a OpenVSwitch bridge, whose name is set by CONF.libvirt_ovs_bridge parameter. The OVS integration is done by libvirt and it is allowed to auto-assign a TAP device name. No filter parameters are allowed.
 
* '''<code><nowiki>[[LibvirtOpenVswitchVirtualPortDriver]]([[LibvirtOpenVswitchDriver]])</nowiki></code>'''.  Connects VIFs to a OpenVSwitch bridge, whose name is set by CONF.libvirt_ovs_bridge parameter. The OVS integration is done by libvirt and it is allowed to auto-assign a TAP device name. No filter parameters are allowed.
 
* '''<code><nowiki>QuantumLinuxBridgeVIFDriver(LibvirtBaseVIFDriver)</nowiki></code>'''. Connects VIFs to a Quantum created software bridge, whose name is derived from the <code><nowiki>network['id']</nowiki></code> parameter. Does not configure any network filtering. The TAP device name is set based on the VIF UUID.
 
* '''<code><nowiki>QuantumLinuxBridgeVIFDriver(LibvirtBaseVIFDriver)</nowiki></code>'''. Connects VIFs to a Quantum created software bridge, whose name is derived from the <code><nowiki>network['id']</nowiki></code> parameter. Does not configure any network filtering. The TAP device name is set based on the VIF UUID.
 +
 +
The '''<code><nowiki>[[LibvirtBridgeDriver]]</nowiki></code>''' VIF is designed to work with Nova networking. The other VIF drivers are all designed to work with Quantum networking.

Revision as of 18:22, 3 January 2013

Libvirt VIF Driver Enhacement

The Libvirt VIF driver implementations as present in Folsom suffer from a number of problems

  • The Nova admin has to know what Quantum driver is used and configure the vif_driver to match
  • Nova can only support a single VIF type for Quantum, which prevents concurrent use of different Quantum drivers with Nova
  • The Nova admin is at risk of making suboptimal config choices. For example, choosing LibvirtOpenVswitchDriver instead of LibvirtOpenVswitchVirtualPortDriver for new libvirt
  • The Nova admin is at risk of making nonsensical config choices. For example, choosing LibvirtOpenVswitchDriver at the same time as the Libvirt NWFilter firewall will result in non-operational firewall - they should use LibvirtHybridOVSBridgeDriver if they need firewalling to work

Current VIF Driver Impls in Folsom

As of Folsom the following VIF drivers exist

  • [[LibvirtBridgeDriver]](LibvirtBaseVIFDriver). Connects VIFs to a plain Linux software bridge, whose name is provided by the network['bridge'] parameter. Configures filter parameters for nwfilter firewalling. Libvirt is allowed to auto-assign a TAP device name. Optionally creates the bridge device, and a VLAN device on the host.
  • [[LibvirtOpenVswitchDriver]](LibvirtBaseVIFDriver). Connects VIFs to a OpenVSwitch bridge, whose name is set by CONF.libvirt_ovs_bridge parameter. The OVS integration is done manually and the TAP device name is based on the VIF UUID. No filter parameters are allowed.
  • LibvirtHybridOVSBridgeDriver([[LibvirtBridgeDriver]], [[LibvirtOpenVswitchDriver]]). Connects VIFS to an OpenVSwitch bride, whose name is set by the CONF.libvirt_ovs_bridge parameter. The OVS integration is done using a software bridge and pair of veth devices, to allowing nwfilter firewalling to operate. The bridge/veth device names are chosen based on the VIF UUID. Libvirt is allowed to auto-assign a TAP device name.
  • [[LibvirtOpenVswitchVirtualPortDriver]]([[LibvirtOpenVswitchDriver]]). Connects VIFs to a OpenVSwitch bridge, whose name is set by CONF.libvirt_ovs_bridge parameter. The OVS integration is done by libvirt and it is allowed to auto-assign a TAP device name. No filter parameters are allowed.
  • QuantumLinuxBridgeVIFDriver(LibvirtBaseVIFDriver). Connects VIFs to a Quantum created software bridge, whose name is derived from the network['id'] parameter. Does not configure any network filtering. The TAP device name is set based on the VIF UUID.

The [[LibvirtBridgeDriver]] VIF is designed to work with Nova networking. The other VIF drivers are all designed to work with Quantum networking.