On 05/19/2012 06:24 AM, Andrey Korolyov wrote:
Hi,
Seems that such migration is currently broken, at least for
0.9.11|0.9.12, with 0.9.8 all works fine:
I haven't used rbd storage, so I'm not sure what might be the problem there.
virsh migrate --live testvm qemu+tcp://towerbig/system
---snip---
2012-05-17 21:22:30.250+0000: 16926: debug :
qemuDriverCloseCallbackGet:605 : vm=testvm,
uuid=feb7ccb6-1087-8661-9284-62e3a1e9f44a, conn=(nil)
2012-05-17 21:22:30.250+0000: 16926: debug :
qemuDriverCloseCallbackGet:611 : cb=(nil)
2012-05-17 21:22:30.250+0000: 16926: error :
virStorageFileIsSharedFSType:1007 : Invalid relative path
'rbd/testvm-Vwu': Invalid argument
although this might be a hint; our code might be checking something that
makes sense for a disk file, but not for an rbd storage volume.
Also there is a second point - libvirt doesn`t allow migration of VM
until all snapshots has been deleted, which is not necessary for
network filesystems, so it probably needs to be fixed. Thanks!
The problem is that snapshots involve more than just the snapshot data,
it also involves the libvirt XML associated with each snapshot. As this
XML can be quite lengthy, we have no way to send _all_ snapshots in a
single migration command. It is probably possible to implement some
form of handshaking, where migration proceeds to pass a series of RPC
messages, one per snapshot, to properly transfer all the snapshots, but
no one has coded it yet. In the meantime, it is still possible for you
to dump the snapshot XML for all snapshots on the source, then delete
the metadata for those snapshots, then do the migration, then redefine
the snapshot metadata on the destination, to achieve the same effect
manually.
--
Eric Blake eblake(a)redhat.com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org