x86硬件辅助虚拟化之虚拟机与VMM(1)(2)
三种虚拟机监视器(VMM)
大家谈到虚拟化时最常用的一个词就是VMM(也称作Hypervisor,虚拟机监控器,基本上大家可以认为就是前文讲到的那个虚拟化层,抽象层的替代品),在系统虚拟机中虚拟软件常常被称为VMM,VMM在虚拟机中可以算是最为关键的组件,对于系统虚拟机的分类就是对虚拟机监视器(VMM)的分类。VMM一般有三种类型,分别是独立(Type-1)、宿主(Type-2)和混合(Hybrid)类型。不论是哪一种系统虚拟机模型,只要它能够提供对Intel VT和AMD-V的支持,都可以在一定程度上减少虚拟化软件带来的性能开销(早期的RISC硬件辅助虚拟化除外)。
虚拟软件把一个硬件平台上的ISA翻译成另一个,以构成系统虚拟机。
Type-1型VMM直接安装在物理机器上,运行在最高特权模式下,而客户机系统则运行在特权较少的模式上。这种虚拟机在很多方面都是很高效的,但明显的缺点是要考虑的方面较多(比如各种驱动程序),所以设计比较复杂,VMware的ESX server就属于这种类型。
Type-2型VMM类似于在操作系统上安装的应用程序,VMM可以依赖主机操作系统提供设备驱动和其它底层服务,因此不需要考虑大量的设备驱动问题,VMM体积较小。大家最常用的VMware Workstation和JVM都属于此类型,这种虚拟机的缺点是会损失一些效率,因为当请求操作系统服务时要通过更多的软件层次,来回的次数也更多。
混合型是Type-1和Type-2的结合体,在这个类型中VMM和主机操作系统处于平行关系,微软的Virtual Server 2005R2以及最近非常受大家关注的Xen就是混合型的典范。