📜  虚拟化 | VMware:完全虚拟化

📅  最后修改于: 2021-10-20 10:23:29             🧑  作者: Mango

先决条件 – 虚拟化简介,虚拟化的机器参考模型
在完全虚拟化中,主硬件被复制并提供给来宾操作系统,其执行时不知道这种抽象并且不需要修改。 VMware 的技术基于完全虚拟化的关键概念。无论是在桌面环境中,借助Type-II hypervisor,还是在服务器环境中,通过Type-I hypervisor,VMware 都实现了全虚拟化。在这两种情况下,通过对非敏感指令的直接执行和对敏感指令或硬件陷阱的二进制转换,可以实现完全虚拟化,从而实现 x86 等架构的虚拟化。

完全虚拟化和二进制翻译——
VMware 被广泛使用,因为它倾向于虚拟化 x86 体系结构,该体系结构在其虚拟机管理程序之上执行未经修改。随着硬件辅助虚拟化的引入,完全虚拟化可以通过硬件的支持来实现。但早些时候,在虚拟化环境中未经修改的 x86 客户操作系统只能通过使用动态二进制转换来执行。

由于敏感指令集不是特权指令的子集,x86 架构设计不满足虚拟化第一定理。由于这种不同的行为发生,而这些指令不在 Ring 0 中运行,这在来宾操作系统在 Ring 1 中运行的虚拟化环境中是正常的。虚拟化应用于x86的解决方案。在动态二进制转换中,陷阱遇到中断或违规指令转换为相应指令集的情况,这些指令集建立相同的目标而不会产生异常。此外,为了扩展性能,相应的指令集被缓存,因此对于相同指令的进一步遇到,翻译不再重要。下面是演示它的图。

图 –全虚拟化参考模型

这种方法的主要好处是来宾可以在虚拟化环境中未经修改地运行,这对于源代码不存在的操作系统来说是一个重要的特性。二进制转换对于完全虚拟化是可移植的。除了运行时的指令转换外,还有其他方法(如半虚拟化或硬件辅助虚拟化)不存在的额外开销。与此相反,二进制翻译仅实现到指令集的一个子集,而其他的则通过在主硬件上直接执行来管理。这以某种方式消耗了对二进制翻译性能的影响。

二进制翻译的优势 –

  1. 这种虚拟化为虚拟机提供了最好的隔离和安全性。
  2. 真正隔离的多个客户操作系统可以在同一硬件上并发执行。
  3. 它只是不需要硬件辅助或操作系统辅助来虚拟化敏感指令和特权指令的实现。

二进制翻译的缺点 –

  1. 它在运行时很耗时。
  2. 它获得了很大的性能开销。
  3. 它采用代码缓存来存储翻译的最常用指令以提高性能,但它会增加内存利用率以及硬件成本。
  4. x86 架构上全虚拟化的性能是主机的 80% 到 95%。