XHive: Efficient Cooperative Caching for Virtual Machines

Since a virtual machine independently uses its own caching policy, redundant disk operations exacerbate the I/O virtualization overhead when virtual machines access large amounts of data on shared storage. This paper presents XHive, an efficient cooperative caching system that is implemented at the virtualization layer, for consolidated environments. Our proposed scheme globally manages buffer caches of consolidated virtual machines in order to accommodate a shared working set in machine memory. A singlet, which is a block cached solely by a virtual machine, is preferentially given more chances to be cached in machine memory by XHive, when it is evicted by a guest operating system. For efficient use of limited memory, singlets are cached in memory that is collaboratively donated from idle memory of virtual machines. Our evaluation shows that XHive significantly reduces disk I/O operations for shared working sets, thereby achieving high read performance and scalability. Improved scalability enables a high degree of workload consolidation with respect to virtual machines that have shared working sets.

[1]  Steven Hand,et al.  Satori: Enlightened Page Sharing , 2009, USENIX Annual Technical Conference.

[2]  Stefan Götz,et al.  Unmodified Device Driver Reuse and Improved System Dependability via Virtual Machines , 2004, OSDI.

[3]  Yingwei Luo,et al.  Dynamic memory balancing for virtual machines , 2009, ACM SIGOPS Oper. Syst. Rev..

[4]  John H. Hartman,et al.  Efficient cooperative caching using hints , 1996, OSDI '96.

[5]  Scott Devine,et al.  Disco: running commodity operating systems on scalable multiprocessors , 1997, TOCS.

[6]  Mark D. Corner,et al.  Transparent Contribution of Memory , 2006, USENIX Annual Technical Conference, General Track.

[7]  Kai Shen,et al.  Virtual Machine Memory Access Tracing with Hypervisor Exclusive Cache , 2007, USENIX Annual Technical Conference.

[8]  Siddhartha Annapureddy,et al.  Shark: scaling file servers via cooperative caching , 2005, NSDI.

[9]  Alan L. Cox,et al.  Scheduling I/O in virtual machine monitors , 2008, VEE '08.

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

[11]  Heeseung Jo,et al.  Transparently bridging semantic gap in CPU management for virtualized environments , 2011, J. Parallel Distributed Comput..

[12]  Dutch T. Meyer,et al.  Parallax: virtual disks for virtual machines , 2008, Eurosys '08.

[13]  Jose Renato Santos,et al.  Bridging the Gap between Software and Hardware Techniques for I/O Virtualization , 2008, USENIX Annual Technical Conference.

[14]  Willy Zwaenepoel,et al.  Diagnosing performance overheads in the xen virtual machine environment , 2005, VEE '05.

[15]  Jeanna Neefe Matthews,et al.  Serverless network file systems , 1996, TOCS.

[16]  Marco Cesati,et al.  Understanding the Linux Kernel, Third Edition , 2005 .

[17]  Anthony Liguori,et al.  Experiences with Content Addressable Storage and Virtual Disks , 2008, Workshop on I/O Virtualization.

[18]  Daniel Pierre Bovet,et al.  Understanding the Linux Kernel , 2000 .

[19]  Jun Wang A light-weight, collaborative temporary file system for clustered Web servers , 2006, J. Parallel Distributed Comput..

[20]  Willy Zwaenepoel,et al.  TwinDrivers: semi-automatic derivation of fast and safe hypervisor network drivers from guest OS drivers , 2009, ASPLOS.

[21]  Tal Garfinkel,et al.  Virtualization Aware File Systems: Getting Beyond the Limitations of Virtual Disks , 2006, NSDI.

[22]  Michael Dahlin,et al.  Cooperative caching: using remote client memory to improve file system performance , 1994, OSDI '94.

[23]  Tao Yang,et al.  Cooperative caching of dynamic content on a distributed Web server , 1998, Proceedings. The Seventh International Symposium on High Performance Distributed Computing (Cat. No.98TB100244).

[24]  Chris Mason,et al.  Paravirtualized Paging , 2008, Workshop on I/O Virtualization.

[25]  Andrea C. Arpaci-Dusseau,et al.  Geiger: monitoring the buffer cache in a virtual machine environment , 2006, ASPLOS XII.

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

[27]  Heeseung Jo,et al.  Task-aware virtual machine scheduling for I/O performance. , 2009, VEE '09.

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

[29]  George Varghese,et al.  Difference engine , 2010, OSDI.

[30]  Michael Vrable,et al.  Scalability, fidelity, and containment in the potemkin virtual honeyfarm , 2005, SOSP '05.

[31]  Anand Sivasubramaniam,et al.  Xen and Co.: Communication-Aware CPU Management in Consolidated Xen-Based Hosting Platforms , 2009, IEEE Transactions on Computers.

[32]  Andrew Warfield,et al.  Safe Hardware Access with the Xen Virtual Machine Monitor , 2007 .

[33]  Arun Venkataramani,et al.  Black-box and Gray-box Strategies for Virtual Machine Migration , 2007, NSDI.

[34]  Nikolai Joukov,et al.  A nine year study of file system and storage benchmarking , 2008, TOS.