VMCSnap: Taking Snapshots of Virtual Machine Cluster with Memory Deduplication

Virtualization is one of the main technologies currently used to deploy computing systems due to the high reliability and rapid crash recovery it offers in comparison to physical nodes. These features are mainly achieved by continuously producing snapshots of the status of running virtual machines. In earlier works, the snapshot of each individual VM is performed independently, ignoring the memory similarities between VMs within the cluster. When the size of the virtual cluster becomes larger or snapshots are frequently taken, the size of snapshots can be extremely large, consuming large amount of storage space. In this paper, we introduce an innovative snapshot approach for virtual cluster that exploits shared memory pages among all the component VMs to reduce the size of produced snapshot and mitigate the I/O bottleneck. The duplicate memory pages are effectively discovered and stored only once when the snapshot is taken. In addition, our approach can be not only applied to the stop-copy snapshot but also to the pre-copy mechanism as well. Experiments on both snapshot methods are conducted and the result shows our method can reduce the total memory snapshot files by an average of 30% and reach 63% reduction of the snapshot time compared with the default KVM approach with little overhead of rollback time.

[1]  James E. Smith,et al.  The architecture of virtual machines , 2005, Computer.

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

[3]  Prashant J. Shenoy,et al.  An Empirical Study of Memory Sharing in Virtual Machines , 2012, USENIX Annual Technical Conference.

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

[5]  Dutch T. Meyer,et al.  Remus: High Availability via Asynchronous Virtual Machine Replication. (Best Paper) , 2008, NSDI.

[6]  Jie Xu,et al.  Internet-based Virtual Computing Environment: Beyond the data center as a computer , 2013, Future Gener. Comput. Syst..

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

[8]  Patrick Th. Eugster,et al.  VNsnap: Taking snapshots of virtual networked environments with minimal downtime , 2009, 2009 IEEE/IFIP International Conference on Dependable Systems & Networks.

[9]  Yunkai Zhang,et al.  CloudAP: Improving the QoS of Mobile Applications with Efficient VM Migration , 2013, 2013 IEEE 10th International Conference on High Performance Computing and Communications & 2013 IEEE International Conference on Embedded and Ubiquitous Computing.

[10]  Yingwei Luo,et al.  Efficient LRU-Based Working Set Size Tracking , 2011 .

[11]  Jianxin Li,et al.  HotSnap: A Hot Distributed Snapshot System For Virtual Machine Cluster , 2013, LISA.

[12]  Jaejin Lee,et al.  Fast and space-efficient virtual machine checkpointing , 2011, VEE '11.

[13]  Jie Xu,et al.  An Analysis of Performance Interference Effects on Energy-Efficiency of Virtualized Cloud Environments , 2013, 2013 IEEE 5th International Conference on Cloud Computing Technology and Science.

[14]  Mike Hibler,et al.  Transparent checkpoints of closed distributed systems in Emulab , 2009, EuroSys '09.

[15]  Srinidhi Varadarajan,et al.  DejaVu: transparent user-level checkpointing, migration and recovery for distributed systems , 2006, SC.

[16]  Mahadev Satyanarayanan,et al.  Scale and performance in a distributed file system , 1987, SOSP '87.