目前市场上各种x86管理程序(hypervisor)的架构差异,三个最主要的架构类别包括:
I型:虚拟机直接运行在系统硬件上,创建硬件全仿真实例,被称为“裸机”
II型:虚拟机运行在传统操作系统上,同样创建的是硬件全仿真实例,被称为“托管”hypervisor
容器:虚拟机运行在传统操作系统上,创建一个独立的虚拟化实例,指向底层托管操作系统,被称为“操作系统虚拟化”
图1三种主要的虚拟化架构类型上图显示了每种架构使用的高层软件“堆栈”,应当指出,在每种模型中,虚拟层是在不同层实现的,因此成本和效益都会不一样
除了上面的架构类别外,知道hypervisor的基本元素也同样重要,它包括:
虚拟机监视器(VirtualMachineMonitor,VMM):它创建、管理和删除虚拟化硬件
半虚拟化(Paravirtualization):修改软件,让它知道它运行在虚拟环境中,对于一个给定的hypervisor,这可能包括下面的一种或两种:-内核半虚拟化:修改操作系统内核,要求客户机操作系统/hypervisor兼容性
-驱动半虚拟化:修改客户机操作系统I/O驱动(网络、存储等),如VmwareTools,MSIntegrationComponents
操作系统虚拟化:容器在容器模型中,虚拟层是通过创建虚拟操作系统实例实现的,它再指向根操作系统的关键系统文件,如下图所示,这些指针驻留在操作系统容器受保护的内存中,提供低内存开销,因此虚拟化实例的密度很大,密度是容器架构相对于I型和II型架构的关键优势之一,每个虚拟机都要求一个完整的客户机操作系统实例
图2容器型虚拟化架构通过共享系统文件的优点,所有容器可能只基于根操作系统提供客户机,举一个简单的例子,一个基本的WindowsServer2003操作系统也可用于创建WindowsServer2003容器,同样,任何适用于根操作系统