openstack-dpdk installation

Sean Mooney smooney at redhat.com
Sun Feb 9 19:24:12 UTC 2020


On Sun, 2020-02-09 at 21:47 +0300, mesut aygün wrote:
> Hi Sean
> 
> 
> 
> I did not prefer the vendor distro. I installed the native ocata release
> from scrath which i configured on myself.
> 
> 
> I downloaded dpdk relase from source and compiled it and also binded the
> interface with dpdk through ovs.
> 
> While i was installing the neutron-ovs-agent, i couldnt start ovs db with
> neutron-ovs. Neutron ovs config files is not working with compiled ovs. How
> can i do that?
> 

i would look at https://opendev.org/x/networking-ovs-dpdk for reference.
specifcily the devstack plugin. i have not had time to update this problely
for a year or two si it still has some legacy hacks like running ovs-dpdk under
screen to mimic how devstack used to run services. i need to rewrite that at
some point to use systemd but that plugins automates the process of compileing and instaling
ovs-dpdk and the relevent ovsdb configuration and neutron/nova config file updates.

if you are having issue with starting the ovs-db it is unrelated to openstack.
but if you ment to say you wer having issue start the ovs neutron agent because it could not
connect to the ovs db then its like that neutron is trying to connect over tcp and you have
not exposed the ovs db over tcp as teh default is to use a unix socket, or vise vera the
neutron agent can be configured to use ovs-vsctl instead of the python binding and connect
via the unix socket and you may have only exposed it via tcp.

i wont really have much time to debug this with you unfortunetly but hopefully networking-ovs-dpdk
will help you figure out what you missed. i would focuse on ensureing ovs-dpdk is working propperly first
before tryign to start teh neutron agent.

> Thank you for helping
> 
> 
> 
> 
> On Sun, 9 Feb 2020, 19:56 Sean Mooney, <smooney at redhat.com> wrote:
> 
> > On Sun, 2020-02-09 at 01:09 +0300, mesut aygün wrote:
> > > Hey,
> > > 
> > > I am working over dpdk installation with openstack ocata release.
> > > How can I use the neutron-openvswitch-agent-dpdk or anything else
> > 
> > instead
> > > of  neutron-openvswitch-agent?
> > 
> > in octa you can use the standared neutorn openvswitch agent with ovs-dpdk
> > the only config option you need to set is [ovs]/datapath_type=netdev in
> > the ml2_conf.ini on each of the compute nodes.
> > 
> > 
> > 
> > 
https://github.com/openstack/neutron/blob/9aa9a097e6c9f765a59eb572a5a816169d83f2cd/neutron/conf/plugins/ml2/drivers/ovs_conf.py#L107-L112
> > 
> > addtionally when installing ovs you need to configure it for dpdk.
> > most distros now compile in support for dpdk into ovs so all you have to
> > do to use it is configure it rahter then
> > recompile ovs or install an addtional package.
> > 
> > there is some upstream docs on how to do that here
> > http://docs.openvswitch.org/en/latest/intro/install/dpdk/
> > 
> > the clip note version is you need to allcoated hugepages on the host for
> > ovs-dpdk to use and addtional hugepages for
> > your vms. then you need to bind the nic you intend to use with dpdk to the
> > vfio-pci driver.
> > next you need to define some config options to test ovs about that and
> > what cores dpdk should use.
> > 
> >         sudo ovs-vsctl --no-wait set Open_vSwitch .
> > other_config:pmd-cpu-mask=$OVS_PMD_CORE_MASK other_config:dpdk-
> > init=True other_config:dpdk-lcore-mask=$OVS_CORE_MASK \
> >         other_config:dpdk-mem-channels=4
> > other_config:dpdk-socket-mem=$OVS_SOCKET_MEM other_config:dpdk-hugepage-
> > dir=$OVS_HUGEPAGE_MOUNT  \
> >         other_config:dpdk-extra=" --proc-type primary $pciAddressWhitelist
> > "
> >         [ -n "$OVS_VHOST_USER_SOCKET_DIR" ] && sudo ovs-vsctl --no-wait
> > set Open_vSwitch . other_config:vhost-sock-
> > dir=$OVS_VHOST_USER_SOCKET_DIR
> > 
> > finally when you create the ovs bridges you need to set them to ues the
> > netdev datapath although neutron will also do
> > this its just a good habit to do it when first creating them once done you
> > can add the physical nics to the br-ex or
> > your provider bridge as type dpdk.
> > 
> > ovs-vsctl --may-exist add-port $bridge $nic -- set Interface $nic
> > type=dpdk options:dpdk-devargs=$addr
> > 
> > with all that said that is how you install this manually if you are
> > compiling form source.
> > i would recomend looking at your openstack installer of choice to see if
> > they have support or your disto vendors
> > documentation as many installers have native support for ovs-dpdk and will
> > automate it for you.
> > 
> > > 
> > > Which can I choose the correct packages with os dpdk versions?
> > > 
> > > 
> > > 
> > > I couldn't use the devstack versions!!
> > > 
> > > Best regards
> > 
> > 




More information about the openstack-discuss mailing list