Migration test with plain libvirtd with qemu+tcp URI ==================================================== Versions -------- kernel-4.0.0-0.rc5.git4.1.fc22.x86_64 libvirt-daemon-kvm-1.2.13-2.fc22.x86_64 qemu-system-x86-2.3.0-0.2.rc1.fc22.x86_64 Config setup ------------ Assuming you're in a trusted network, have this config in destination's libvirtd.conf: $ cat /etc/libvirt/libvirtd.conf | grep -v ^$ | grep -v ^# listen_tls = 0 listen_tcp = 1 auth_tcp = "none" Start the libvirtd daemon on the destination with: $ cat /etc/sysconfig/libvirtd | grep -v ^$ | grep -v ^# LIBVIRTD_ARGS="--listen" Since I'm testing in a trusted network, I also had SSH access (via public/private keys) to destination host without any password prompts. # Create the SSH keys with empty passphrase $ ssh-keygen -t rsa # Copy the key to the remote host $ ssh-copy-id root@devstack3 Tests ----- The below are tests for three variants of migration with qemu+tcp: (1) Native migration, client to two libvirtd servers $ virsh migrate --verbose --copy-storage-all \ --live cvm1 qemu+tcp://kashyapc@devstack3/system (2) Native migration, peer2peer between two libvirtd servers: $ virsh migrate --verbose --copy-storage-all \ --p2p --live cvm1 qemu+tcp://kashyapc@devstack3/system (3) Tunnelled migration, peer2peer between two libvirtd servers: $ virsh migrate --verbose --copy-storage-all \ --p2p --tunnelled --live cvm1 qemu+tcp://kashyapc@devstack3/system Successful libvirtd log (with debug filter set) for the 3rd variant: https://kashyapc.fedorapeople.org/virt/temp/tunnelled-p2p-migration-qemu-tcp-libvirtd-log.txt Additionally, I also tested the below (without explicit '--copy-storage-all' flag, it works too): $ virsh migrate --verbose --p2p --tunnelled \ --live cvm1 qemu+tcp://kashyapc@devstack3/system NOTE: Both in the above cases (2) and (3), libvirt will fall back to old style 'migrate' command with single stream for memory and storage copying, as you notice from the above log: 2015-04-09 11:20:54.153+0000: 12152: debug : qemuMigrationDriveMirror:1721 : Destination doesn't support NBD server Falling back to previous implementation. . . . {"execute":"migrate","arguments":{"detach":true,"blk":true,"inc":false,"uri":"fd:migrate"},"id":"libvirt-18"} NBD based P2P migration without shared-storage ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The new style is the NBD-based storage migration, see more: http://wiki.libvirt.org/page/NBD_storage_migration A log file with qemu+ssh test of libvirt live block migration with no shared storage: https://kashyapc.fedorapeople.org/virt/temp/nbd-based-libvirt-live-block-migration-with-no-shared-storage-qemu-ssh.log Tested with below: $ virsh migrate --verbose --copy-storage-all --p2p --live cvm1 \ qemu+ssh://root@desthost/system