Abhinand Jha

Live VM Migration

Reference papers:

[1] Live Migration of Virtual Machines

Summary

Clark et al. propose an approach to migrating live VMs across different instances with minimal degradation of the quality of service and downtime. Live migration is particularly helpful for load re-balancing, fault management and server maintenance. The authors first describe the traditional approaches to live migration including stop-and-copy, demand- copy, pre-copy and other hybrid methods. The authors adopt pre-copy as their approach because of its efficiency. The authors describe the various design considerations in their approach and provide solutions to migrating storage (NAS) and network connections between instances with minimal downtime. The main idea of their approach is to iteratively pre-copy the VM’s page tables onto another VM without stopping it. Once majority of the pages have been migrated, the VM is brought to a complete stop and the final transfer of state is initiated. This approach of iterative copying results in very minimal downtime during migration. Finally, the authors extensively study the performance of their live migration approach on various benchmarks involving static load web-servers, dynamic content generating servers and also interactive gaming servers. Some optimizations discussed by the authors for their approach include adaptive rate-limiting, freeing page cache pages and other paravirtualization optimization. The evaluation results on several benchmarks showed the applicability of the author’s live migration approach.

Positive Points

Drawbacks

Research Questions

  1. What fault-tolerance and recovery mechanisms can be adopted during live migration?
  2. Can we utilize live migration to dynamically load-balance applications? – maybe a controller can monitor the state of the cluster and migrate heavily loaded VMs to other machines where load is less.
  3. How can this approach of live migration be adopted to migrate instances over the WAN?

<< Previous Post

|

Next Post >>

#Computer Science #System Design #Distributed Systems #Backend #File Systems #Software Engineering #Storage