Live migration refers to the process of moving a running virtual machine or application between different physical machines without disconnecting the client or application. Memory, storage, and network connectivity of the virtual machine are transferred from the original host machine to the destination.
VM memory migration
Two techniques for moving the virtual machine's memory state from the source to the destination are pre-copy memory migration and post-copy memory migration.
Pre-copy memory migration
In pre-copy memory migration, the Hypervisor typically copies all the memory pages from source to destination while the VM is still running on the source. If some memory pages change (become 'dirty') during this process, they will be re-copied until the rate of re-copied pages is not less than page dirtying rate.
After the warm-up phase, the VM will be stopped on the original host, the remaining dirty pages will be copied to the destination, and the VM will be resumed on the destination host. The time between stopping the VM on the original host and resuming it on destination is called "down-time", and ranges from a few milliseconds to seconds according to the size of memory and applications running on the VM. There are some techniques to reduce live migration down-time, such as using probability density function of memory change.
Post-copy memory migration
Post-copy VM migration is initiated by suspending the VM at the source. With the VM suspended, a minimal subset of the execution state of the VM (CPU registers and non-pageable memory) is transferred to the target. The VM is then resumed at the target, even though most of the memory state of the VM still resides at the source. At the target, when the VM tries to access pages that have not yet been transferred, it generates page-faults. These faults are trapped at the target and redirected towards the source over the network. Such faults are referred to as network faults. The source host responds to the network-fault by sending the faulted page. Since each page fault of the running VM is redirected towards the source, this technique can degrade performance of applications running inside the VM. However, pure demand-paging accompanied with techniques such as pre-paging can reduce this impact by a great extent.
Seamless live migration
When down-time of a VM during a live migration is not noticeable by the end user, it is called a seamless live migration.
VM managers with live migration support
- Parallels Cloud Server
- Workload Partitions
- Integrity Virtual Machines
- Oracle VM
- Oracle VM for Sparc
- POWER Hypervisor (PHYP)
- VMware ESX
- IBM VPAR with special migrator
- Hyper-V Server 2008 R2
Systems providing software live migration
- HOWTO Article about Xen migration
- OpenVZ checkpointing and live migration
- Live migration in KVM
- VMware VMotion
- Microsoft: Step by Step Guide for live migration
- Microsoft Whitepaper: Live Migration Overview & Architecture
- Hacking, Stuart, et al., Improving the live migration process of large enterprise applications, VTDC'09.
- Clark, Christopher; et al. "Live migration of virtual machines". NSDI'05. CiteSeerX: 10.1.1.138.4067.
- Farrahi Moghaddam, Fereydoun, et al., Decreasing live virtual machine migration down-time using a memory page selection based on memory change PDF, ICNSC'10.
- Hines, et al, Post-copy live migration of virtual machines