integration for OpenStack · 2019-02-26 · oVirt OpenStack Resources/ Complexity C services/...

14
Daniel Alvarez [email protected] Numan Siddique [email protected] @numansiddique The evolution of Open vSwitch integration for OpenStack 13 Nov 2018

Transcript of integration for OpenStack · 2019-02-26 · oVirt OpenStack Resources/ Complexity C services/...

Page 1: integration for OpenStack · 2019-02-26 · oVirt OpenStack Resources/ Complexity C services/ single C agent, OVSDB protocol, smaller footprint. Multiple python agents, rabbitmq,

Daniel Alvarez [email protected] Siddique [email protected] @numansiddique

The evolution of Open vSwitch integration for OpenStack

13 Nov 2018

Page 2: integration for OpenStack · 2019-02-26 · oVirt OpenStack Resources/ Complexity C services/ single C agent, OVSDB protocol, smaller footprint. Multiple python agents, rabbitmq,

Agenda

● History of OpenvSwitch in OpenStack ● OVN architecture overview● ML2/OVN vs ML2/OVS

○ Features○ Performance

● What’s next?

Page 3: integration for OpenStack · 2019-02-26 · oVirt OpenStack Resources/ Complexity C services/ single C agent, OVSDB protocol, smaller footprint. Multiple python agents, rabbitmq,

History of OpenvSwitch in OpenStack

2016

Mitaka Release

OpenvSwitch was leveraged by introducing OVS Firewall. OVS 2.5+ and Kernel 4.3+.

2016

Newton Release

First Release of networking-ovn. Replaced L2/ L3 neutron agents by native implementations. Still required Neutron DHCP and Metadata agents.

2010

Nova-network

Linux bridge networking.

2011

Diablo Release

Quantum Open vSwitch Plugin. Used OVS for L2 functionality.

Now

Native support for: DHCP v4/v6, internal DNS, Load Balancing. No Neutron agents/RPC. On its way to be the default networking backend in TripleO.

Page 4: integration for OpenStack · 2019-02-26 · oVirt OpenStack Resources/ Complexity C services/ single C agent, OVSDB protocol, smaller footprint. Multiple python agents, rabbitmq,

OVN Architecture overview

Page 5: integration for OpenStack · 2019-02-26 · oVirt OpenStack Resources/ Complexity C services/ single C agent, OVSDB protocol, smaller footprint. Multiple python agents, rabbitmq,

OVN Architecture

3. Hypervisors Generate Physical Flows

Neutron with networking-ovn

ovn-northd

HV-1

ovn-controller

OVS

HV-n

ovn-controller

OVS

HV-2

ovn-controller

OVS ...

2. ovn-northd Populates Southbound DB

1. A Cloud Management System(Openstack in this eg.) creates Logical network components via the OVN Northbound DB

OVNNorthbound DB

OVNSouthbound DB

Page 6: integration for OpenStack · 2019-02-26 · oVirt OpenStack Resources/ Complexity C services/ single C agent, OVSDB protocol, smaller footprint. Multiple python agents, rabbitmq,

ComparingML2/OVN and ML2/OVS

Page 7: integration for OpenStack · 2019-02-26 · oVirt OpenStack Resources/ Complexity C services/ single C agent, OVSDB protocol, smaller footprint. Multiple python agents, rabbitmq,

Comparing ML2/OVN and ML2/OVS (I)ML2/OVN ML2/OVS

NativeProductCompatibility

OpenStackKubernetesoVirt

OpenStack

Resources/Complexity

C services/single C agent,OVSDB protocol, smaller footprint.

Multiple python agents, rabbitmq, medium footprint

L3 OpenFlow based L3-agent / Linux kernel namespaces, routing and iptables

L3HA OpenFlow + BFD (Native)

L3-agent / Linux kernel namespaces + keepalived + VRRP over ha_xx network.

Page 8: integration for OpenStack · 2019-02-26 · oVirt OpenStack Resources/ Complexity C services/ single C agent, OVSDB protocol, smaller footprint. Multiple python agents, rabbitmq,

Comparing ML2/OVN and ML2/OVS (II)ML2/OVN ML2/OVS

L3DISTRIBUTED East/West

Always (except for VLAN tenant networks)

Only with DVR, many namespaces and hops (fip-, snat-, qrouter-).

L3DISTRIBUTEDNorth/South (FIP)

OpenFlow,SNAT traffic through the networker nodesNAT using OVS connection tracking

L3-agent / Linux kernel / many namespaces and hops (fip- snat-, qrouter-)SNAT through networker nodes

DHCP OpenFlow (controller action),Response from comp.local to the instances

Fully distributed HA on compute nodes.

Response from networkernodes

dhcp-agent / dnsmasq + qdhcp- namespaces

Page 9: integration for OpenStack · 2019-02-26 · oVirt OpenStack Resources/ Complexity C services/ single C agent, OVSDB protocol, smaller footprint. Multiple python agents, rabbitmq,

Comparing ML2/OVN and ML2/OVS (III)ML2/OVN ML2/OVS

ENCAP. Geneve, VLAN3 VXLAN, GRE, VLAN

Agents ovn-controller (C1 + N2)ovn-metadata-agent (C)

Neutron-l3-agent (C + N)Neutron-dhcp-agent (N)Neutron-metadata-agent (C + N)Neutron-openvswitch-agent (C + N)

IPv6 OpenFlowRA, RS, ND, NS handled locally in compute nodes

Neutron-l3-agent + radvd (N)

L4LoadBalancing

Octavia driver, handles distributed L4 Load Balancer in OpenFlow

No

Internal DNS OpenFlow Neutron-dhcp-agent + dnsmasq (N)

1-Compute 2- Networker 3-VLAN tenant networks support has some bugs on core-ovn that are being fixed at the time of writing this.

Page 10: integration for OpenStack · 2019-02-26 · oVirt OpenStack Resources/ Complexity C services/ single C agent, OVSDB protocol, smaller footprint. Multiple python agents, rabbitmq,

Performance: Controlplane

Page 11: integration for OpenStack · 2019-02-26 · oVirt OpenStack Resources/ Complexity C services/ single C agent, OVSDB protocol, smaller footprint. Multiple python agents, rabbitmq,

Performance: Dataplane

Page 12: integration for OpenStack · 2019-02-26 · oVirt OpenStack Resources/ Complexity C services/ single C agent, OVSDB protocol, smaller footprint. Multiple python agents, rabbitmq,

Performance: CPU utilizationML2/OVN

ML2/OVS

Page 13: integration for OpenStack · 2019-02-26 · oVirt OpenStack Resources/ Complexity C services/ single C agent, OVSDB protocol, smaller footprint. Multiple python agents, rabbitmq,

What’s next?

● ML2/OVS to ML2/OVN migration tool● ML2/OVS parity: QoS, SG logging, … ● Split OVN from OVS project for better agility and

independence● Adopt Raft OVSDB clustering (A/A)● Performance: Incremental processing for ovn-northd

and ovn-controller

Page 14: integration for OpenStack · 2019-02-26 · oVirt OpenStack Resources/ Complexity C services/ single C agent, OVSDB protocol, smaller footprint. Multiple python agents, rabbitmq,

Q&A