什么是并行虚拟化?

什么是并行虚拟化?

我试图了解存在哪些类型的虚拟化,为了协助完成这项任务,我找到了一本由 Dijiang Huang 和 Huijun Wu 编写的书《移动云计算》。

以下发布的段落也可在 Google Books 上找到:https://books.google.com/books?id=dupGDgAAQBAJ

来自第 2.2.3 节,第 2.2 表,第 42 页:

HAL(完整版)

  • 描述:虚拟机管理程序提供了完整的虚拟机(具有与主机相同的计算架构),使未经修改的客户机能够独立运行。
  • 优点:可以灵活地运行来自多个供应商的不同操作系统的不同版本。
  • 缺点:客户操作系统不知道它正在被虚拟化;可能会对商用硬件造成相当大的性能损失,特别是对于 I/O 密集型应用程序。

HAL(并行)

  • 描述:虚拟机管理程序为每个客户机提供一个完整但专用的虚拟机(具有与主机相同的计算架构),允许修改过的客户机独立运行。
  • 优点:轻量、快速,接近本机速度;已证明可在 0.5-3.0% 的开销范围内运行;允许操作系统与虚拟机管理程序协作 - 改善 IO 和资源调度;允许不支持完全虚拟化的虚拟化架构。
  • 缺点:需要移植客户操作系统以使用超级调用而不是敏感指令。并行虚拟化的主要限制是客户操作系统必须专门定制以在虚拟机监视器 (VMM) 之上运行,VMM 是支持多个相同执行环境的主机程序。这尤其会影响尚未实现并行虚拟化扩展的旧式闭源操作系统。

此处,“并行虚拟化”看起来是“半虚拟化”的同义词。(在阅读本书之前,我从未听说过“并行虚拟化”一词。另一方面,“半虚拟化”一词在互联网上是众所周知的。)

然而,在第39页2.2.2节中,书中似乎与前面的内容相矛盾:

在 2.2.3 节介绍的第三种虚拟化分类中,我们将详细介绍两种最流行的基于 HAL 的虚拟化解决方案,即并行虚拟化(或裸机,或类型 1 虚拟化)和基于主机的虚拟化(或类型 2 虚拟化)。

总结一下:

  • 2.2.3 节:并行虚拟化与半虚拟化相同。
  • 第 2.2.2 节:并行虚拟化与裸机(又名 Type-1)虚拟化相同。
  • 然而,据我所知,半虚拟化和裸机(又称 Type-1)虚拟化是两个不同的东西。不是同一件事。

问题:

  • 第二段与第一段相矛盾吗?
  • 半虚拟化和裸机(又名 Type-1)虚拟化是两个不同的东西,这是真的吗?
  • 您是否同意第 42 页的段落是正确的,而第 39 页的段落是不是正确吗?您如何解释第 39 页的段落?

答案1

半虚拟化和裸机(又名 Type-1)虚拟化是两个不同的东西,这是真的吗?

如果虚拟机管理程序位于通用操作系统之上,那么客户机对抽象层的优化是不同的维度。

QEMU 是一个模拟器。添加 KVM 后,硬件加速可将开销降至最低,从而有效地使其成为类型 1。此外,KVM 具有半虚拟化客户机驱动程序。然而,QEMU 和 KVM 都在通用操作系统上运行;您可以在虚拟主机上运行任意应用程序。

Hyper-V通过运行 Windows 的特权根分区运行直接硬件访问。听起来像类型 2。但是,客户机和硬件之间的层很少,您无法在 Hyper-V 分区之外运行用户进程。

绘制抽象层图可能会有所帮助。实现并不像类型 1 与类型 2 所暗示的那样整齐地分为二元类别。此类类别不一定衡量实际考虑因素,例如与裸机相比的开销,或希望简单的虚拟机管理程序的安全性和可维护性。


半虚拟化这一术语的早期使用出现在华盛顿大学的 Denali 论文. 至少,氙气纸引用了 Denali 创造的这个术语。我找不到任何证据表明它起源于“平行”。可能,它是为了调用前缀 para- 的“旁边”和“辅助”含义。

相关内容