Home | deutsch  | Legals | KIT

Deduplicating Virtual Machine Checkpoints for Distributed System Simulation

Deduplicating Virtual Machine Checkpoints for Distributed System Simulation
Type:Bachelor Thesis
Date:02.11.2013
Supervisor:

Prof. Dr. Frank Bellosa, Marc Rittinghaus

Graduand:Nikolai Baudis
Links:PDF

Abstract:

Full system simulation suffers – due to its increased complexity – from a much lower execution speed than hardware-accelerated virtualization, resulting in a slowdown of over 1000. To close this performance gap, SimuBoost aims at increasing full system simulation's execution speed by performing parallelized distributed simulations, which are started using checkpoints from a hardware-accelerated virtualization. To reach an optimal degree of parallelization, checkpoints have to be taken at an interval of 1–2 s, which minimzes the overhead of the checkpointing.

In this thesis, a checkpointing mechanism that meets the requirements for SimuBoost – minimized data amount and downtime – is proposed. To meet these requirements, the checkpointing mechanism performs incremental checkpointing of virtualized systems in QEMU and deduplicates both memory and block device data via a hash-based cache. The checkpoints are saved in a NoSQL database for a simplified distribution.

The evaluation shows that the hash-based cache greatly decreases the data amount, especially by reusing data that was already checkpointed in the past: Up to 42 % of memory pages can be saved through deduplication. However, the evaluation also shows that the overhead caused by database queries is too high and that it is responsible for 40–60 % of the total downtime. Therefore, this approach needs to be optimized by combining it with CoW to reach a suitable downtime.

BibTex:

@mastersthesis{baudis13vmcheckpoints,
 author = {Nikolai Baudis},
 title = {Deduplicating Virtual Machine Checkpoints for Distributed System Simulation},
 type = {Bachelor Thesis},
 school = {System Architecture Group, Karlsruhe Institute of Technology (KIT), Germany},
 month = nov # "2",
 year = 2013,
 note = {\url{http://os.ibds.kit.edu/}}
 }