Open vSwitch
![]() | |
Initial release | July 29, 2009[1] |
---|---|
Stable release | |
Repository | |
Written in | C |
Operating system | Linux, FreeBSD |
Type | Virtual switch |
License | Apache License 2.0 |
Website | openvswitch |
Open vSwitch, sometimes abbreviated to OVS, is a production-quality open-source implementation of a distributed virtual multilayer switch. The main purpose of Open vSwitch is to provide a switching stack for hardware virtualization environments, while supporting multiple protocols and standards used in computer networks.[4]
Project's source code is distributed under the terms of the Apache License 2.0.
Overview
![](http://upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Distributed_Open_vSwitch_instance.svg/420px-Distributed_Open_vSwitch_instance.svg.png)
As a software implementation of a virtual multilayer network switch, Open vSwitch is designed to enable effective network automation through programmatic extensions, while supporting standard management interfaces and protocols, including NetFlow, sFlow, SPAN, RSPAN, CLI, LACP and 802.1ag. In addition, Open vSwitch is designed to support transparent distribution across multiple physical servers by enabling creation of cross-server switches in a way that abstracts out the underlying server architecture, similarly to the VMware vNetwork distributed vswitch or Cisco Nexus 1000V.[5][6][7]
Open vSwitch can operate both as a software-based switch running within the virtual machine (VM) hypervisors, and as the control stack for dedicated switching hardware; as a result, it has been ported to multiple virtualization platforms and switching chipsets. Open vSwitch is the default switch in XenServer since its version 6.0,[8] and in the Xen Cloud Platform (via its XAPI management toolstack);[9] it also supports Xen, Linux KVM, Proxmox VE and VirtualBox. Open vSwitch has also been integrated into various cloud computing software platforms and virtualization management systems, including OpenStack, openQRM, OpenNebula and oVirt.[5][6]
Linux kernel's implementation of Open vSwitch was merged into the Linux kernel mainline in kernel version 3.3, which was released on March 18, 2012;[10][11] official Linux packages are available for Debian, Fedora and Ubuntu.[5] As of January 2014[update], FreeBSD and NetBSD implementations are also available, with the NetBSD's implementation operating completely in userspace.[12][13]
The majority of the Open vSwitch source code is written in platform-independent C language, which provides easy portability to various environments. The source code is licensed under the Apache License 2.0.[5]
The market success of Open vSwitch depends not just on its ease of programmability, but OVS needs to be fast and efficent. The standard version's performance shortcomings, such as high overhead, need to be resolved to significantly improve throughput - and do so by the efficient use of computing resources and without compromising performance predictability.[14] With the advent of Network Functions Virtualization (NFV) there have been a number of initiatives to accelerate OVS performance. Improvements have been reported of 10 to 20 times for both OVS and Accelerated vSwitch (AVS) versions over the standard OVS configuration.[15][16]
Features
As of November 2013[update], Open vSwitch provides the following features:[17][18]
- Exposed communication between virtual machines, via NetFlow, sFlow, IPFIX, SPAN, RSPAN, and mirrors tunneled via Generic Routing Encapsulation (GRE)
- Link aggregation through the Link Aggregation Control Protocol (LACP, IEEE 802.1AX-2008)
- Standard 802.1Q Virtual LAN (VLAN) model for network partitioning, with support for trunking
- Support for the Bidirectional Forwarding Detection (BFD) and 802.1ag link monitoring
- Support for the Spanning Tree Protocol (STP, IEEE 802.1D-1998)
- Fine-grained quality of service (QoS) control for different applications, users, or data flows
- Support for the Hierarchical fair-service curve (HFSC) queuing discipline (qdisc)
- Traffic policing at the level of virtual machine interface
- Network interface controller (NIC) bonding, with load balancing by source MAC addresses, active backups, and layer 4 hashing
- Support for the OpenFlow protocol, including various virtualization-related extensions
- Complete IPv6 (Internet Protocol version 6) support
- Support for multiple tunneling protocols: GRE, Virtual Extensible LAN (VXLAN), Internet Protocol Security (IPsec), GRE, and VXLAN over IPsec
- Remote configuration protocol, with existing bindings for the C and Python programming languages
- Implementation of the packet forwarding engine in kernel space or user space, allowing additional flexibility
- Multi-table forwarding pipeline with a flow-caching engine
- Forwarding layer abstraction, making it easier to port Open vSwitch to new software and hardware platforms
See also
- Distributed Overlay Virtual Ethernet (DOVE)
- LAN switching
- Overlay transport virtualization (OTV)
- Software-defined networking (SDN)
References
- ^ "A complete list of Open vSwitch releases". openvswitch.org. Retrieved April 2, 2014.
- ^ Justin Pettit (December 3, 2014). "[ovs-announce] Open vSwitch 2.3.1 Available". openvswitch.org. Retrieved January 22, 2015.
- ^ "NEWS file for Open vSwitch 2.3.1". openvswitch.org. December 4, 2014. Retrieved January 22, 2015.
- ^ a b M. Tim Jones (October 27, 2010). "Virtual networking in Linux". IBM. Retrieved April 9, 2014.
- ^ a b c d "Open vSwitch: An Open Virtual Switch". openvswitch.org. Retrieved November 24, 2013.
- ^ a b Thomas Graf (April 24, 2013). "Underneath OpenStack Quantum: Software Defined Networking with Open vSwitch" (PDF). Red Hat. Retrieved April 9, 2014.
- ^ Ralf Spenneberg. "Virtual switching with Open vSwitch". admin-magazine.com. Retrieved April 2, 2014.
- ^ "XenServer 6.0 Release Notes". Citrix Systems. March 8, 2012. Retrieved January 22, 2015.
- ^ "XAPI: Open source software to build private and public clouds". xenproject.org. 2013. Retrieved January 22, 2015.
- ^ "Linux kernel 3.3, Section 1.3. Open vSwitch". kernelnewbies.org. March 18, 2012. Retrieved April 2, 2014.
- ^ Jonathan Corbet (November 30, 2011). "Routing Open vSwitch into the mainline". LWN.net. Retrieved April 2, 2014.
- ^ "FreshPorts – net/openvswitch". freshports.org. December 30, 2013. Retrieved April 2, 2014.
- ^ "openvswitch/ovs: ovs/INSTALL.NetBSD at master". github.com. January 11, 2014. Retrieved April 9, 2014.
- ^ 'Accelerating Open vSwitch to "Ludicruos Speed", Network Heresy: Tales of the network reformation, Justin D Pettit, November 13, 2014
- ^ 'Wind River Delivers Breakthrough Performance for Accelerated vSwitch Optimized for NFV' Wind River News Room, May, 2014
- ^ '6WIND Announces Open vSwitch Acceleration for Red Hat Enterprise Linux OpenStack Platform', PRweb, April, 2014
- ^ "Open vSwitch: Features". openvswitch.org. Retrieved November 24, 2013.
- ^ Jesse Gross (September 2013). "Programmable Networking with Open vSwitch" (PDF). linuxfoundation.org. LinuxCon. Retrieved November 24, 2013.
External links
![](http://upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/30px-Commons-logo.svg.png)
- Official website
- Open vSwitch source code on GitHub
- Introduction to Open vSwitch on YouTube, December 15, 2013
- Open vSwitch: Deep Dive The Virtual Switch for OpenStack on YouTube, November 8, 2013
- Going With the Flow: Google's Secret Switch to the Next Wave of Networking, Wired, April 17, 2012, by Steven Levy
- OVN, Bringing Native Virtual Networking to OVS, January 13, 2015, by Justin Pettit, Ben Pfaff, Chris Wright and Madhu Venugopal
- Open Virtual Network (OVN) Proposed Architecture, January 13, 2015, by Ben Pfaff