FW: [networking-ovs-dpdk] Issue creating br-ex...

Sean Mooney smooney at redhat.com
Thu Dec 20 17:20:54 UTC 2018


hi
i am the maintainer of networking-ovs-dpdk
sorry i did not see this until now as i moved company and
my new email account is only subsribed to openstack-discuss
and i dont not ehve a filter to highlight [networking-ovs-dpdk]
topics yet. ill correct that.

On Thu, 2018-12-20 at 10:39 +0000, d.lake at surrey.ac.uk wrote:
> "Have you tried running this by hand on the system and see what happens?
> 
> 'sudo ovs-vsctl -- --may-exist add-br br-ex -- set Bridge br-ex datapath_type=netdev'"
you should never need to set this.
if you want a br-ex to exist it should be specified in the OVS_BRRIDGE_MAPPINGS
that will instuct the devstack plugin to create the bridge.
you will then need to specify the port using the OVS_DPDK_PORT_MAPPINGS.
e.g.
assuming eth0 is managment eth1 is wan link and eth2 is datacenter network for teantat traffic.
OVS_BRIDGE_MAPPINGS=wan:br-ex,datacenter:br-tenant
OVS_DPDK_PORT_MAPPINGS=eth1:br-ex,eth2:br-tenant

> 
> Yes - that creates the br-ex in ovs-vsctl on the second attempt but it does not create a bridge that ip link can act
> on. 
> 
> If I do an "ip link show br-ex" after the installation script has run, then I do not see a bridge at all on this
> system. 
> 
> There is no PUBLIC_BRIDGE because I'm not using one.  I am creating 4 DPDK NICS which are connected to the virtual
> machines.  Again, after many, many weeks of testing to arrive at a known-good configuration script, the assumption was
> that we could just push-the-button and roll-out re-installations at-will.
that shoudl be possible i have not chagned my local.confs much for many years that said the ones in teh repo
are rather outdated as most of the local.conf enteries are nolonger needed.

> 
> I will have 4 ovs bridge ports - br-dpdk1, br-dpdk2, br-dpdk3, br-dpdk4.   Each one will connect to one physical
> NIC.   Each will then be known in OpenStack as physnet1, physnet2, physnet3, physnet4.    This is how my existing
> system is setup and working using the Devstack installation system.

that is relitively striat froward with devstack you would do this by setting

OVS_BRIDGE_MAPPINGS=physnet1:br-dpdk1,physnet2:br-dpdk2,physnet3:br-dpdk3,physnet4:br-dpdk4
OVS_DPDK_PORT_MAPPINGS=eth1:br-dpdk1,eth2:br-dpdk2,eth3:br-dpdk3,eth4:br-dpdk4

if you want to use a br-ex in this deployment you will need to also add it to both of the above.
if you dont make sure Q_USE_PROVIDERNET_FOR_PUBLIC=True.
the Q_USE_PROVIDERNET_FOR_PUBLIC is deprecated as the external_network_bridge option in the l3 agent is
being removed in stien https://review.openstack.org/#/c/567369/.

> 
> 
> " Short of that you should look at what's changed in the relevant files in the devstack tree to see if it was caused
> by a recent change."
> 
> But I have no idea where to start looking!
> 
> I've also had to give up trying to install Queens as the installation script moans about oslo.concurrency and seems to
> be installing a version that it KNOWS is not compatible.

this might be because of how networking-ovs-dpdk install itself without using the upper-constiarints
https://github.com/openstack/networking-ovs-dpdk/blob/master/devstack/plugin.sh#L33-L35
i have been meaning to fix this for litrally years but it has never broken our ci
so it was alway a low prioity bug. ill submit a patch to correct that.
>   Again, this is something that worked perfectly on the installation I carried out in August.  Surely nothing can have
> changed in the basic installation in less than 6 months?   Even the basic command for cloning the networking_ovs_dpdk
> broke from the working local.conf because the -b stable/queens suffix failed.
this failed as i did not get time to curt the stable/queens branch
as i was not working upstream activly for most of the queens cycle.
i have created it now.
>   In fact looking at the source site for that piece of code, there is no queens release on the site anymore.  I am now
> not sure if the version I have is compatible or not!
i have retroactivly taged the versions that should be compatible.
note that the networking-ovs-dpdk repo is only needed when using devstack to install
as it provides the plugin. in a production enviornmen after juno or kilo i belive we
had upstream all the fuctional python changes to neutron. As such networking-ovs-dpdk
is really just used for developemnt and ci as a devstack plugin to simplfy installation.

