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/}}
     }