[ovs-discuss] DPDK OVS on multi-host KVM

Dave Johnston Dave.Johnston at owmobility.com
Thu Jul 9 09:44:30 UTC 2015


Hi Sean,


[sean] while the onp 1.4 document does not describe how to deploy with the vhost-user support available in the networking-ovs-dpdk repo I can provide information on how to enable this support and configure a multi node deployment.


Hi Sean, Can you provide some details on how to do this?  It looks like the ONP guide talks about using DPDK 1.8, but 2.0 is required for this?  If I enable
OVS_DPDK_RTE_LIBRTE_VHOST=y

Will the correct version of DPDK be downloaded and compiled.
What is required, is it just the setup of hugepages ?





Dave Johnston | Software Engineer | Openwave Mobility


________________________________
From: discuss <discuss-bounces at openvswitch.org> on behalf of Mooney, Sean K <sean.k.mooney at intel.com>
Sent: 02 July 2015 20:33
To: John Lange; bugs at openvswitch.org
Subject: Re: [ovs-discuss] DPDK OVS on multi-host KVM


Hello john.


I will try to answer some of your question inline.



I work on the team that developed the install guide you have referenced as well as

The software components to integrate ovs +dpdk with OpenStack at intel.



The following repository may be of use to you



https://github.com/stackforge/networking-ovs-dpdk



as of the kilo release of openstack we have migrated the openstack integration code from 01.org to stackforge.



The networking-ovs-dpdk repo provides  a ovsdpdk ml2 mechanism driver  and an ovsdpdk l2 agent to enable support for

Upstream ovs with the dpdk enabled netdev datapath. Additionally the networking-ovs-dpdk provide a devstack plugin

Which will download, compile and install dpdk, ovs and the agent and driver required for OpenStack integration.



At present we do not have a corresponding Getting started guide for deploying via the networking-ovs-dpdk  repo but I can provide assistance configuring ovs+dpdk+openstack.



Please feel free to follow up with me here or directly If I can help.



Regards

Sean.







From: discuss [mailto:discuss-bounces at openvswitch.org] On Behalf Of John Lange
Sent: Wednesday, July 1, 2015 9:36 PM
To: bugs at openvswitch.org
Subject: [ovs-discuss] DPDK OVS on multi-host KVM



Greetings,



We have a multi-host KVM system, with one server for KVM controller, one server for neutron (networking), one server for cinder (bulk disk storage), and multiple servers planned for KVM compute nodes (but currently only one compute node).  We are using Ubuntu 12.04.2 LTS Server on all the hosts.  We need to use SLES 11sp3 as the guest OSes in the KVM-based VMs.



First issue is figuring out which version of DPDK and OVS to use.  Newer versions of OVS are incompatible with newer versions of DPDK.  This seems mostly due to the removal of the pkt.data field in mbuf structure in DPDK (see here<http://dpdk.org/doc/guides/rel_notes/updating_apps.html> for updating DPDK details).  I am currently trying to use DPDK v1.6.0r2 with OVS v2.3.2.  This combination seems to build fine, and I can get through most of the install guide here<http://openvswitch.org/support/dist-docs/INSTALL.DPDK.md.txt>, at least on the compute node, using an 82599 10Gb port for the binding.



[sean] the current master branch of ovs supports dpdk 2.0.

[sean] the current commit of ovs we recommend to use is 7d1ced01772de541d6692c7d5604210e274bcd37 with dpdk v2.0.0



However, the install guide doesn’t cover how to install in a multi-host KVM deployment and also how to deploy on a KVM-based VM guest.  Near the end of the install guide referenced above, it mentions that a patched QEMU is required, and refers to here<https://01.org/packet-processing/downloads>.  However, that is the link for downloading OVDK (up to v1.1 which is out of date with the most recent v2.3.2 available from openvswitch.org), and there doesn’t seem to be any instructions at that link for how to patch QEMU.



[sean] a patched version of qemu is only required for ivshmem support.

[sean] we recommend use qemu 2.2 or newer when using ovs+dpdk and vhost-user.

[sean]Note that ivshmem support is not intergrated with openstack at this time.



I did find an Intel document here<https://01.org/sites/default/files/page/openstack_neutron_with_intel_architecture_gsg_rev004.pdf> from Nov 2014 covering the deployment of OVDK on multiple host KVM, but it seems out of date since OVDK is being deprecated due to it being merged to the common version of OVS.  Is there an updated version of this document available, covering the newer (post-merged version of) OVS?



[sean] the document you have references was a Getting started guide describing the deployment of ovs+dpdk  and ovdk with openstack juno.

[sean] for kilo release and on this intergrations is now done via the https://github.com/stackforge/networking-ovs-dpdk repo.

[sean] a sample configuration file for an all in one node is available here https://github.com/stackforge/networking-ovs-dpdk/blob/master/doc/source/_downloads/local.conf_example

[sean] an updated onp reference architecture document is available here https://01.org/sites/default/files/page/intel_onp_server_reference_architecture_guide_v1.4.pdf

[sean] while the onp 1.4 document does not describe how to deploy with the vhost-user support available in the networking-ovs-dpdk repo I can provide information on how to enable this support and

[sean] configure a multi node deployment.





As it is, I’m not sure how to get DPDK based OVS to work in KVM based VMs.  Do I need to build and deploy DPDK/Open vSwitch on the KVM controller?  On the KVM Neutron node?  On each compute node?  On the VMs?  Can it work with virtio (virtual NICs), or does it require Direct Attach for each VM.  It is all very confusing, and the documentation is either non-existent or is at best incomplete.  Any help you can offer would be greatly appreciated.



[sean] kernel ovs and UserSpace ovs (dpdk netdev datapath) can coexist in the same cloud.

[sean] ovs +dpdk can be installed on the controller, network node or compute nodes.

[sean] to integrate ovs+dpdk with OpenStack the ovsdpdk ml2 mechanism driver should be installed on network(neutron) node.

[sean] the DPDK ovs agent should be installed on each compute node that you wish to run ovs+dpdk.

[sean] the deployment of these nodes can be supported by the devstack plugin provides as part of the networking-ovs-dpdk repo.



[sean] As of qemu 2.1 a new virtio backend is supported called vhost-user. This interface allows either a standard virtio-net driver or a dpdk poll mode driver to be used in the guest.

[sean] vhost-user does not require vm images to be modified in any way how ever does require vms to use hugepage memory.

[sean] support for vhost-user with openstack is available with the following software versions

·         openstack kilo+

·         ovs commit 7d1ced01772de541d6692c7d5604210e274bcd37 or later

·         dpdk v2.0.0

·         qemu 2.1+(recommend 2.2+)

·         Libvirt 1.2.11+ (recommend 1.2.13)





Do you (or other companies) offer contract consulting services to support Open vSwitch?



[sean] not that I’m aware of but we are happy to help you resolve your issues :)



Many thanks,



John Lange

Principal Engineer, Software Development
Solution Architecture/Systems Engineering Group
JDS Uniphase Corporation
9950 Federal Drive, Ste. 150
Colorado Springs, CO 80921

John.Lange at jdsu.com<mailto:John.Lange at jdsu.com>
+1-303-416-9665 office

+1-281-772-5818 cell
www.jdsu.com<http://www.jdsu.com/>

www.jdsu.tv<http://www.jdsu.tv/>





[cid:BBA3B45F-65AA-4291-86AD-168262546767]




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://openvswitch.org/pipermail/ovs-discuss/attachments/20150709/dd7f2fbe/attachment-0002.html>


More information about the discuss mailing list