Bug 1329012

Summary: [RFE] Document Proper Usage of Linux Bonds Intead of OVS Bonds
Product: Red Hat OpenStack Reporter: Dan Sneddon <dsneddon>
Component: documentationAssignee: Dan Macpherson <dmacpher>
Status: CLOSED CURRENTRELEASE QA Contact: RHOS Documentation Team <rhos-docs>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 8.0 (Liberty)CC: ahirshbe, dbecker, dmacpher, dsneddon, mburns, mcornea, morazi, rhel-osp-director-maint, srevivo
Target Milestone: ---Keywords: Documentation, FutureFeature
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-06-10 01:57:33 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:

Description Dan Sneddon 2016-04-20 22:42:26 UTC
Description of problem:

The original design goal behind using OVS as the bonding mechanism in TripleO was simplicity: since OVS was being used for bridging, adding bonding support directly to the OVS bridge made sense.

Unfortunately, in a few large-scale deployments with high traffic, packet loss has been observed in OVS bonds using LACP.

To counteract this behavior, support was added to TripleO to support Linux kernel-mode bonds, which are not susceptible to packet loss at scale.

When using OVS bonds, an OVS bridge is required. This necessitated the use of a bridge even on the storage nodes, where this wouldn't be required if using kernel bonds.

Now that we have the option of using kernel-mode bonds, we recommend this in most cases, unless an OVS-specific bonding mode is required (although different packet loss issues have occurred when using balance-slb mode bonds, see https://bugzilla.redhat.com/show_bug.cgi?id=1289962).

Actual results:
The sample bonding templates included with OSP 8 are configured for OVS bonds.

Expected results:
The proper use of Linux bonds should be properly documented, and we should provide equivalent sample templates that show the optimum use of Linux bonds.

Additional info:
The following applies when using Linux bonds instead of OVS bonds:

  * Bond interfaces use "linux_bond" instead of "ovs_bond" for the type:
  * Templates use "bonding_options" instead of "ovs_options" for the bond options
  * Linux kernel bonding options have a different form, such as "mode=802.3ad" to indicate LACP bonding.  For more info, see https://www.kernel.org/doc/Documentation/networking/bonding.txt
  * Bridges must still be used for interfaces used for Neutron tenant or provider VLANs, or for SNAT/Floating IPs, whether or not bonding is used on a particular interface. These bridges can be OVS bridges or Linux bridges, but OVS bridges provide more features.

Comment 2 Dan Sneddon 2016-04-20 22:42:45 UTC
*** Bug 1310982 has been marked as a duplicate of this bug. ***

Comment 3 Dan Macpherson 2016-04-29 06:04:11 UTC
Hi Dan,

I updated the network iso section to include linux_bridge and linux_bond options:

https://access.redhat.com/documentation/en/red-hat-openstack-platform/8/director-installation-and-usage/62-isolating-networks

I've also included links to the kernel bond params in Red Hat Enterprise Linux 7 Networking Guide.

Was this what you were after? Let me know if there's anything else I should add.

Comment 4 Dan Macpherson 2016-06-10 01:57:33 UTC
No response in over a month. Closing this BZ. However, if further changes are required, please feel free to reopen this BZ.