1.2 虚拟化分类
虚拟化技术经过数年的发展,已经成为一个庞大的技术家族,其技术形式种类繁多,实现的应用也有其自身体系。下面从多个不同研究角度说明虚拟化的分类:
(1)从虚拟化支持的层次划分,主要分为软件辅助的虚拟化和硬件支持的虚拟化。
● 软件辅助的虚拟化是指通过软件的方法,让客户机的特权指令陷入异常,从而触发宿主机进行虚拟化处理。主要使用的技术是优先级压缩和二进制代码翻译。
● 硬件辅助虚拟化是指在CPU中加入了新的指令集和处理器运行模式,完成虚拟操作系统对硬件资源的直接调用。典型技术是Intel VT、AMD-V。
(2)从虚拟平台的角度来划分,主要分为全虚拟化和半虚拟化。
● 全虚拟化是指虚拟操作系统与底层硬件完全隔离,由中间的Hypervisor层转化虚拟客户操作系统对底层硬件的调用代码。全虚拟化无须更改客户端操作系统,兼容性好。典型代表是VMware Workstation、ESX Server早期版本、Microsoft Virtual Server。
● 半虚拟化是指在虚拟客户操作系统中加入特定的虚拟化指令,通过这些指令可以直接通过Hypervisor层调用硬件资源,免除由Hypervisor层转换指令的性能开销。半虚拟化的典型代表是Microsoft Hyper-V、VMware的vSphere。
(3)从虚拟化的实现结构来看,主要分为Hypervisor型虚拟化、宿主模型虚拟化、混合模型虚拟化。
● Hypervisor型虚拟化是指硬件资源之上没有操作系统,而是直接由虚拟机监控器(Virtual Machine Monitor,VMM)作为Hypervisor(可看作虚拟环境中的操作系统)接管,Hypervisor负责管理所有资源和虚拟环境。这种结构的主要问题是硬件设备多种多样,VMM不可能把每种设备的驱动都一一实现,所以此模型支持的设备有限。
● 宿主模型(Hosted模式)虚拟化是在硬件资源之上有个普通的操作系统,负责管理硬件设备,然后VMM作为一个应用搭建在宿主操作系统上负责虚拟环境的支持,在VMM之上再加载的是客户机。此方式由底层操作系统对设备进行管理,不用担心实现设备驱动。它的主要缺点是VMM对硬件资源的调用依赖于宿主机,因此效率和功能受宿主机影响较大。
● 混合模型虚拟化是综合了以上两种实现模型的虚拟化技术。VMM直接管理硬件,但是它会让出一部分对设备的控制权,交给运行在特权虚拟机中的特权操作系统来管理。这种技术还具有一些缺点,由于在需要特权操作系统提供服务时,就会出现上下文切换,这部分开销会造成性能下降。
(4)从虚拟化在云计算中被应用的领域来划分,主要分为服务器虚拟化、存储虚拟化、应用程序虚拟化、平台虚拟化、桌面虚拟化。
● 服务器虚拟化可以将一个物理服务器虚拟成若干服务器使用,它是“基础设施服务”(Infrastructure as a Service,SaaS)的基础。
● 存储虚拟化的方式是将整个云系统的存储资源进行统一整合管理,为用户提供一个统一的存储空间。
● 应用程序虚拟化是把应用程序对底层系统和硬件的依赖抽象出来,从而解除应用程序与操作系统和硬件的耦合关系。应用程序运行在本地应用虚拟化环境中时,这个环境为应用程序屏蔽了底层可能与其他应用产生冲突的内容。应用程序虚拟化是“软件服务”(Software as a Service,SaaS)的基础。
● 平台虚拟化是集成各种开发资源虚拟出的一个面向开发人员的统一接口,软件开发人员可以方便地在这个虚拟平台中开发各种应用并嵌入到云计算系统中,使其成为新的云服务供用户使用,平台虚拟化是“平台服务”(Platform as a Service,PaaS)的基础。
● 桌面虚拟化是将用户的桌面环境与其使用的终端设备解耦。服务器上存放的是每个用户的完整桌面环境。用户可以使用具有足够处理和显示功能的不同终端设备通过网络访问该桌面环境。