[Neutron][ovs-dpdk]

Sean Mooney smooney at redhat.com
Mon Dec 10 12:20:03 UTC 2018


On Sun, 2018-12-09 at 22:15 +0600, Zilhazur Rahman wrote:
> Hi
> 
> I am writing for the first time to the mailing list of openstack, I am trying to deploy ovs-dpdk to have better
> traffic throughput for NFV. Could you please share any tutorial link for standard ovs-dpdk deployment. On the other
> hand, openstack site says this " Expect performance degradation of services using tap devices: these devices do not
> support DPDK. Example services include DVR, FWaaS, or LBaaS. " but I need to have LBaaS and DVR ( to have direct
> external connectivity on compute) , what could be done in this case?
LBaaS perfromance will only be impacted in the legacy model where the loadblancer was network nodes using the linux
kernel.  if you are usign LBaas in the default mode where it creates a nova vm and run haproxy or another loadblancer on
it then it will preform well provided the vm uses a hugepage backed flavor. if you do not use hugepages you will have no
network connectivity.

DVR is tricker as ther is really no way to avoid the fact it does routing in the kernel which not only disables all
dpdk accleration but causes all dpdk acllerated port to experice a performance degrdation as it is more costly to
service non dpdk interface therefor consuming more cpu resouces that would have been used to service the dpdk cores.

using an sdn conttoler like ovn is one way to avoid this over head as it will route using openflow.
i know that some people in neutron were looking at enableing openflow routing in ml2 ovs but i dont know
what the state of that is.

in terms of installation juju and triplo both have support for ovs-dpdk.
kolla-ansible also has some support but i have not been maintaining it for the last 14 months or so
as such i dont know how stable it is.

from a netron perspective the only thing you need to change in the neutron configs
is the ovs datapath to netdev in the ovs section of /etc/neutron/plugins/ml2/ml2_conf.ini
on the nova side you shoule create a seperate host aggreage and new flavor with hugepages.

from an ovs perspecitve if you are doing this by hand there are some docs directly form ovs 
to compile and install it from source 
https://github.com/openvswitch/ovs/blob/master/Documentation/intro/install/dpdk.rst
but i would generally recommend installing it from your distro it will reduce teh performace a little
but it will be better tested and easier to maintian. the main things to know is that ovs-dpdk
will also require hugepages, you will have to configure a pmd core mask for the dpdk threads to use
and all bridge must be of datapath type netdev with patch ports interconnecting them.
finally if you want to use vxlan or other tunnels you must assign the tunnel endpoint ip to the ovs bridge
with the dpdk phyical interface, otherwise your tunneled traffic will not be acclerated. 
> 
> 
> Regards
> Zilhaz
> 




More information about the openstack-discuss mailing list