[libvirt] migration: qemu vs. qemu+tcp at virsh vs. libvirt-java

Cole Robinson crobinso at redhat.com
Mon Nov 16 13:42:16 UTC 2009

On 11/16/2009 12:33 AM, Thomas Treutner wrote:
> Hi,
> I'm having a little problem when triggering (live) migration from libvirt-java 
> (libvirt.so at client is approx. 0.7.1), I get an error that the qemu:// 
> driver for migration URIs is not supported, only qemu+tcp:// 
> Strange thing is, with virsh at the same client (same libvirt.so), qemu:// 
> works. Interestingly, the error message seems to come from libvirt.so and not 
> libvirt-java. 
> I'd like to avoid maintaining two different URIs/drivers for normal 
> connections and migration destinations, especially as it works flawlessly 
> (and fast!) with virsh?
> Has anyone clues where this twisted-mind behaviour could come from?

What is the full argument list you are passing to the migrate function?
You should only see that 'tcp' error if you are passing an explicit URI,
which isn't required for standard migration.

For virDomainMigrate, the least you need is a VM pointer and an open
connection ptr, which will be the destination connection. URI should
only be specified if you want to migrate over a specific interface on
the remote host, and the uri should be of the form


This does not require TCP auth to be setup between the connections,
since migrate uses a straight TCP connection (unless using the PEER2PEER
flag, in which case URI should be a full fledged libvirt URI).

- Cole

More information about the libvir-list mailing list