I am trying to work out what all the options are for migrating a KVM
machine to another KVM machine, without using shared storage. The
documentation is not quite verbose and not intuitive, so I'm hoping
someone can explain this to me. The man pages show this syntax:
migrate optional --live --p2p --direct --tunnelled --persistent
--undefinesource --suspend --copy-storage-all --copy-storage-inc
domain-id desturi migrateuri dname
The 'live' and 'suspend' options are clear. The 'undefinesource'
option
is straightforward as well.
But what does 'persistent' mean? I mean, when transferring a VM to a
destination, it will be available on the destination when migration
completes, so what does 'persistent' mean in this context?
The p2p, direct and tunneled options are not. When migrating, I assume
it is possible to let the underlying virtualisation framework handle the
migration - so I assume 'direct' means Qemu-KVM gets to migrate the VM
and 'tunneled' means the RPC mechanism of libvirt migrates the machine.
But what does 'p2p' mean? Normally, peer-to-peer implies direct
communication, but since there is a 'direct' mode, I'm clueless what
this option does.
On a side note: is it possible to use tunneled mode to transfer VMs from
for example Xen to KVM?
Then I have some questions about the non-shared storage migration. I
really like this option as most of my virtualized servers are run on one
or two physical systems without shared VM storage. Migrating those VMs
without downtime would be awesome.
If I migrate the VMs, I assume the storage of the VM is places in the
libvirt default storage location. But what is the difference between
'copy-storage-all' and 'copy-storage-inc'? Incremental hints that it
would save incremental changes without actually transferring the storage
between hosts. But how is that possible if the storage was not shared in
the first place?
Lots of questions but I hope someone who has done this before can answer
some of these things.
Regards,
Berend Dekens