【IT168专题报道】
本节介绍了当前市场上各种x86虚拟机管理程序的体系结构差异。 主要体系结构类别有以下三个:
? 类型I :在系统硬件上直接运行虚拟机,以创建称为“裸机”的硬件模拟实例。
? II型:创建了一个称为“主机”虚拟机管理程序的硬件完整模拟实例,虚拟机一直在运行。
? 容器:虚拟机一直以来用于创建指向底层托管操作系统的独立虚拟化实例,称为“操作系统虚拟化”。
图13种主要虚拟化体系结构类型
上图显示了每个体系结构使用的上层软件“堆栈”。 请注意,在每个模型中,虚拟层在不同层实现,因此成本和利润不同。
除了上述体系结构类别外,了解虚拟机管理程序的基本要素也很重要。 这包括以下内容:
? 创建、管理和删除虚拟机监视器(VMM )虚拟化硬件。
? 修改半虚拟化(Paravirtualization )软件以提示您正在虚拟环境中运行。 根据虚拟机管理程序的不同,它可能包含以下一项或两项:
-内核半虚拟化:更改操作系统内核并要求客户端操作系统/虚拟机管理程序兼容性。
-推动半虚拟化:更改客户端OSI/o驱动程序(如VMware工具和ms集成组件)。
相关文章:
操作系统虚拟化:容器
在容器模型中,虚拟层是通过创建虚拟操作系统实例实现的,指向根操作系统的重要系统文件。 这些指针位于操作系统容器的保护中,提供低开销,如下图所示。 因此,虚拟化实例的密度非常大,密度是容器体系结构相对于I和II体系结构的重要优势之一,每个虚拟机都需要完整的客户端操作系统实例。
图2容器式虚拟化体系结构
共享系统文件的优点在于所有容器仅基于根OS提供客户机。 举个简单的例子,基本的windowsserver2003操作系统也可以用于创建windowsserver2003容器。 类似地,应用于根OS文件的所有修补程序和更新都由子容器继承,并且提供了简单的维护方法。
但是,这也可能造成损害,根操作系统被破坏,客户端也被破坏。
在容器中,用户使用特定的APP应用程序、热修复补丁程序和操作系统服务组件自定义客户端实例,并在根操作系统中安装大多数客户端容器中使用的服务或APP应用程序所需的功能
在许多情况下,容器的数量仅受主机操作系统可用资源的限制,并且每个客户端可能被配置为受根操作系统限制的最大硬件资源。 这些可扩展性和客户端管理的易用性使容器方法成为需要高虚拟机密度的APP应用程序(如虚拟桌面)的有力候选对象。
Parallels Virtuozzo容器是目前业界领先的操作系统虚拟化产品,除了这些功能之外,Virtuozzo还假定根操作系统和修补程序级别相同,提供了在高可用性和物理主机之间迁移客户端的功能。 Virtuozzo实现了自己的内核服务抽象层“Kernal Service Abstract Layer,KSAL”,可以保护主机操作系统文件,在可写文件系统中存储安全副本,以便单独修改客户端与虚拟机管理程序(本文稍后介绍)的父分区一样,第一个虚拟实例是提供虚拟机监视功能的简单管理容器。
Parallels Virtuozzo容器的最新版本4.5包括在Hyper-V中嵌入Virtuozzo的支持,两者都包含在父分区中。
图3在3 Hyper-V中嵌入Virtuozzo容器
虽然这种实现方式很复杂,但它展示了Virtuozzo体系结构的灵活性,并提供了高虚拟机密度。 有关Parallels Virtuozzo容器的详细信息,请访问网站(
II型虚拟机管理程序
II型或托管虚拟机管理程序与容器体系结构不同,它通过软件层在现有操作系统上虚拟化硬件。 II型客户端提供完全独立、无依赖关系的客户端操作系统副本,使用半虚拟化驱动网络和I/O提高客户端性能。 但是,由于虚拟化功能需要通过主机操作系统,因此客户机的性能大大低于裸机虚拟机管理程序。 它还具有高可用性和企业管理功能。 出于这些原因,II型虚拟机管理程序最常用于开发/测试和桌面APP应用程序。
典型的II型虚拟机管理程序包括Vmware Workstation、Sun VirtualBox和Microsoft Virtual Server R2。 这些虚拟机管理程序功能几乎完全相同,因为它们无法处理企业级工作量。 我以后不打算解释。
I型虚拟机管理程序
I型或裸机虚拟机管理程序包括当前主流的企业级虚拟化产品,它们直接在系统硬件上运行,从而提高客户端性能。 处理器虚拟化扩展,包括英特尔VT和AMD-V技术、I等
型hypervisor甚至可以超越裸机操作系统性能。使用这一类hypervisor,有几个子类型有必要详细介绍:? 独立型:VMware vSphere
? 混合型:Microsoft Hyper-V,Citrix XenServer和Sun xVM
? KVM:Linux KVM
I型独立型:VMware vSphere
在一个独立型hypervisor中,所有硬件虚拟化和虚拟机监视器(VMM)功能由一个单一的,紧密集成的代码集提供,这种架构与Vmware vSphere和前几代ESX hypervisor的结构是相同的。下图是Vmware vSphere 4.0(也称为ESX 4)的架构概述图,与一般看法相反,Vmware不是基于Linux的hypervisor,相反,ESX是由一个高度复杂的操作系统VMKernel组成的,并取得了专利权,提供所有虚拟机监控和硬件虚拟化功能。ESX完整版提供了一个基于Linux的服务控制台,但ESXi不包含此服务控制台。
图 4 VmwarevSphere 4.0架构
通常这种模式被称为“胖”或“瘦”hypervisor,但这种说法并不准确,虽然ESX架构经过长期发展变得更加复杂了,但Vmware在hypervisor性能和功能方面一直保持领先的行业地位,最近实现了处理器虚拟化扩展进一步巩固了领导地位。
Vmware在客户机内需要网络和I/O驱动半虚拟化,这些驱动通常包含在Vmware Tools中。
I型混合型:Citrix XenServer,Microsoft Hyper-V和OracleVM
混合I型架构包括一个软件模型,一个“瘦”hypervisor联合一个父分区提供硬件虚拟化,它提供了虚拟机监视功能,这类模型主要包括微软的Hyper-V和基于Xen的hypervisor,如Citrix XenServer和OracleVM。
图 5 I型混合型hypervisor
父分区也叫做Dom0,它通常是一个运行在本地的完整操作系统虚拟机,并具有根权限,例如,开启Xen在Novell SUSE Linux Enterprise Server(SLES)上执行的Dom0将作为一个完整的SLES实例执行,提供虚拟机(VM)创建、修改、删除和其它类似配置任务的管理层,系统启动时,开启Xen的内核载入父分区,以VMM权限运行,作为VM管理的接口,管理I/O堆栈。
与Vmware类似,所有混合型产品都为客户机提供了半虚拟化驱动,从而提高网络和I/O性能,不实现半虚拟化驱动的客户机必须遍历父分区的I/O堆栈,因此客户机的性能会下降。操作系统半虚拟化技术正变得越来越流行,以达到最佳的客户机性能,并改进跨hypervisor的互操作性。例如,Microsoft Hyper-V/Windows Server 2008 R2为Windows Server 2008和SUSE Enterprise Linux客户机提供完整的操作系统半虚拟化支持。
虽然操作系统半虚拟化是操作系统发展的一种趋势,但应当指出的是操作系统半虚拟化目前还不是混合模型的一个要求,部分供应商,如VirtualIron(Sun/Oracle),的目标是SMB级负载,使用全硬件虚拟化实现可接受的客户机性能。混合型架构起源于Xen项目,在性价比方面有很多供应商可供选择,这都得益于开源社区(Xen)的贡献,它能够很好地适应半虚拟化操作系统的未来发展。
I型组合型:基于Linux的内核虚拟机(KVM)
基于Linux的内核虚拟机(KVM)hypervisor模型提供了一个独一无二的I型架构,它不是在裸机上执行hypervisor,KVM利用开源Linux(包括RHEL,SUSE,Ubuntu等)作为基础操作系统,提供一个集成到内核的模块(叫做KVM)实现硬件虚拟化,KVM模块在用户模式下执行(与独立型和混合型hypervisor不一样,它们都运行在内核/根模式下),但可以让虚拟机在内核级权限使用一个新的指令执行上下文,叫做客户机模式。
图 6 I型组合型架构
KVM使用一个经过修改的开源QEMU硬件仿真包提供完整的硬件虚拟化,这意味着客户机操作系统不需要操作系统半虚拟化,与Vmware类似,Linux KVM充分利用VirtIO作为实现IO半虚拟化的框架,它利用内置在内核/QEMU中的用户模式VirtIO驱动增强性能。KVM现在已经成为很多Linux发行版的标准模块,包括但不限于Red Hat Enterprise Linux和SUSE Linux Enterprise Server,以及桌面类Linux,如Ubuntu,KVM现在已经成为一个流行的hypervisor。