because it can install ovs-dpdk from source and apply patches form patchwork
i also use it to test some patches before they are merged into ovs to ensure
they are compatible with how openstack uses ovs-dpdk.

> 
> So I've had to clone devstack master which has now lead to the Cinder bug which I am now trying to patch around.
> 
> I'm hoping that we can get to a stable system by the time the centre shuts for Christmas tomorrow. Four days should
> have been more than enough given the working system which took three months to build!
im sorry the experince has been so rough for you.
i have had almost no time to maintain this repo for the better part of a year
there are several cleanup i plan to work on while im on vacation and before the end of
the cycle. as the usecase i have been testing locally have all contiued to work i have
assumed it contiued to work but i have only been testing master and the ci system that
was testign older release is offline. i am planning to set up a new ci before teh end of
stien release and will be hopefully get time to refactor some of the legacy
documentation and implementation choices.
> 
> Frustrated - but thank you for your help.

if you can provide a description of the enviromnemtn you want to deploy i can proably provide
a local.conf for the 3 commons senairos for you e.g. all-in-one, controller, compute but it
may be some time before i check my email again as i was ment to already be on vaction.
> 
> David
> 
> 
> -----Original Message-----
> From: Brian Haley <haleyb.dev at gmail.com> 
> Sent: 20 December 2018 00:07
> To: Lake, David (PG/R - Elec Electronic Eng) <d.lake at surrey.ac.uk>; openstack at lists.openstack.org
> Subject: Re: FW: [networking-ovs-dpdk] Issue creating br-ex...
> 
> On 12/19/18 3:29 PM, d.lake at surrey.ac.uk wrote:
> > Would appreciate some help here please.   Br-ex is not being added and 
> > the mtu command causes the whole thing to not install.
> 
> Comments inline.
> 
> > *From:*Lake, David (PG/R - Elec Electronic Eng)
> > *Sent:* 19 December 2018 15:22
> > *To:* openstack-dev at lists.openstack.org
> > *Subject:* [networking-ovs-dpdk] Issue creating br-ex...
> > 
> > Hello
> > 
> > Trying to re-run a Queens DPDK all-in-one using devstack which I built 
> > in August and hitting issues.
> > 
> > The local.conf is identical between the two machines except I had to 
> > take the "stable/queens" off the end of the "networking-ovs-dpdk" 
> > plugin line as that no longer appears to work.
> > 
> > The installation seems to proceed until it gets to setting the ip mtu 
> > on br-ex.
> > 
> > I'm not using br-ex.  I've declared OVS bridge mappings in the local.conf:
> > 
> > #Dual socket platform with 16GB RAM,3072*2048kB hugepages leaves ~4G 
> > for the system.
> > 
> > OVS_NUM_HUGEPAGES=3072
> > 
> > #Dual socket platform with 64GB RAM,14336*2048kB hugepages leaves ~6G 
> > for the system.
> > 
> > #OVS_NUM_HUGEPAGES=14336
> > 
> > OVS_DATAPATH_TYPE=netdev
> > 
> > OVS_LOG_DIR=/opt/stack/logs
> > 
> > #OVS_DPDK_PORT_MAPPINGS=p1p1:br-dpdk1,p1p2:br-dpdk2,p2p1:br-dpdk3,p2p2
> > :br-dpdk4
> > 
> > OVS_DPDK_PORT_MAPPINGS=p6p1:br-dpdk1,p6p2:br-dpdk2
> > 
> > #OVS_BRIDGE_MAPPINGS=physnet1:br-dpdk1,physnet2:br-dpdk2,physnet3:br-d
> > pdk3,physnet4:br-dpdk4
> > 
> > OVS_BRIDGE_MAPPINGS=physnet1:br-dpdk1,physnet2:br-dpdk2
> > 
> > [[post-config|$NOVA_CONF]]
> > 
> > [DEFAULT]
> > 
> > firewall_driver=nova.virt.firewall.NoopFirewallDriver
> > 
> > scheduler_default_filters=RamFilter,ComputeFilter,AvailabilityZoneFilt
> > er,ComputeCapabilitiesFilter,ImagePropertiesFilter,PciPassthroughFilte
> > r
> > 
> > [[post-config|/etc/neutron/plugins/ml2/ml2_conf.ini]]
> > 
> > [OVS]
> > 
> > datapath_type=netdev
> > 
> > [ml2_type_flat]
> > 
> > #flat_networks=physnet1,physnet2,physnet3,physnet4
> > 
> > flat_networks=physnet1,physnet2
> > 
> > I cannot stress again how identical these systems are - same hardware, 
> > same base OS install (CentOS 7.5).   I was (maybe erroneously!) 
> > thinking that if I had it devstack working on one system, having an 
> > identical system would be a piece of cake to install.
> > 
> > This is the installation error:
> > 
> > +lib/neutron_plugins/ovs_base:_neutron_ovs_base_add_bridge:21  local
> > bridge=br-ex
> > 
> > +lib/neutron_plugins/ovs_base:_neutron_ovs_base_add_bridge:22  local
> > 'addbr_cmd=sudo ovs-vsctl -- --may-exist add-br br-ex'
> > 
> > +lib/neutron_plugins/ovs_base:_neutron_ovs_base_add_bridge:24  '[' 
> > netdev '!=' system ']'
> > 
> > +lib/neutron_plugins/ovs_base:_neutron_ovs_base_add_bridge:25
> > addbr_cmd='sudo ovs-vsctl -- --may-exist add-br br-ex -- set Bridge 
> > br-ex datapath_type=netdev'
> > 
> > +lib/neutron_plugins/ovs_base:_neutron_ovs_base_add_bridge:28  sudo
> > ovs-vsctl -- --may-exist add-br br-ex -- set Bridge br-ex 
> > datapath_type=netdev
> 
> Have you tried running this by hand on the system and see what happens?
> 
> 'sudo ovs-vsctl -- --may-exist add-br br-ex -- set Bridge br-ex datapath_type=netdev'
> 
> It works for me locally, creating br-ex.  Perhaps there is some delay on your system?  But I would expect the call
> wouldn't return successfully then.
> 
> Or perhaps I'm mis-understanding and you meant to set PUBLIC_BRIDGE in your local.conf as well?
> 
> Short of that you should look at what's changed in the relevant files in the devstack tree to see if it was caused by
> a recent change.
> 
> -Brian
> 
> 
> > +lib/neutron_plugins/ovs_base:_neutron_ovs_base_add_public_bridge:119
> > set_mtu br-ex 1500
> > 
> > +functions:set_mtu:750                     local dev=br-ex
> > 
> > +functions:set_mtu:751                     local mtu=1500
> > 
> > +functions:set_mtu:752                     sudo ip link set mtu 1500 
> > +dev
> > br-ex
> > 
> > Cannot find device "br-ex"
> > 
> > +functions:set_mtu:1                       exit_trap
> > 
> > +./stack.sh:exit_trap:522                  local r=1
> > 
> > ++./stack.sh:exit_trap:523                  jobs -p
> > 
> > +./stack.sh:exit_trap:523                  jobs=
> > 
> > +./stack.sh:exit_trap:526                  [[ -n '' ]]
> > 
> > +./stack.sh:exit_trap:532                  '[' -f /tmp/tmp.Dzbqzlk2fs ']'
> > 
> > +./stack.sh:exit_trap:533                  rm /tmp/tmp.Dzbqzlk2fs
> > 
> > +./stack.sh:exit_trap:537                  kill_spinner
> > 
> > +./stack.sh:kill_spinner:432               '[' '!' -z '' ']'
> > 
> > +./stack.sh:exit_trap:539                  [[ 1 -ne 0 ]]
> > 
> > +./stack.sh:exit_trap:540                  echo 'Error on exit'
> > 
> > Error on exit
> > 
> > +./stack.sh:exit_trap:542                  type -p generate-subunit
> > 
> > +./stack.sh:exit_trap:543                  generate-subunit 1545230781
> > 1747 fail
> > 
> > +./stack.sh:exit_trap:545                  [[ -z 
> > +/opt/stack/logs/screen ]]
> > 
> > +./stack.sh:exit_trap:548                  
> > /home/stack/devstack/tools/worlddump.py -d /opt/stack/logs/screen
> > 
> > Can someone explain what is going on here please?
> > 
> > Thanks
> > 
> > 
> > David
> > 
> 
> 




More information about the openstack-discuss mailing list