如何使用libvirt和vhost-user配置/启动vm

时间:2016-04-28 22:00:35

标签: virtual-machine kvm libvirt

我正在尝试使用2个Virtio接口作为vhost用户界面启动我的VM

以下是我的域xml的相关部分

<interface type='vhostuser'>
  <mac address='52:54:00:c7:ac:38'/>
  <source type='unix' path='/tmp/vhost1.sock' mode='server'/>
  <model type='virtio'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
</interface>
<interface type='vhostuser'>
  <mac address='52:54:00:9d:ea:73'/>
  <source type='unix' path='/tmp/vhost2.sock' mode='server'/>
  <model type='virtio'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x0b' function='0x0'/>
</interface>"`

执行virsh start domain_name command

它开始然后暂停。日志显示它停留在

n-pci,id=balloon0,bus=pci.0,addr=0x7 -msg timestamp=on
QEMU waiting for connection on: disconnected:unix:/tmp/vhost1.sock,server

我有什么遗失的吗?

  

一些信息

针对库编译:libvirt 1.2.18

使用库:libvirt 1.2.18

使用API​​:QEMU 1.2.18

运行虚拟机管理程序:QEMU 2.4.1

hugetlbfs /dev/hugepages hugetlbfs rw,seclabel,relatime 0 0

HugePages_Total:      10
HugePages_Free:       10
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:    1048576 kB


# ls -lar /tmp/*
srwxrwxrwx. 1 qemu qemu 0 Apr 28 14:02 /tmp/vhost1.sock

1 个答案:

答案 0 :(得分:0)

这是相关配置的正常行为。请求mode =&#39; server&#39; QEMU将启动UNIX套接字服务器,并在允许guest虚拟机开始执行之前等待与此连接。因此,为了实际使用,您需要使用外部进程监视来创建UNIX套接字(例如使用inotify)并立即连接。

另一种方法是切换到mode = client,其中QEMU连接到外部网络服务,避免任何延迟。