Migration is used to transfer a domain between physical hosts. There
are two varieties: regular and live migration. The former moves a
virtual machine from one host to another by pausing it, copying its
memory contents, and then resuming it on the destination. The latter
performs the same logical functionality but without needing to pause
the domain for the duration. In general when performing live migration
the domain continues its usual activities and--from the user's
perspective--the migration should be imperceptible.

To perform a live migration, both hosts must be running Xen / xend and
the destination host must have sufficient resources (e.g. memory
capacity) to accommodate the domain after the move. Furthermore we
currently require both source and destination machines to be on the same
L2 subnet.

Currently, there is no support for providing automatic remote
access
to filesystems stored on local disk when a domain is migrated.
Administrators should choose an appropriate storage solution (i.e. SAN,
NAS, etc.) to ensure that domain filesystems are also available
on their destination node. GNBD is a good method for exporting a
volume from one machine to another. iSCSI can do a similar job, but is
more complex to set up.

When a domain migrates, it's MAC and IP address move with it, thus it is
only possible to migrate VMs within the same layer-2 network and IP
subnet. If the destination node is on a different subnet, the
administrator would need to manually configure a suitable etherip or IP
tunnel in the domain 0 of the remote node.

A domain may be migrated using the xm migrate command. To live
migrate a domain to another machine, we would use the command:

# xm migrate --live mydomain destination.ournetwork.com

Without the -live flag, xend simply stops the domain and
copies the memory image over to the new node and restarts it. Since
domains can have large allocations this can be quite time consuming,
even on a Gigabit network. With the -live flag xend attempts
to keep the domain running while the migration is in progress, resulting
in typical down times of just 60-300ms.

For now it will be necessary to reconnect to the domain's console on the
new machine using the xm console command. If a migrated domain
has any open network connections then they will be preserved, so SSH
connections do not have this limitation.