os-vif/releasenotes/notes/per-port-bridge-c6a50179a0256de3.yaml
Sean Mooney b837c1a74f add configurable per port bridges
This patch add a new configuration option to use
per port bridge when hybrid_plug is false.
This can be used with OVN to reduce packet loss
during a live migration.

OVN can only install openflow rules when a port both has
external_ids set and an ofport-id assigned.
Since the ofport-id is only assigned when a netdev matching
the port name exists connected to the dataplane, OVN cannot
install the flows until libvirt create the tap on the destination
host during a live migration.

On loaded systems this can result in multiple seconds of packet loss.
To address this we introduce per port bridges which are connencted
to the integration brige by a patch port pair. Since the patch port
will exist on the dataplane during pre live migration OVN can install
the flows on the integration bridge before we begin the migration reducing
or avoiding packet loss.

Change-Id: I0d55ccbef5b585330b5512e67e442b80304a2e73
Depends-On: https://review.opendev.org/c/openstack/nova/+/797428
Closes-Bug: #1933517
2021-07-12 19:12:01 +00:00

26 lines
1.6 KiB
YAML

---
fixes:
- |
The os-vif OVS plugin now supports using per-port OVS bridges when hybrid plug
is not used. This is disabled by default and can be enabled by defining
``[os_vif_ovs]/per_port_bridge=True`` in the compute service nova.conf.
This capability should only be enabled if you are deploying with ml2/ovn
and experience packet loss during live migrations. This is not supported
on windows or when using ironic smartnic ports. This option was introduced
to address bug: #1933517. When using OVN as a network backend OVN
requires the OVS interface to both have an ofport-id and the neutron port
uuid defined in the external_ids field. When the port is plugged if
``[os_vif_ovs]/per_port_bridge`` is not enabled then the OVS port will not
be assigned an openflow port id until the tap device is created on the host.
On loaded system with many flows and ports it can take a few second for OVN
to detect the creation of the tap device and install the correct flows.
During that interval packets can be dropped.
When ``[os_vif_ovs]/per_port_bridge`` is enabled, os-vif will add the VM tap
device to a new bridge that is connected to the integration bridge via a
patch port. This enables OVN to install the openflow rules on the
integration bridge before the tap is created reducing the possibility for
packet loss during a live migration. By default per port bridges are disabled
and this feature is considered experimental, however it will likely be enabled
by default in the future after we gain experience with how this bridge topology
scales in larger deployments.