1.类型
从虚拟机使用资源的角度来看,Hypervisor可以划分为两大类。一类是Ⅰ型(裸机型),直接运行在硬件设备上称之为裸机虚拟器或者本地虚拟机,如图1-12a所示;另一类是Ⅱ型Hypervisor,运行在一个操作系统上,该操作系统运行在物理硬件上,称之为主机托管型或主机虚拟化环境,如图1-12b所示。
图1-12 两种类型的虚拟机
Ⅱ型Hypervisor需要借助宿主操作系统来管理CPU、内存、网络等资源,Hypervisor及虚拟机的所有操作都要经过宿主操作系统,不可避免地存在延迟、性能损耗,同时宿主操作系统的安全缺陷及稳定性问题也会影响运行在其上的虚拟机。所以Ⅱ型Hypervisor主要用在对性能和安全要求不高的场合,比如PC系统。
Ⅰ型Hypervisor不依赖宿主操作系统,其自身具备操作系统的基础功能。设计上更简洁,直接运行于硬件之上,整体代码量和架构更为精简,对内存和存储资源要求更少,可满足航空航天、轨道交通、自动驾驶车控系统等领域的强安全等级需求,也具备进行形式化验证的条件。所以航空航天、轨道交通、自动驾驶车控系统等领域更倾向使用Ⅰ型Hypervisor。
2.产品
Ⅰ型Hypervisor的产品有Xen、VMware ESXi、Microsoft Hyper-V等。Xen是一款开源的Hypervisor,目前由Linux基金会托管。Xen采用GPLv2许可,拥有一个健康多元化的社区来支持它。VMware ESXi是VMware公司开发的虚拟化产品,是其虚拟化平台vSphere的核心组件。Microsoft Hyper-V则是微软公司开发的虚拟化产品。
Ⅱ型Hypervisor的产品有Microsoft Virtual PC、Oracle VirtualBox、VMware Workst-ation等。VirtualBox也是一款开源Hypervisor,由Sun Microsystems公司发行。后来Sun Microsystems被Oracle公司收购,VirtualBox正式更名为Oracle VirtualBox。用户可以在VirtualBox上安装Windows、Linux、FreeBSD等系统作为客户操作系统。VMware Workstation是VMware公司开发的一款功能强大的、面向PC端的Hypervisor产品,让用户可在单一桌面上同时运行不同的操作系统,是开发、测试、部署新应用程序的优秀解决方案。
一般来说,Ⅰ型Hypervisor性能开销低,在生产中更常见,通常应用在企业云等领域。而Ⅱ型Hypervisor成本低,易于安装,是PC的理想选择。
提示: 比较有趣的是,KVM是基于Linux内核的Hypervisor。一方面,它被归类为Ⅰ型Hypervisor,可以将Linux内核扩展成为“裸机”管理程序;另一方面,它使用全功能操作系统,每个虚拟机都被实现为一个常规的Linux进程,由Linux调度程序调度,并分配专用的虚拟硬件,例如图形适配器、CPU、网卡、内存和磁盘,因而整个系统又可以被归类为Ⅱ型Hypervisor。
虚拟化技术自20世纪60年代就开始用于大型机(Mainframe)系统,但直到20世纪90年代中期,随着桌面处理器技术的提升,才开启了在PC市场的应用。随着嵌入式系统中单核处理器计算性能的提升和多核处理器的出现,嵌入式市场也开始利用虚拟化这一非常有前景的技术。嵌入式Hypervisor越来越多地被应用到任务关键型和以安全为中心的工业场景中。