The previous article discussed the OVN Plug-in architecture in OpenStack, and this article will compare the main differences between using OVN and OVS in OpenStack Neutron.
network topology
The official FAQ's table can clearly illustrate the architectural differences between OVN and OVS.
| Project | ml2/ovs | ml2/networking-ovn |
|---|---|---|
| communication between agent/server | RabbitMQ message + RPC | ovsdb protocol between NorthBound and SouthBound databases |
| l3HA API | HA field in router can be configured during deployment to enable or disable l3HA | HA feature automatically enabled when multiple network nodes exist |
| DVR API | distributed configuration that can only be modified by admin | no configurable distributed setting; default is distributed |
| DVR dataplane | Uses namespaces, veths, IP routing, IP rules, and iptables on compute nodes | Uses OpenFlow rules on compute nodes |
| East-West traffic | Will pass through network nodes under the condition of openvswitch DVR | Transmitted directly between compute nodes under all conditions |
| Metadata Service | Metadata service provided via qrouters or dhcp namespaces on network nodes | Metadata is provided by ovnmeta-xxxxx-xxxx-namespace on each individual compute node |
| DHCP Service | Provided via qdhcp-xxxxx-xxx namespaces using dnsmasq | DHCP provided by ovn-controller and OpenFlow, and is distributed across each compute node |
| Trunk Ports | Trunk ports provided by creating br-trunk-xxx bridges and patch ports | Trunk ports established via OpenFlow rules on br-int, and the connected port will be directly attached to br-int |
It's evident that OVN has thoroughly considered HA functionality during design and has already built it into the overall architecture. In deployment scenarios, there's no need to separately consider high availability architecture.
performance
We can explore A presentation at OpenStack Summit Bostona brief performance comparison between OVN and OVS.
Looking at VM creation speed from Nova, OVN shows over 70% improvement compared to OVS:
| ML2/OVS (seconds) | OVN (seconds) | Improvement | |
|---|---|---|---|
| Average | 80.7 | 23.4 | 70.9% |
| 95% | 163.2 | 35.3 | 78.4% |
| Maximum | 211.9 | 48.7 | 78.4% |
| Minimum | 18.7 | 3.8 | 79.8% |
The performance boost in the control plane is quite significant.This articleThere are more related tests.
also has people conducting related research on the dataplaneTestthough the differences aren't very large, the main advantage lies in the high availability brought by the distributed architecture.
Summary
In this article, we've compared OVN and OVS from architectural and real-world performance perspectives. We believe readers will now better understand OVN's advantages, as well as why major OpenStack vendors like Red Hat are currently promoting OVN as the default Neutron plug-in. After reading these several Neutron introduction articles, readers should have a deeper understanding of OpenStack networking. In the next article, we plan to introduce Glance, one of the core components in OpenStack, which may not be immediately obvious but is equally critical.
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.