Pluribus Networks has a unique approach to Software Defined Networking that turns a network switch into a server and application platform. In this sponsored show, Sunay Tripathi deep dives into Netvisor and explains how it can fit into your network architecture.
Netvisor – the Pluribus Network Hypervisor
In the world of Linux and KVM, we are often asked about Netvisor and whether we really need another hypervisor. So let’s take a look at what Netvisor is:
- Netvisor is a bare metal distributed switch hypervisor
- Purpose built to support current generation of physical switches
- Support applications that can take advantage of running in-network
- Heavily incorporates open source kernel and software components from many open source projects
- Unique kernel code and C libraries – nvOS
- Unique features like multi-threaded vflow, analytics and cluster-fabric.
A bare Metal Distributed Switch Hypervisor
Netvisor is a best of the breed server OS that draws from multiple open source projects but also implements a very high performance, multi-threaded control plane over the physical switch chip. Coupled with its built-in cluster-fabric support, it allows hot plug of switch nodes to provide high availability, fabric wide switching, routing and flow tables that use the H/W tables as cache, and helps virtualize the network.
Purpose Built to run on Physical Switches
Unlike most network controllers that run on servers, Netvisor is explicitly designed to run bare metal on switch hardware memory mapped into the the Netvisor Kernel over PCIe. Fine grained decisions are made by reading and writing registers using simple PIO read/writes instead of sending control packets to external controllers. The new breed of switches today provide 1.2 to 1.8Tb of bandwidth with sub micro second latency. As network speeds in the data center are growing from 10Gbps to 40/100Gbps, Netvisor is designed to make sub micro second decisions that involve multiple switches allowing the entire network to work as a single resource pool that can be programmed and virtualized just like a server.
Support in-Network Applications
A large number of applications today want to run on the switch itself and take advantage of the fact that they have a programmable switch underneath them. Because these switches have Layer2/Layer3 tables and TCAMs that can be programmed, Netvisor provides fabric wide switching/routing tables and flows that use the hardware as cache and allows applications like virtual routers, virtual load balancers, virtual firewalls, IDS/DDOS engines, Orchestrations engines, Controllers, Analytics engines, auditing engines, SSL gateways etc to run on the switch itself without having any dependency on the underlying hardware and yet take advantage of hardware offload provided by Netvisor. The applications can be written in C, Java, Perl, Python and are binary compatible between different switch chips and platforms.
Heavily incorporates Open Source
Netvisor is a full Type I switch Hypervisor that allows users to boot any Linux distro to deploy their application and use switch and cluster-fabric APIs to control and program the network. Netvisor uses KVM and Openvswitch underneath along with the Quagga routing suite. The platform supports comes from BSD while it incorporates ZFS and Crossbow technologies from OpenSolaris. About 80% of Netvisor is built from Open source technologies.
nvOS – the kernel
The Netvisor kernel has everything a server kernel like Linux has along with additional support for Layer2/Layer3 switching in forms of fabric wide switching, routing and flow tables and multi-threaded C, Java APIs to program them. It also has protocol daemons and CLI that provide a full layer 2/3 switching experience.
Unique features like vflow, Analytics, and Cluster-fabric
While the switch side API are available for any application, Netvisor has bundled applications that tracks physical servers, Virtual machines running on the Servers connected to the switch, congestion analytics, application flows and ability to manipulate those flows across the cluster-fabric.