Virtualization appears as a key solution to revolutionize the architecture of networks, such as the Internet. The growth and success of the Internet have eventually resulted in its ossification, in the sense that ubiquitous deployment of anything into this network is hardly possible, thus impeding innovations. This is exactly where virtualization comes as a solution, by adding a layer of abstraction between the actual hardware and the 'running' network. These virtual networks can be managed and configured flexibly and independently by different operators, thus creating a competitive environment for stim- ulating innovations. Being 'de-materialized' in such a way, networks can be deployed on demand, configured, started, paused, saved, deleted, etc., like a topology of programmable objects, each representing a virtual switch, router or link. The flexibility introduced into the network provides the operator with options for topology reconfiguration, besides al- lowing it to play with the software stacks and protocols. Achieving such a high degree of decoupling, that leads to disruptive changes, is one of the ultimate goals of network virtualization--envisioned as a key to the 'future' of the Internet--but it is still far from reality. Today, network virtualization has been realized in research testbeds, allowing re- searchers to experiment with routing, and interconnecting virtual computing nodes. The industry proposes virtual routers for network consolidation and saves in equipment cost. However, introducing virtualization in a production network such as those of the Internet raises several challenges, that have not yet been addressed. The additional layer interposed between the actual network hardware and the virtual networks is responsible for sharing the physical resources among the virtual networks. It potentially introduces performance overhead. In this manuscript, we concentrate on these issues, namely the performance and the sharing in virtualized networks. These are in particular relevant, when the network data- plane is virtualized, for maximum isolation and configurability in virtual networks. Then, we investigate the applications of virtualized networks, sharing the physical network at the data-plane level. In this context, the contributions presented in this manuscript can be summarized as follows. Analysis and evaluation of the impact of virtualization mechanisms on communication perfor- mance. In order to evaluate the impact of virtualization on the performance of a virtu- alized network, we analyze different technologies that allow to virtualize the data-plane, and we build a virtual router prototype using virtual machine techniques. The network performance of such a virtual router is evaluated in detail, using different software con- figurations [7] [9] [2]. The results show that the performance of the communication in virtual servers has improved over the last few years, to reach up to 100% throughput on 1 Gb/s network interfaces, thanks to optimizations in software. Hence, virtualization in software is a promising approach for experimentation, but for production networks such as the Internet, dedicated hardware is required, for reaching very high speeds (> 10 Gb/s). Virtualizing the switching fabric. We propose a virtualized switch architecture that allows flexible sharing of the hardware resources of a switch among several virtual switches [5]. This virtualized switch architecture enables users to set up virtual switches with a config- urable number of ports, dimensionable capacity per port and buffer sizes on top of the phys- ical switch. In addition, each virtual switch can have different packet-scheduling and queu- ing mechanisms. A virtual switch scheduler controls the sharing of the physical resources among the virtual switches and provides performance isolation. The proposed architecture is evaluated through simulations. This architecture has been patented [VxSwitch]. Isolating and programming virtual networks. When virtualized, the network resources are shared among different virtual networks. We propose a virtual network service for con- trolling the amount of resources that is conferred to each virtual network, and ensuring performance isolation. This service consists in interconnecting nodes by a virtual network composed of virtual routers and links. The routers can be configured so that each virtual network controls which paths its traffic uses. The virtual links can be dynamically provi- sioned with bandwidth. The underlying physical resources control that each virtual link provides the configured bandwidth, thus ensuring a guaranteed service level [1]. This ser- vice is implemented in two ways, first using software virtual routers and links [HIPerNet], and second creating virtual routers and links using OpenFlow switches. Evaluations show that either approach can provide bandwidth guarantees, as well as routing configuration functionality for each virtual network. Application of virtual networks. Finally, the virtual network service is applied to gener- alized virtual infrastructures, combining network and IT (Information Technology) vir- tualization. The users can request a virtual computing infrastructure, whose resources are interconnected through a controlled and isolated virtual network. This is a promising approach, e.g., for providing a network service in Clouds. We deploy such a service in the Grid'5000 testbed, and evaluate it using a large-scale distributed application [6]. The results show that the configuration of different service levels in the virtual network impacts directly on the application execution time [3] [12]. Hence, we validated the importance of control and isolation in virtual networks to provide predictable performance to Cloud applications.
Network virtualization: performance, sharing and applications