[libvirt-users] A issue about KVM block migration
Hello everyone, I have a issue about the KVM block migration. Please give me some help. 1) I use the "virsh create" command to start a KVM VM in source machine. 2) And then, I use "virsh migrate" cammand to start a block migration: # virsh migrate --live --copy-storage-all --verbose win7 qemu+ssh:// 186.100.8.136/system root@186.100.8.136's password: Migration : [ 93% ] I execute "virsh list" command in source machine, and the result is: #virsh list Id Name State ----------------------------------------------------------- 1 win7 running I can find the corresponding qemu-kvm process in the result of "ps -ef | grep qemu-kvm" in source machine. And I execute "virsh list" command in destination machine, and the result is: #virsh list Id Name State ----------------------------------------------------------- 1 win7 paused 3) But after a few minutes,there have a error: # virsh migrate --live --copy-storage-all --verbose win7 qemu+ssh:// 186.100.8.136/system root@186.100.8.136's password: Migration : [ 97% ] error: Unable to read from monitor : Connection reset by peer. I execute "virsh list" command in source machine again, and the result is NULL. I cannot find the corresponding qemu-kvm process in the result of "ps -ef | grep qemu-kvm" in source machine. And I execute "virsh list" command in destination machine again, and the result is NULL. But, when I only use qemu-kvm command not use libvirt, I can test block migration successfully (use qemu-kvm to create a VM, and exec "migrate -b -d xxx" command in qemu-kvm monitor to migrate). The version of libvirt is 1.0.1 and the version of qemu-kvm is 1.2.0 ( 1.2.2 is also have this issue). Please give me some help. How to solve the issue. Thanks a lot. **
On 01/13/2013 05:53 AM, 刘基 wrote:
Hello everyone,
I have a issue about the KVM block migration. Please give me some help.
1) I use the "virsh create" command to start a KVM VM in source machine. 2) And then, I use "virsh migrate" cammand to start a block migration: # virsh migrate --live --copy-storage-all --verbose win7 qemu+ssh:// 186.100.8.136/system
The current implementation of --copy-storage-all uses a qemu interface that upstream qemu developers are reluctant to support, and risks running into problems. We have patches under review to use a new NBD server for migration when targeting qemu 1.4 with libvirt 1.0.2, with much less risk, but that probably won't help your particular situation.
3) But after a few minutes,there have a error: # virsh migrate --live --copy-storage-all --verbose win7 qemu+ssh:// 186.100.8.136/system root@186.100.8.136's password: Migration : [ 97% ] error: Unable to read from monitor : Connection reset by peer.
I don't know if this was a case of libvirt timing out; you may want to play with keepalive_interval and keepalive_count in /etc/libvirt/libvirtd.conf with longer or disabled timeouts, on both source and destination, to see if that matters. You might also want to look into the libvirt logs to see if there are more details about the failure.
I execute "virsh list" command in source machine again, and the result is NULL.
That's not supposed to happen - a failed migration is supposed to leave the guest running on the source. But since it did happen, it would be nice to get to a root cause, and see if there is a bug we need to fix. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
participants (2)
-
Eric Blake -
刘基