Bug 1325680

Summary: [RFE] [Neutron] [OSP-director] DPDK accelerated Open vSwitch - graduation to full support
Product: Red Hat OpenStack Reporter: Nir Yechiel <nyechiel>
Component: openstack-tripleo-heat-templatesAssignee: Vijay Chundury <vchundur>
Status: CLOSED ERRATA QA Contact: Yariv <yrachman>
Severity: high Docs Contact:
Priority: high    
Version: 8.0 (Liberty)CC: amuller, chrisw, dcadzow, dnavale, ekuris, fbaudin, igor.duarte.cardoso, jdonohue, jschluet, mbabushk, mburns, mgandolf, mlopes, nyechiel, oblaut, rhel-osp-director-maint, sclewis, srevivo
Target Milestone: betaKeywords: FutureFeature, InstallerIntegration, Triaged
Target Release: 10.0 (Newton)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: openstack-tripleo-heat-templates-5.0.0-0.20160907212643.90c852e.1.el7ost Doc Type: Enhancement
Doc Text:
Typically, the installation and configuration of OVS+DPDK in OpenStack is performed manually after overcloud deployment. This can be very challenging for the operator and tedious to do over a large number of Compute nodes. The installation of OVS+DPDK has now been automated in tripleo. Identification of the hardware capabilities for DPDK were previously done manually, and is now automated during introspection. This hardware detection also provides the operator with the data needed for configuring Heat templates. At present, it is not possible to have the co-existence of Compute nodes with DPDK-enabled hardware and without DPDK-enabled hardware. The `ironic` Python Agent discovers the following hardware details and stores it in a swift blob: * CPU flags for hugepages support - If pse exists then 2MB hugepages are supported If pdpe1gb exists then 1GB hugepages are supported * CPU flags for IOMMU - If VT-d/svm exists, then IOMMU is supported, provided IOMMU support is enabled in BIOS. * Compatible nics - compared with the list of NICs whitelisted for DPDK, as listed here http://dpdk.org/doc/nics Nodes without any of the above-mentioned capabilities cannot be used for the Compute role with DPDK. * Operator will have a provision to enable DPDK on Compute nodes. * The overcloud image for the nodes identified to be Compute-capable and having DPDK NICs, will have the OVS+DPDK package instead of OVS. It will also have packages `dpdk` and `driverctl`. * The device names of the DPDK capable NIC’s will be obtained from T-H-T. The PCI address of DPDK NIC needs to be identified from the device name. It is required for whitelisting the DPDK NICs during PCI probe. * Hugepages needs to be enabled in the Compute nodes with DPDK. * CPU isolation needs to be done so that the CPU cores reserved for DPDK Poll Mode Drivers (PMD) are not used by the general kernel balancing, interrupt handling and scheduling algorithms. * On each Compute node with a DPDK-enabled NIC, puppet will configure the DPDK_OPTIONS for whitelisted NICs, CPU mask, and number of memory channels for DPDK PMD. The DPDK_OPTIONS needs to be set in /etc/sysconfig/openvswitch. `Os-net-config` performs the following steps: * Associate the given interfaces with the dpdk drivers (default as vfio-pci driver) by identifying the pci address of the given interface. The driverctl will be used to bind the driver persistently. * Understand the ovs_user_bridge and ovs_dpdk_port types and configure the ifcfg scripts accordingly. * The “TYPE” ovs_user_bridge will translate to OVS type OVSUserBridge and based on this OVS will configure the datapath type to ‘netdev’. * The “TYPE” ovs_dpdk_port will translate OVS type OVSDPDKPort and based on this OVS adds the port to the bridge with interface type as ‘dpdk’ * Understand the ovs_dpdk_bond and configure the ifcfg scripts accordingly. On each Compute node with a DPDK-enabled NIC, puppet will perform the following steps: * Enable OVS+DPDK in /etc/neutron/plugins/ml2/openvswitch_agent.ini [OVS] datapath_type=netdev vhostuser_socket_dir=/var/run/openvswitch * Configure vhostuser ports in /var/run/openvswitch to be owned by qemu. On each controller node, puppet will perform the following steps: * Add NUMATopologyFilter to scheduler_default_filters in nova.conf. As a result, the automation of the above-mentioned enhanced platform awareness has been completed, and verified by QA testing.
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-12-14 15:32:16 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1380114, 1383406, 1384562, 1384774, 1397074, 1397537    
Bug Blocks: 1329379, 1334442, 1335593, 1371868    

Description Nir Yechiel 2016-04-10 15:35:02 UTC
Description of problem:

DPDK accelerated Open vSwitch (OVS+DPDK) was first introduced as a Technology Preview feature with RHOSP 8. Several gaps has been identified and should be solved before we can consider fully support for this feature. Thie RFE bug is to track the Neutron related ones.

Comment 3 Nir Yechiel 2016-05-17 13:32:32 UTC
TripleO/OSP director blueprint: https://blueprints.launchpad.net/tripleo/+spec/tripleo-ovs-dpdk

TripleO/OSP director spec: https://review.openstack.org/#/c/313871/

Comment 4 Nir Yechiel 2016-06-22 12:20:21 UTC
*** Bug 1329379 has been marked as a duplicate of this bug. ***

Comment 5 Ofer Blaut 2016-07-21 11:52:01 UTC
*** Bug 1284756 has been marked as a duplicate of this bug. ***

Comment 6 Assaf Muller 2016-08-16 13:55:01 UTC
The TripleO spec was merged, work is ongoing.

Comment 7 Nir Yechiel 2016-09-14 12:52:53 UTC
*** Bug 1333802 has been marked as a duplicate of this bug. ***

Comment 9 Assaf Muller 2016-10-19 20:50:45 UTC
Franck did you have anyone in mind responsible for docs?

Please see https://bugzilla.redhat.com/show_bug.cgi?id=1384562#c20.

Comment 14 errata-xmlrpc 2016-12-14 15:32:16 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHEA-2016-2948.html