Time-Bound, Thread-Based Live Migration and Checkpointing of Virtual Machines


Source Code is available on github here.

Cloud service providers have been offering large scale Virtual Machine (VM) instances to serve users with high computing demands. Google Compute Engine, for examples, offers VMs with up to 8 CPU cores and 52 GB of memory in its “high-memory” instance type, targeting computation and memory intensive applications. In the clouds that offer such services, VM migration and checkpointing capabilities are important for efficient resource utilization and fault-resiliency. VM migration can be used to balance workloads among servers in a server pool, relocate VMs closer to data, or move VMs out of partially malfunction computers, etc.

Despite these advantages, inventing migration mechanism for large, memory intensive VMs is a challenging task. Mainstream hypervisors such as Vmware, KVM, Xen, Hyper-V implement pre-copy live migration mechanism that does not perform well on VM with large, memory-intensive workloads. In its default operational mode, the mechanism could take very long periods of time to finish. On the other hand, users can customize certain migration parameters before migration; however, determining right parameter values for different application workloads is not easy. These limitations prohibit the applications of VM migration on memory-intensive VMs in real practices.

In the past two year, we have designed and implemented a novel Time-bound, Thread-based VM live migration mechanism (TLM) based on the following design principles: (i) VM migration must complete within a time-bound, (ii) during the migration, computing resources must be appropriately allocated and utilized to make the migration mechanism meets the first principle, (iii) the migration mechanism should be live and produce short downtime, and (iv) users should be allowed to adapt VM computation to fine-tune live migration.


We have incorporated the TLM mechanism into qemu-kvm-1.0.0 and created two versions of debian packages below. We hope that these packages are helpful for your works. Please feel free to let us know if you have any question or suggestion. Note that papers and more documentation will be available soon. Thank you for your interests.

  1. Download: Source Code at Github
  2. Download: tlc-kvm_0.1.0-0ubuntu1_amd64.deb
    Requirements: ubuntu 12.04 desktop (64 bits)
  3. Download: tlc-kvm-server_0.1.1-0ubuntu1_amd64.deb
    Requirements: ubuntu 12.04 server (64 bits)
  4. Documentation: Getting Start with tlc-kvm (a new version is coming soon)
  5. Youtube Videos: installation, simple migration and experiments on NPB Class D benchmarks

Copyright 2013 Vasabilab. Kasidit Chanchio
Vasabilab, Department of Computer Science, Faculty of Science & Technology, Thammasat University.
Contact: kasiditchanchio@gmail.com