Introduction to OVN and Red Hat Virtualization

Hi Folks, recently my friend and colleague, Tony James prepared and delivered an excellent webinar internally at Red Hat on how to configure Open Virtual Networking (OVN) in Red Hat Virtualization. For those of you that are unfamiliar with OVN, or what it offers, allow me to provide you with the proper illumination.

Background

Way back in the dark ages, the only way that mere mortals could get encapsulation, segmentation, and other benefits of SDN in RHV was via third party integration. Or if there was an OpenStack deployment that could be tapped into via the RHV Neutron integration. Recently though, native SDN (via OVN) is in Tech Preview in RHV 4.1, and I’m going to spend the next few posts going over the basics.

NOTE – Tech Preview is Red Hat’s way of providing the software bits for folks to try out, but there is no support for software in Tech Preview. The official statement is here. In short, the more interest and bugs filed against Tech Preview, the sooner it gets put in production.

The current fully supported virtual networking in RHV is built around “Linux Bridging”. It’s solid and it’s simple. That is to say that it’s easy to deploy, manage, and troubleshoot. However, it leaves a bit to be desired when things like segmentation, encapsulation, granular security, and self-service for networks are required. And Linux Bridging only covers layer 2 (L2) networking.

In contrast, OVN adds native OVS support for virtual layer 2 (L2) and layer 3 (L3) overlays and it also offers an API for external network providers. For anyone that needs the flexibility of “cloud” in regards to the networking, but finds the delivery of traditional virtualization fits their needs, this is fantastic news.

So what are the components and how do we deploy it? I’ll aim to explain it in this article and how to deploy it in future posts. I’ll post some links in each of the articles for more in depth information (my sources!).

Major Components

Host Side

The oVirt OVN driver is the Virtual Interface Driver deployed on each of the RHV and/or RHEL hosts. This driver handles the wiring (connection) of any VM NICs to OVN networking. The driver also allows VDSM, libvirt, and OVN to interact properly whenever a NIC is connected in such a way that the VM NIC is added to an appropriate OVN Logical Switch and the appropriate OVN overlays on all the hosts in the oVirt environment. (From the upstream documentation.)

Manager Side

The oVirt OVN provider is a proxy that RHV Manager (Engine) uses to interact with OVN. It is installed on the host where OVN central is installed. It can be installed on the RHV Manager (Engine) or on a separate host. (From the upstream documentation.)

RHV Manager “External Provider”

This isn’t so much a component, but it is the framework for integrating with the RHV UI. The OVN integration is no different. Once the packages and services are deployed, installed, and configured on the manager and hosts, OVN can be added by way of the External Provider. vNICs are attached at the time of NIC provisioning.

There are some additional components that are easier to describe by way of a diagram. I’ve included the diagram below, with the explanation and mapped the services back to the components above.

Wrap up

In the next article, I’ll include a video of my friend Tony deploying OVN on RHV with Ansible; we’ll also share his Ansible playbook.

I hope this helps your understanding of OVN and RHV. If you want more in depth information, I encourage you to visit the following sites:

The OVN Product Page (Upstream) – https://www.ovirt.org/blog/2016/11/ovirt-provider-ovn/

OVN Architecture Page (Upstream) – http://openvswitch.org/support/dist-docs/ovn-architecture.7.html

Hope this helps,

Captain KVM

Agree? Disagree? Something to add to the conversation?