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