In the context of virtualization, where a guest simulation of an entire computer is actually merely a software virtual machine (VM) running on a host computer under a hypervisor, migration (also known as teleportation,[1] also known as live migration) is the process by which a running virtual machine is moved from one physical host to another, with little or no disruption in service.
Ideally, the process is completely transparent, resulting in no disruption of service (or downtime). In practice, there is always some minor pause in availability, though it may be low enough that only hard real-time systems are affected. Virtualization is far more frequently used with network services and user applications, and these can generally tolerate the brief delays which may be involved. The perceived impact, if any, is similar to a longer-than-usual kernel delay.
The actual process is heavily dependent on the particular virtualization package in use, but in general, the process is as follows:
Note that in practice, regular maintenance operations are required to "merge down" the snapshot stack into a more manageable number of files, to improve performance and optimize storage (redundant overwrites are merged out).
Migration is similar to the failover capability some virtualization suites provide. In true failover, the host may have suddenly completely failed, which precludes the latest state of the VM having been copied to the backup host. However, the backup host has everything except for the very latest changes, and may indeed be able to resume operation from its last known coherent state.
Because the operations are so similar, systems that provide one capability may provide the other.