[libvirt-users] using vmchannel between 6.x host/guests

Michael MacDonald libvirt-users at macdonald.cx
Tue Jul 3 15:25:18 UTC 2012


Hi all.  Having trouble figuring out the magic to set up VMChannel comms between EL6.x host/guests.  My end goal is to enable fence_virt in the guest to talk to fence_virtd on the host via VMChannel.  I'd prefer to use that instead of multicast because it is supposed to work even if networking in the guest is down/borked.

My analysis is that there is a mismatch between what libvirt is feeding qemu-kvm and what qemu-kvm is willing to accept:

virt-install option:
--channel unix,path=/var/run/cluster/fence/foobar,mode=bind,target_type=guestfwd,target_address=10.0.2.179:1229

turns into this XML:
<channel type='unix'>
  <source mode='bind' path='/var/run/cluster/fence/foobar'/>
  <target type='guestfwd' address='10.0.2.179' port='1229'/>
</channel>

Which then gets fed to qemu-kvm as this:
-chardev socket,id=charchannel0,path=/var/run/cluster/fence/foobar,server,nowait -netdev user,guestfwd=tcp:10.0.2.179:1229,chardev=charchannel0,
id=user-channel0 

And then qemu-kvm barfs like so:
qemu-kvm: -netdev user,guestfwd=tcp:10.0.2.179:1229,chardev=charchannel0,id=user-channel0: Invalid parameter 'chardev'

Versions:
libvirt-0.9.10-21.el6.1
qemu-kvm-0.12.1.2-2.295.el6

NB: I did try this with the versions in 6.2, got the same result.  Upgraded to these versions to see if the problem went away, but no joy.

NB2: The fence_virt.conf manpage lists the following as example XML for defining a channel device:
<channel type=’unix’>
    <source mode=’bind’ path=’/sandbox/guests/fence_molly_vmchannel’/>
    <target type=’guestfwd’ address=’10.0.2.179’ port=’1229’/>
</serial>

Any advice would be greatly appreciated.  I can fall back to multicast, of course, but I'd like to make this work if possible.

Thanks!
Mike




More information about the libvirt-users mailing list