Qemu 随机可以';t连接到libvirt中的来宾vm
我无法可靠地触发此事件,尽管如果我一次启动多个虚拟机,然后尝试连接其中一些虚拟机,我会遇到以下情况:Qemu 随机可以';t连接到libvirt中的来宾vm,qemu,kvm,libvirt,Qemu,Kvm,Libvirt,我无法可靠地触发此事件,尽管如果我一次启动多个虚拟机,然后尝试连接其中一些虚拟机,我会遇到以下情况: $ ping 192.168.122.135 PING 192.168.122.135 (192.168.122.135) 56(84) bytes of data. From 192.168.122.1 icmp_seq=1 Destination Host Unreachable From 192.168.122.1 icmp_seq=2 Destination Host Unreachab
$ ping 192.168.122.135
PING 192.168.122.135 (192.168.122.135) 56(84) bytes of data.
From 192.168.122.1 icmp_seq=1 Destination Host Unreachable
From 192.168.122.1 icmp_seq=2 Destination Host Unreachable
From 192.168.122.1 icmp_seq=3 Destination Host Unreachable
请注意,我创建并启动的所有虚拟机都不会发生这种情况,只有少数虚拟机(随机)
获得ip192.168.122.135
的vm在其域xml中的网络具有以下内容:
<interface type='network'>
<mac address='52:54:00:3d:72:ab'/>
<source network='default'/>
<target dev='vnet0'/>
<model type='virtio'/>
<alias name='net0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</interface>
及
下面是ip路由列表的部分输出:
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1
上面的路由输出使我认为它应该工作。但事实并非如此。它只是有时会失败,而且大部分时间都有效
为什么我不能从主机连接到来宾(192.168.122.135
)
我最初使用过滤器,但是从VM的域xml中删除过滤器对随机出现的这种情况没有影响。如果我同时启动多个虚拟机,我可以让它们中的很多发生这种情况。不过,有些虚拟机工作得很好,允许我连接
另外,我正在使用ubuntu 14.04.3:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.3 LTS
Release: 14.04
Codename: trusty
使用内核3.19.0-30-generic
更多信息-virsh版本:
$ virsh --version
1.2.2
libvirtd版本:
$ libvirtd --version
libvirtd (libvirt) 1.2.2
我没有足够的声誉来评论。。。但我有一些建议,你可以尝试进一步探讨这个问题 问题:在vnet0上的192.168.122.X子网中分配IP地址有什么作用吗?配置的路由似乎表明您的流量将转到virbr0,因为它具有192.168.122.1IP地址。如果您无法ping该子网中的任何其他设备,那么我怀疑这就是问题所在 如果这不能让你取得任何进展…
- 主机/VM上的数据包跟踪
发生这种情况时,请尝试在virbr0和内部VM接口上进行数据包转储。Ping虚拟机,看看你看到了什么样的流量
根据您在那里看到的情况,将有助于缩小问题的根源。如果您甚至没有在该接口上获得ping,那么这就是主机上的路由问题。如果ping正在进行,但是VM没有看到它们,那么这就是libvirt网络的网络/路由问题 我建议您也使用一个正常工作的VM来执行上述操作,这样您就有了一个参考来比较流量sudo tcpdump-n-i virbr0-v“icmp或arp”
- 检查ARP缓存
发生这种情况时,请检查主机上的ARP缓存。缓存中是否存在mac地址?也许它被弄坏了
要转储arp缓存,请执行以下操作:
#arp
- 检查您的libvirt日志
如果已配置,libvirt将使用“libvirtd”标记登录到syslog。检查您的配置以确保已启用此功能。这似乎不太可能是libvirt问题,但打开日志记录不会有什么坏处
要启用此设置
添加行#vi/etc/libvirt/libvirtd.conf
重新启动libvirtlog\u输出\u1:syslog:libvirtd”
#重新启动服务libvirt bin
lsmod | grep kvm
如果显示kvm详细信息,则机器已正确安装
然后重新启动服务
service libvirtd restart
还可以使用下面的命令检查网关
netstat -rn
在我的案例中,我有一个安装了Libvirt的硬件服务器 在这台服务器上,我在安装libvirt的地方创建了VM,然后我得到了随机网络中断和ping响应,响应为
192.168.122.1
:
From 192.168.122.1 icmp_seq=1 Destination Host Unreachable
我已修复了在硬件服务器上删除默认libvirt网络的问题,如下所示:
virsh net-destroy default
virsh net-undefine default
如果您可以将此编辑为答案,请执行。否则,你很清楚规则,所以赶快离开那里,提高你的代表!行!如果没有更多的信息,很难给出准确的答案。一旦我有了这个,我会修改这个,并把它变成一个真正的答案。
netstat -rn
From 192.168.122.1 icmp_seq=1 Destination Host Unreachable
virsh net-destroy default
virsh net-undefine default