如何在VirtualBox中选择半虚拟化界面?


89

给定Windows 8主机系统(Intel Core i5)和Linux Fedora主机,我想确定半虚拟接口的最佳设置。

选项是

  • 没有
  • 默认
  • 遗产
  • 最小的
  • 超V
  • 虚拟机

此页面建议选择仅基于访客系统:

VirtualBox 5.0中最大的变化是引入了半虚拟化支持,为受支持的客户机操作系统(Windows上的Hyper-V和Linux上的KVM)带来了更高的性能和计时精度。

那是对的吗?

Answers:


98

VirtualBox手册》中标题为“ 准虚拟化提供程序”的部分非常清楚地说明了何时应使用每种格式(强调):

  • 最少:宣布存在虚拟化环境。此外,还将TSC和APIC频率报告给来宾操作系统。该提供程序对于运行任何Mac OS X来宾都是必需的。

  • KVM:提供一个Linux KVM管理程序接口,此接口可从2.6.25版开始的Linux内核中识别。VirtualBox的实现当前支持半虚拟时钟和SMP自旋锁。建议为Linux guest虚拟机使用此提供程序。

  • Hyper-V:提供Microsoft Hyper-V管理程序界面,Windows 7和更新的操作系统可以识别该界面。VirtualBox的实现当前支持半虚拟时钟,APIC频率报告,来宾调试,来宾崩溃报告和宽松的计时器检查。建议Windows客户机使用此提供程序。

下拉菜单中的其他选项执行以下操作,如vboxmanagedocs中所述:

  • none明确指定将关闭任何半虚拟化接口的暴露。

  • 默认值:选项default,将在启动VM时根据来宾OS类型选择合适的接口。这是创建新VM时选择的默认选项。

  • 旧版legacy为使用旧版VirtualBox版本创建的VM选择该选项,并在使用VirtualBox 5.0及更高版本启动VM时选择半虚拟化界面。


6
在我的Ubuntu来宾(使用OSX作为主机)上测试KVM模式时,存在几个与时间相关的问题,包括时钟运行速度大约慢了两倍。(我将使用ntp设置时间,并在10分钟内将时钟延迟约5分钟)。系统实际上正在运行所有较慢的东西,例如,调用“ sleep 5”将花费超过5秒的时间。目前,我回到了“旧版”模式
-JBernardo

@JBernardo您是否测试了默认模式?
莱奥波德·赫兹(LéoLéopoldHertz)2016年

@LéoLéopoldHertz준영 默认模式是否与他们已经尝试过的KVM相同?
endolith”

@JBernardo通常不应在VM内部使用ntp,因为它由来宾实用程序与主机同步。它可能会干扰。
巴查(Bachsau)'18年

9

更准确地说,因为我有4.3台迁移的VM,并且这些是“旧版”,所以如果我将VM从Linux复制到Windows或反之亦然,我也对使用哪种设置感兴趣:

--paravirtprovider none | default | legacy | minimal | hyperv | kvm:此设置指定要向来宾操作系统提供哪个半虚拟化接口。

  • 不指定任何内容将关闭暴露任何半虚拟化接口的权限。
  • 选项default,将在启动VM时根据来宾OS类型选择合适的接口。这是创建新VM时选择的默认选项。
  • 传统的选项是选择了这是虚拟机与旧的VirtualBox创建的版本,并会挑一个准虚拟化界面,同时用VirtualBox的5.0和新启动VM。
  • 最小的提供者是强制性的Mac OS X的客人
  • KVM - 推荐Linux客户机
  • Hyper-V的 - 推荐Windows客户

这些选项在第10.4节“ 半虚拟化提供程序 ” 中进行了详细说明。

手册第8章开始

因此,如果您已在Linux中将VirtualBox升级到版本5,只需选择kvmdefault,启动VM并检查其是否正常运行。如果是,请保留新设置。

如果将VM从Linux迁移/移动到Windows,建议使用默认选项,该选项会自动选择最佳的虚拟化接口。


0

根据我自己的测试,只有亩到几美分。

我已经在Windows 10主机和Linux主机上运行Windows 10 guest虚拟机进行了测试(或者至少我尝试过)。

更不用说,我使用的所有虚拟磁盘都是不可变的(以确保相同的测试)。

在Windows 10主机上,guest虚拟机可以正常运行(可能有点慢),但会启动并显示桌面……准虚拟化为“默认”。

如果我在具有半虚拟化“默认”设置的Linux主机上尝试使用相同的虚拟机,则Windows 10 guest虚拟机不会启动,它会启动直到点移动一圈,然后冻结一段时间……无法登录,也无法进入桌面。 ..记住所有磁盘都是不可变的。

但是,一旦我将半虚拟化设置为“ Heredada”(它是西班牙语),它就会启动并到达桌面,但有时(记住所有磁盘都是不可变的)它会重新启动,而其他时候我可以使用它(非常慢)。因此,某处必须存在种族竞争,使用不可变的磁盘,它总是无法做到这一点。

嗯,顺便说一句,Windows guest虚拟机无法访问Internet,以确保没有Internet连接可以使冷靴之间的工作方式有所不同。

记得:

  • 所有磁盘都是不可变的
  • 每次冷启动时,所有内容都会还原
  • Windows guest虚拟机始终无法正常工作
  • 将准虚拟化设置为“默认”时,它甚至无法在Linux主机上启动,但可以在Windows Host上正常启动。
  • 通过在“ Heredada”上进行半虚拟化,它可以在Linux主机上启动(但始终不稳定,无法使用它)

我还尝试过启用/禁用2D和3D(也包括PAE / NX),因为我希望同一客户(从一台主机复制到另一台主机的虚拟HDD)在两台不同的主机上稳定;我还希望能够在进行任何更新后将虚拟HDD从一台主机复制到另一台主机(在进行冷启动之前,将不可变磁盘与其父级合并以使更改永久而不丢失,也就是使用CloneVDI);我不使用快照,仅使用不可变的磁盘。

那就是我所看到的,我必须对其他半虚拟化值进行更多测试,以防万一任何人都能在Linux主机上更好地工作。我既不使用MAC,也不使用OS / 2,仅使用Windows主机和Linux主机(两者均位于不同的物理硬件上)。

版本:Windows 10 guest虚拟机为HOME 64Bits,版本为1809.17763.379

希望这对其他人有帮助,测试和测试并重新测试(最好使用不可变的磁盘)值的任何组合,直到找到一个有效的组合为止,这似乎是使客户机在不同类型的主机(Windows / Linux)上运行的唯一方法! !!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.