Software:Live migration
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 guest machine to the destination.[1]
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
Warm-up phase
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 greater than the page dirtying rate.[2]
Stop-and-copy phase
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.[3] 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.[4]
Post-copy memory migration
Post-copy[5] 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 state, registers and, optionally, non-pageable memory) is transferred to the target. The VM is then resumed at the target. Concurrently, the source actively pushes the remaining memory pages of the VM to the target - an activity known as pre-paging. At the target, if the VM tries to access a page that has not yet been transferred, it generates a page-fault. These faults, known as network faults, are trapped at the target and redirected to the source, which responds with the faulted page. Too many network faults can degrade performance of applications running inside the VM. Hence pre-paging can dynamically adapt the page transmission order to network faults by actively pushing pages in the vicinity of the last fault. An ideal pre-paging scheme would mask large majority of network faults, although its performance depends upon the memory access pattern of the VM's workload. Post-copy sends each page exactly once over the network. In contrast, pre-copy can transfer the same page multiple times if the page is dirtied repeatedly at the source during migration. On the other hand, pre-copy retains an up-to-date state of the VM at the source during migration, whereas with post-copy, the VM's state is distributed over both source and destination. If the destination fails during migration, pre-copy can recover the VM, whereas post-copy cannot.
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. Seamless live migration is dependent on a dynamic interface framework,[6] subjecting the process to delayed sequence encryption protocols.[7]
VM managers with live migration support
- Virtuozzo
- Xen since version 2.0, 2004 for PV guests; since version 3.1, May 18, 2007 for HVM guests [8]
- OpenVZ
- Parallels Cloud Server
- Workload Partitions
- Integrity Virtual Machines
- KVM[1][9][10] since February 2007,[11] with different techniques.[12]
- Oracle VM Server for x86
- Oracle VM Server for SPARC
- OVirt
- Red Hat Virtualisation
- POWER Hypervisor (PHYP)
- VMware ESXi
- IBM Live Partition Mobility, since 2007
- Hyper-V Server 2008 R2[13]
- VirtualBox
- Proxmox Virtual Environment[14]
Cloud Platforms with live migration support
Systems providing software live migration
See also
- Virtual machine
- Self-migration
- Comparison of platform virtualization software
- CRIU
References
- ↑ 1.0 1.1 Alexey Lesovsky (November 2013). Getting Started with oVirt 3.3. ISBN 9781783280070.
- ↑ Hacking, Stuart, et al., Improving the live migration process of large enterprise applications, VTDC'09.
- ↑ Clark, Christopher. "Live migration of virtual machines". NSDI'05.
- ↑ 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
- ↑ Travostino (2006). "Seamless live migration of virtual machines over the MAN/WAN". Future Generation Computer Systems 22 (8): 901–907. doi:10.1016/j.future.2006.03.007.
- ↑ Aiash (2014). "Secure live virtual machines migration: issues and solutions". 28th International Conference on Advanced Information Networking and Applications Workshops: 160–165.
- ↑ "Xen project Mailing List". http://lists.xenproject.org/archives/html/xen-announce/2007-05/msg00002.html.
- ↑ "Migration - KVM". https://www.linux-kvm.org/page/Migration.
- ↑ "Chapter 4. KVM Live Migration Red Hat Enterprise Linux 6". https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/virtualization_administration_guide/chap-virtualization_administration_guide-kvm_live_migration.
- ↑ "KVM-15 release [LWN.net]". https://lwn.net/Articles/223754/.
- ↑ "Daniel P. Berrangé » Blog Archive » Analysis of techniques for ensuring migration completion with KVM". https://www.berrange.com/posts/2016/05/12/analysis-of-techniques-for-ensuring-migration-completion-with-kvm/.
- ↑ Windows Server 2012 Unleashed. Sams. 2012-09-16. ISBN 978-0-672-33622-5.
- ↑ "Qemu/KVM Virtual Machines - Proxmox VE". https://pve.proxmox.com/wiki/Qemu/KVM_Virtual_Machines#qm_migration.
External links
- 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