我正在设置一台带有 KVM/QEMU 和所有 Linux 服务器的服务器。我们将使用此服务器进行 Web 开发、git、VoIP PBX 等。(我们使用的是 XenServer 和 Windows Server 2016,但我是 Linux 粉丝。)我遇到了一些问题,虚拟机似乎会随机丢失网络连接或进入睡眠状态或类似情况。我似乎无法确定问题是什么。
我浏览了很多论坛和帖子,甚至在 Server Fault 上也如此,但没有什么能完全符合我的要求。我将在下面附上一张我们的网络设置图片。我们有 2 个位置,它们之间有一个带防火墙的 VPN。有问题的机器是 Dell PowerEdge R710。我已成功在其上安装了 Ubuntu 18.10 和 KVM/QEMU 作为主机操作系统(18.10 是因为 Virtual Manager 存在问题,无法在 18.04 中显示所有网络连接)。我使用 Virtual Manager 通过 ssh 从我的笔记本电脑(开发计算机 1)管理安装/监控新虚拟机。
我有 6 个客户虚拟机,都安装了 Ubuntu 18.04 或 Debian 9(我们的 VoIP PBX),除了偶尔出现网络故障外,它们都运行良好。所有虚拟机都通过主机中的绑定桥连接(包括主机本身)。共有 4 个 NIC 都已绑定,我已将绑定用作桥的接口。我使用 netplan 进行网络配置,我将在下面发布配置 yaml。我为所有客户虚拟机使用静态 IP 配置,只需通过 netplan 为默认“ens3”接口设置一个 IP,但如果有帮助,我也可以发布它。
我注意到一些有趣的事情:
- 我总是可以通过 ssh 进入主机,它似乎从未失去连接。
- 当 6 台机器中的一台失去网络连接时,我仍然可以从主机通过 ssh 进入它,但它有时会在重新建立连接时挂起一段时间。
- 如果我从主机通过 ssh 进入有问题的虚拟机并对网关(防火墙)执行 ping 操作,它就会退出并我们可以再次连接到它。
- 有时,客户虚拟机将无法互相看到对方,但如果我通过 ssh 进入无法看到对方的虚拟机并运行 ping,它通常会在出现一些“目标主机无法访问”消息后开始工作。
我可以得到进一步诊断此问题所需的任何其他命令输出或日志,我非常感谢任何对此有更多了解的人对此进行研究。我是 Linux 的忠实粉丝,希望它能按照我所知道的方式工作,但这些随机断开连接并没有让这个解决方案看起来非常好。感谢花时间阅读本文的任何人!
主机netplan配置:
network:
version: 2
renderer: networkd
ethernets:
eno1:
dhcp4: false
dhcp6: false
eno2:
dhcp4: false
dhcp6: false
eno3:
dhcp4: false
dhcp6: false
eno4:
dhcp4: false
dhcp6: false
bonds:
bond0:
interfaces:
- eno1
- eno2
- eno3
- eno4
addresses: [192.168.5.20/24]
dhcp4: false
gateway4: 192.168.5.1
nameservers:
addresses: [192.168.1.6,1.1.1.1]
bridges:
br0:
addresses: [192.168.5.21/24]
dhcp4: false
gateway4: 192.168.5.1
nameservers:
addresses: [192.168.1.6,1.1.1.1]
interfaces:
- bond0
答案1
我有一个几乎目前生产中的配置相同。R710 上的 Ubuntu 18.04+KVM/QEMU 我没有遇到过此问题。
虽然这可能是 Ubuntu 版本的差异,因为你使用的是 18.10,或者你遇到了实际的硬件问题,但我在这个配置中看到的唯一显着差异是绑定 - 我没有使用它。我的桥接配置如下所示:
bridges:
br0:
dhcp4: yes
interfaces:
- eno1
它只使用 eno1,因为这是唯一一个有电缆连接的接口。出于故障排除的目的,尝试使用类似的配置看看是否能解决问题可能是值得的。
如果这就是问题所在,那么我认为您的配置中可能存在缺陷的地方就是绑定/网桥中的冗余参数。据我所知,地址、网关和名称服务器等参数应该从正在使用的接口中固有继承。可以尝试在网桥或绑定中设置所有这些设置,但不能同时设置两者。
最后,考虑到我们使用的是几乎相同的硬件,在 VM 主机上运行某种测试以确认网卡本身没有问题。
希望这可以帮助!