Fast networking with socket-outsourcing in hosted virtual machine environments

This paper proposes a novel method of achieving fast networking in hosted virtual machine (VM) environments. This method, called socket-outsourcing, replaces the socket layer in a guest operating system (OS) with the socket layer of the host OS. Socket-outsourcing increases network performance by eliminating duplicate message copying in both the host OS and the guest OS. Furthermore, socket-outsourcing significantly enhances inter-VM communication within the same host OS since it enables network packets to bypass the protocol stack in guest OSes. Socket-outsourcing was implemented in two representative operating systems (Linux and NetBSD) and on two virtual machine monitors (Linux KVM and PansyVM). These virtual machine monitors provided support for socket-outsourcing through shard memory, event queues, and VM-specific Remote Procedure Call between a guest OS and a host OS. The experimental results revealed that a guest OS outsourcing the socket layer achieved the same network throughput as a native OS using up to four Gigabit Ethernet links. Moreover, the benchmark results obtained from an N-tier Web application that generated a significant amount of inter-VM communication indicated that socket-outsourcing improved performance by up to 45 percent compared with conventional hosted VM environments.

[1]  Robert P. Goldberg,et al.  Survey of virtual machine research , 1974, Computer.

[2]  K. Kant,et al.  TCP offload performance for front-end servers , 2003, GLOBECOM '03. IEEE Global Telecommunications Conference (IEEE Cat. No.03CH37489).

[3]  Erich M. Nahum,et al.  Server Network Scalability and TCP Offload , 2005, USENIX Annual Technical Conference, General Track.

[4]  Jeff Dike,et al.  A user-mode port of the Linux kernel , 2000, Annual Linux Showcase & Conference.

[5]  Yasushi Shinjo,et al.  Running BSD Kernels as User Processes by Partial Emulation and Rewriting of Machine Instructions , 2003, BSDCon.

[6]  Xiaolan Zhang,et al.  XenSocket: A High-Throughput Interdomain Transport for Virtual Machines , 2007, Middleware.

[7]  Rusty Russell,et al.  virtio: towards a de-facto standard for virtual I/O devices , 2008, OPSR.

[8]  Greg J. Regnier,et al.  TCP onloading for data center servers , 2004, Computer.

[9]  Jian Wang,et al.  XenLoop: a transparent high performance inter-VM network loopback , 2008, HPDC '08.

[10]  Cynthia E. Irvine,et al.  Analysis of the Intel Pentium's Ability to Support a Secure Virtual Machine Monitor , 2000, USENIX Security Symposium.

[11]  Andrew Warfield,et al.  Xen and the art of virtualization , 2003, SOSP '03.

[12]  Samuel J. Leffler,et al.  The design and implementation of the 4.3 BSD Unix operating system , 1991, Addison-Wesley series in computer science.

[13]  Keith Bostic,et al.  The design and implementa-tion of the 4.4BSD operating system , 1996 .

[14]  Alan L. Cox,et al.  Optimizing network virtualization in Xen , 2006 .

[15]  Carl A. Waldspurger,et al.  Memory resource management in VMware ESX server , 2002, OSDI '02.

[16]  Liviu Iftode,et al.  TCP Servers: Offloading TCP Processing in Internet Servers. Design, Implementation, and Performance , 2002 .

[17]  Tal Garfinkel,et al.  Virtual machine monitors: current technology and future trends , 2005, Computer.

[18]  Matthew Wilcox,et al.  Cooperative Linux , 2004 .

[19]  Willy Zwaenepoel,et al.  Performance and scalability of EJB applications , 2002, OOPSLA '02.

[20]  Alan L. Cox,et al.  Optimizing Network Virtualization in Xen (awarded best paper) , 2006, USENIX Annual Technical Conference, General Track.

[21]  Beng-Hong Lim,et al.  Virtualizing I/O Devices on VMware Workstation's Hosted Virtual Machine Monitor , 2001, USENIX Annual Technical Conference, General Track.

[22]  A. Kivity,et al.  kvm : the Linux Virtual Machine Monitor , 2007 .

[23]  Jin-Soo Kim,et al.  Inter-domain socket communications supporting high performance and full binary compatibility on Xen , 2008, VEE '08.

[24]  Calton Pu,et al.  Efficient Packet Processing in User-Level OSes: A Study of UML , 2006, Proceedings. 2006 31st IEEE Conference on Local Computer Networks.

[25]  Steven G. Johnson,et al.  The Design and Implementation of FFTW3 , 2005, Proceedings of the IEEE.

[26]  Samuel T. King,et al.  Operating System Support for Virtual Machines , 2003, USENIX Annual Technical Conference, General Track.

[27]  Fabrice Bellard,et al.  QEMU, a Fast and Portable Dynamic Translator , 2005, USENIX ATC, FREENIX Track.