在相同的硬件上,Xen 和 KVM 哪个速度更快?
我正在尝试选择一种虚拟化技术来工作,以获得最佳性能。
这里有一些关于这个主题的基准: http://virt.kernelnewbies.org/XenVsKVM
他们认为 KVM 是赢家,性能上有显著差异 —— 这与 KVM 是 2 型虚拟机管理程序的想法相悖,根据定义,它应该比 1 型虚拟机管理程序(如 Xen)慢 —— 或者至少网络上的文章是这么说的。
对这个问题有什么想法吗?
答案1
该基准测试仅比较了本机操作系统与单个客户操作系统的速度。它几乎不是实际测试。我认为我不会太看重它。大多数 KVM 阵营认为 Xen 需要在内核和用户空间之间进行太多中断和跳跃,但从我见过的大多数更实际的基准测试来看,这并没有真正实现,Xen 似乎比 KVM 快一点。
抱歉,我手边没有链接来支持这一点。但我要说的是,KVM 正在快速改进,似乎在功能集和稳定性方面正在迅速赶上。
至于哪种方法更好。Xen 阵营会争辩说,真正的轻量级虚拟机管理程序需要虚拟化才能安全快速。一些供应商也开始在固件中支持 Xen,这也很好。KVM 阵营会争辩说,KVM 更简单,Linux 能够成为一个很好的虚拟机管理程序。
最终哪个方向会胜出仍不清楚。Xen 无疑领先一步,并且已经拥有不错的市场份额。但它尚未进入主线内核。希望这种情况能很快改变,过去几个月内核列表中肯定有很多关于这一点的讨论。Red Hat 现在加入了 KVM 阵营,并将推动它成为首选的虚拟化平台。即将推出的 Red Hat Linux 5.4 将率先包含它。因此,这可能会吸引尚未推出或承诺虚拟化平台的商店。
就工具而言,Xen 和 KVM 都使用 libvirt 和 QEMU 以及与之相关的工具。因此它们共享许多相同的工具,例如 virt-manager。
我们在工作中使用 Xen,它对我们来说效果很好。但是我一直在研究 KVM,因为一些 USB 转发和 PCI 直通问题我无法用 Xen 解决。我不确定 KVM 在这方面是否更好,但我想一旦我尝试了它就会发现。在研究我的 USB 问题时,我注意到的一件事是,与 Xen 相比,KVM 的文档更易于访问和组织。但没有完美的虚拟化平台,所以你需要弄清楚什么对你有意义。
答案2
我个人会根据您所使用的虚拟机的可用性、支持性、可靠性和适用性来选择虚拟化。
Xen 网络数据传输速率似乎与真实硬件一样好,但我也曾与 Xen 和 vLans 以及多个以太网卡有过一些斗争。我没有使用 KVM 的经验,但我也建议您考虑 VMware ESX(i)。
答案3
您将在以下介绍中找到有关该主题的非常有趣的信息:Xen与KVM的量化比较
做这件事的人是 Xen 专家,但这种比较似乎相当公平。
答案4
值得一提的是:答案完全取决于您现在和将来的需求。
是的,我知道这个答案毫无帮助。不幸的是,这是真的。您对虚拟化的选择将影响您之后所做的几乎所有事情,因此您需要问自己几个问题。
(1)97% 的原生性能和 96% 的原生性能(凭空捏造的数字)之间的差异对你来说真的那么重要吗?
(1a) 如果一个在高清访问方面表现更好(这实际上意味着您要么使用超强的数据库,要么买不起额外的 RAM),而另一个在网络方面表现更好,那么哪个对您来说更重要?
(2) 您是否有信心使用任一解决方案所提供的工具?
(3)其中一个是(某种程度上)最新的 Linux 内核的原生版本,而另一个不是,这有什么区别吗?
(3a) 您现在或曾经……呃……是否需要在虚拟化环境下运行不同的操作系统?不一定是 Windows。可能是 FreeBSD,甚至是 Haiku,或者其他什么。(Xen 可能在这里胜出,但我建议您检查一下。)
从总体来看,我认为 KVM 是 Linux 对 Solaris 区域的回应。(我宁愿使用 Solaris 区域,但我看到了相似之处。)我认为 Xen 是一种成熟的虚拟机管理程序技术,支持多种操作系统,但如果您不需要多种操作系统,那么这并不重要。
说实话,无论哪种方式都不会错(考虑到上述注意事项)。我更喜欢 Xen,因为我上过剑桥;但如果我在 RH 工作,我可能会更喜欢 KVM。