Virtualisation 虚拟化
实现虚拟化的主要技术是 Hypervisor。Hypervisor 提供了一种运行在物理硬件和操作系统之之间的中间层,允许多个系统访问系统硬件,并对其做出合理的调配。Hypervisor也可以叫做Virtual Machine Manager/Monitor (VMM)
。
我们可以理解,Hypervisor 是 操作系统 的 操作系统,相较于操作系统拥有更低的层级,为操作系统提供服务。
虚拟化的实现层级
Hypervisor 的虚拟化级别
Full Virtualisation (完全虚拟化) Type-1:
完全虚拟化允许未经修改的客操作系统(Guest OS)隔离运行。硬件虚拟化对客操作系统隐藏了真实的硬件,虚拟机运行在一个架设在硬件或主机操作系统(Host OS)之上的Virtual Machine Monitor中。拥有完全虚拟化能力的Hypervisor,将真实的硬件特征映射到虚拟机上,并且映射出了完整的指令集,I/O, 中断/内存管理等。Guest OS并不需要知道是否运行在虚拟机内,仅需按照正常在裸机上运行的那样即可。虚拟机发出的指令需经过Hypervisor捕获并处理。这带来了一个问题:过大的开销。
但是,Full Virtualisation 允许任何未经修改的操作系统和客户端程序直接在其上运行。在这里,Hypervisor实质上成为了比操作系统优先级更高的Super OS。
代表: VMWare, Microsoft Virtual Server
Para-Virtualisation(半虚拟化) Type-2:
半虚拟化要求操作系统进行了适应性修改: 将会拥有于Hypervisor交互的API,服从Hypervisor的调度。同时,经过修改的Host OS使得非虚拟化指令被 HyperCalls(超调用) 代替,这允许Applications直接调用系统底层资源,无需经过Hypervisor翻译。由于虚拟化的开销减少了,性能也提高了
Supported by Xen, KVM, VMware ESX
Hardware-Assisted Virtualisation(硬件辅助的虚拟化) Type-3 :
目前,硬件设备生产商往往为虚拟化在硬件设备中增加了虚拟化功能。这些功能允许一些来自 Guest OS 的 privilege calls 直接交由CPU处理,从而越过Hypervisor的翻译过程。
Supported by Intel-VT AMD-V
虚拟化架构的运行模式
a) 操作系统在特权模式下执行
b) VMM在特权模式下运行
c) 受信任的主机操作系统在托管的虚拟机系统中以特权模式执行。客户操作系统驻留在虚拟机 中,以较低的特权级别运行。
d) VMM的一部分在特权模式下运行。
References
- Cloud Computing for Science and Engineering. I. Foster and D.B. Gannon. MIT Press, 2017
- S. Bhowmik, Cloud computing. Cambridge University Press, Chapter 7, 2017