Linux 上最快的虚拟化解决方案是什么?

Linux 上最快的虚拟化解决方案是什么?

还是XEN吗?或者是 VirtualBox、KVM、VmWare 还是其他?

最快是指来宾虚拟机速度很快(虚拟化造成的速度损失最小)

答案1

什么条件下最快?对于硬件虚拟化,所有虚拟化平台上的速度应该相同。

因此,您唯一应该考虑寻找的是软件中的硬件虚拟化支持。

据我所知,Virtualbox还不支持IOMMU硬件虚拟化。 KVM、VmWare 和 Xen 应该如此。 Xen 和 VmWare 应该是唯一支持显卡上 IOMMU 的(取得了不同程度的成功)。

答案2

最快的解决方案通常是与非虚拟化环境相比引入较少开销的解决方案。如果您能够应对其“非操作系统多样性”限制,那将是一个操作系统级虚拟化执行。对于 Linux,这意味着OpenVZ/Virtuozzo,Linux 容器 (lxc)虚拟服务器

答案3

我仍然相信它是XEN。我曾经与 RH 售前人员交谈并询问他们为什么淘汰 XEN 而支持 KVM。他说KVM至少和XEN一样快。我让他给我寄证据——什么也没回来……

我也不同意操作系统级别。恕我直言,基于虚拟化的裸机管理程序的开销比这要少。因此,PV XEN DomU 几乎与裸机一样好。

答案4

让我为主要问题提供一个非常具体的示例,在运行虚拟化解决方案的 Linux 上虚拟化另一个操作系统。

想象一下这个场景:

  • 我需要运行(我最讨厌的)Windows Guest
  • 我需要启动它
  • 我需要向访客注入一些数据
  • 我需要做一些在 Windows 之外无法完成的任务(我讨厌 Windows 的一个小原因)
  • 我需要提取(保存在 Windows 之外)已完成的工作
  • 我需要关闭该客人的电源

考虑到这种情况,我想知道什么虚拟化解决方案可以让我在更短的时间内完成所有工作。

假设我需要对客人做的事情的时间不算在内,因为这是一项手动任务等;休息什么?无外乎三件事:

  1. 启动虚拟化操作系统
  2. 与主机/访客之间传输数据
  3. 关闭虚拟化操作系统

现在假设您和我一样偏执,并且 Guest 处于“不可变”状态,因此每次启动时您在上一次启动中所做的所有操作都会丢失。总是启动相同,如果 Windows UpDates 输入它们什么也不做(启动时磁盘状态恢复为“不可变”状态),等等,剩下的是什么?只有两件事:

  • 访客的启动时间
  • 从热地到客人的转移时间,反之亦然

那么主要问题又来了,哪种虚拟化解决方案可以在更短的时间内做到这一点?

举一个我所知道和使用过的例子(QEMU 和 VirtualBox):

  • QEMU 的配置是“模拟”所有硬件、处理器、主板等...全部“模拟”,因此它不是“虚拟化”解决方案,但该示例为我提供了一种非常非常慢的方法的示例运行一个来宾
  • VirtualBOX 正在虚拟化硬件,并且比 QEMU 快得多,因为 QEMU 正在模拟所有硬件(仅用于使用乌龟与公式 1 进行比较)

那么,当两个虚拟化解决方案可以运行相同的来宾并允许您在来宾上执行相同的任务时......哪一个更快?或者更好的问题,用哪一个我需要更少的时间来启动同一个客人,等等?

简单来说,这是一个开发人员的典型示例:

  • 需要在各种 Windows 版本上测试新的应用程序可执行文件

想象一下 Windows 版本来自 Win95、98、ME、2000、XP、Vista、7、8、8.1、10 以及 10 的所有颠覆版本(1507、1511、1604、1608、1709 ... 等等,以及所有Windows 更新级别等...以及每个家庭版、专业版、企业版等)。

这使得在几十个虚拟客户版本的 Windows 中测试新的 EXE 成为一项艰巨的任务。

想象一下,真正的任务(测试新的 EXE)只需不到一分钟(只需运行并测试 EXE 上的新附加功能),但它必须在近一百万个 Windows 版本、更新等组合中完成。

对于每种组合,必须执行特定Windows版本补丁级别等的BOOT,该BOOT意味着时间可以从不到一分钟到十几分钟......是的,我知道一百万* 1分钟= 一百万分钟(接近 694.4 天)...这只是一个纯粹的示例,用于显示启动时间与测试时间的比率。

现在,如果虚拟化解决方案使 GUEST 在 99.8% 的时间内启动,而其他虚拟化解决方案(实际上几乎相同的时间)您将获得 1.5 天的时间...而这只是 0.2%...想象一下吧一个5%(不要想象,你获得的时间比一个月多34.27天)。

那么,这个问题是哪种虚拟化解决方案允许更快地运行来宾系统?不,必须将其理解为来宾使用哪种虚拟化解决方案可以在更短的时间内完成工作。

只是我知道的一个例子:

  • 在虚拟机中通过 VirtualBox(默认配置)启动 Windows 10 Home 64 位版本 1809.17763.404 需要将近八分之一分钟,然后您才能启动并在记事本上键入。
  • 通过 QEMU(虚拟化模式,非模拟模式和调整 cfg)在来宾中启动相同的 Windows 版本只需三分钟。

涨幅为 37.5%,值得考虑。回到在 100 万台 VM 上测试 EXE 的示例……这将为您节省 260 天的工作时间。

我认为问(以及我)要知道什么的人会更快。由于有些是“付费”版本,有些非常昂贵(> 1000 欧元),世界上每个人都无法进行比较所有版本所需的测试。

现在,个人观点...VirtualBOX 是一只乌龟...在真实硬件上相同的 Windows 10(从 USB-ISO 全新安装)与 VirtualBOX 相比,Windows 10 在几秒钟内启动,而不是三到四分钟...但再次强调,它不是比较真实硬件与虚拟化硬件,而是比较虚拟化与“A”和虚拟化与“B”。

我在互联网上进行了大量搜索,但没有找到任何 Windows 客户启动时间与虚拟化解决方案的比较。

另一件事是在虚拟化环境中运行数据库等。由于我没有这方面的经验,所以我无法谈论这个。

我可以谈论的是(因为我需要在每个可能的 Winodws 上测试新的 EXE)是关于 VirtualBOX 上的启动时间...它非常非常慢...但是因为我需要向访客传递一些 USB (加密狗)和 PCIe 卡、并行端口(加密狗)等,并且是免费的……我被困在 VirtualBOX 上。

希望这将问题集中在问题的真实文本上......哪种虚拟化解决方案可以使客户在更短的时间内完成工作。

相关内容