我一直尝试在 Ubuntu 9.10 上使用 KVM 设置一对服务器,以便在它们之间托管 8 个虚拟机,但最终出现了各种问题,从虚拟机冻结到无法启动。
我设置并运行了一台虚拟服务器,现在正在设置第二台,这时任何涉及 OpenSSL 的操作都会导致虚拟机以奇怪的方式锁定 - 所有网络流量都会停止,它不会在控制台上处理登录,但它不会占用主机的任何 CPU 时间。第一台虚拟服务器完全相同,运行完美。
我尝试设置的另一台虚拟机成功安装了 Ubuntu,然后拒绝重新启动,抛出与 XFS 有关的内核异常。
我现在已经安装了 Citrix XenServer 5.5 到两台主机上,现在正在设置我的第三台虚拟机,完全没有问题。我尝试 VMware 时也有同样的经历,但我更喜欢 Xen,因为它似乎在免费许可证上提供了更多功能。
我的问题是,是不是我运气不好,或者 KVM 真的像看上去那么不稳定?您是否在生产中使用或计划使用 KVM,效果如何?
编辑:
感谢大家的回答。我最近将我们的两台物理服务器升级到了使用 KVM 0.12.3 的 Ubuntu 10.04 LTS。我现在正在 KVM 上安装我的第六台虚拟机,之前遇到的问题一点儿也没有出现,所以我现在继续使用 KVM :)
答案1
在过去 6 个多月里,我们在 Ubuntu 9.04 和 9.10 上安装并运行了多个 KVM 主机,最初设置客户机时出现了一些小问题,但之后再也没有出现过问题。我们的主机平均每个有 3 个客户机,客户机做很多不同的事情,从多宿主 VPN 服务器到可直接访问硬盘的 NAS 系统。性能和设置的简易性(一旦学习曲线完成)已经改变了我们的网络。
通过 virt-manager 客户端通过 ssh 上的 VNC 连接进行迁移非常容易;克隆并不那么顺利,因为新实例容易出现不稳定的网络错误。
我唯一一直抱怨的是,如果能在 virt-install 中将 QEMU VLAN 支持作为一个选项就好了,这样我们就可以避免直接使用更繁琐的 KVM 命令。除此之外,我们非常高兴,而且大多数管理工具都与 Xen 共享,所以我建议使用最适合您的工具。
答案2
我们已经在 Debian Lenny 上使用 KVM 近一年了。
稳定,除了实时迁移。显然,这在没有半虚拟化网络的情况下也可以工作。但我们可以暂时休息一下,直到修补版本可用。
我们使用 DRBD 来提供共享块存储。
当时没有任何东西提供一种好的方法来管理我们的特定组合,所以我重新发明了轮子:http://github.com/ptman/kvmmgr
答案3
我遇到过一些非常严重的错误——例如,virtio-net 网络连接中断 [1],kvm-clock 失灵并带走虚拟机 [2]。还有其他错误(由于算法错误导致客户文件系统损坏 [3])。此外,很长一段时间内,libvirtd 都没有提供彻底关闭所有正在运行的虚拟机的方法 [4]。YMMV :-)
[1]http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=576838
[2] 没有明确的错误报告,但存在这样的问题是有原因的:http://people.debian.org/~paravoid/kvm-noclock-3.tar.gz
答案4
我目前在生产中使用 KVM,有 3 个主机节点。每个节点通过 20Gbit Infiniband 连接到一对 NFS 服务器,使用 DRBD 和 Pacemaker 集群工具进行同步,以实现自动故障转移。
我经营一家小型托管和开发公司,现在我们的大部分网络都已虚拟化。我们的虚拟机主要是 Web、SMTP 和 DNS 服务器。总共托管了大约 250 个域,其中一些域流量很大,还有许多开发站点。
我最近转换了大约 15 台在 Esxi 主机上运行的 Vmware 机器。Vmware 对我们来说很好,但考虑到实时迁移、高可用性等因素,它的价格太高了,而且 Esxi 对 Infiniband 的支持也非常有限。Infiniband 解决了存储集中时出现的一些重要问题。目前我的 NFS 服务器是双 8TB RAID 6 阵列,具有良好的 I/O 吞吐量。将来,我将能够向相同的两台服务器添加额外的 RAID 阵列,导出多个 NFS 共享,并且仍然有足够的带宽到主机节点。
我们的设置是 vanilla,尽可能保持简单。我们在主机上运行 Debian 7.0,在 NFS 服务器上运行 Debian 6.07,我使用运行 virt-manager 的 Ubuntu 13.04 桌面设置来管理虚拟机。
现在,KVM 和 libvirt 非常棒,但与 Vmware 相比仍然有些不成熟,但是一旦解决了所有问题,设置就会简单得多,而且我真的很喜欢在主机上运行功能齐全的 Debian 系统,而不是非常专有的 Esxi 裸机系统。SSH、rsync 备份、apt-get 更新等都很简单。
如果你有空闲时间去研究、测试和解决一些问题,那么我建议你一直使用 KVM。它完全免费,更重要的是它是开源的。