虚拟机技术简介_第1页
虚拟机技术简介_第2页
虚拟机技术简介_第3页
虚拟机技术简介_第4页
虚拟机技术简介_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

近年来,虚拟机技术已经逐渐成为人们关注的热点,正受到越来越多的关注和重视,如VMware已经被80%以上的全球百强企业所采纳。随着多年来研究的深入,虚拟机技术已经在企业计算、灾难恢复、分布式计算和系统安全领域得到了广泛应用。现在对虚拟机技术有很多种分类方式,本文认为虚拟机的本质特征是利用下次应用(或系统)的支持为上层应用(或系统)提供不同的接口,因此按照接口来分类应该更能反映虚拟机的特点。按照虚拟机系统对上层应用所提供接口的不同(如图1所示),形成了不同层次的虚拟机技术,主要包括硬件抽象层虚拟机、操作系统层虚拟机、API(应用程序编程接口,ApplicationProgrammingInterface)层虚拟机,以及编程语言层虚拟机等四类。技统软件运行环境语言虎拟机指令用户进程燥作系统用户态运行再燥作系统硬件殖象层虚拟机燥作系统用户态API技统软件运行环境语言虎拟机指令用户进程燥作系统用户态运行再燥作系统硬件殖象层虚拟机燥作系统用户态API系统调用{JSyshHinCall)■+H——处理器指令-tit——图1层次化的虚拟机分类硬件抽象层的虚拟机。对上层软件(即客户操作系统)而言,硬件抽象层的虚拟机构造了一个完整的计算机硬件系统,这种虚拟机与客户操作系统的接口即为处理器指令。操作系统层的虚拟机。通过在动态复制操作系统环境,此类虚拟机能够创建多个虚拟运行容器。而对运行在每个容器之上的软件而言,此类虚拟机均提供了一个完整的操作系统运行环境,而它与上层软件的接口即为系统调用接口。API层的虚拟机。此类虚拟机为上层应用软件提供了特定操作系统运行环境的模拟,但这种模拟并不是对处理器指令的仿真,而是模拟实现该操作系统的各类用户态API。编程语言层虚拟机。此类虚拟机通过解释或即时编译技术(Just-In-Time,JIT)来运行语言虚拟机指令,从而实现软件的跨平台特性。硬件抽象层的虚拟机技术早在上世纪70年代,IBMSystem360、370、CP-40、CP-67Z]等系统就已经实现了硬件抽象层的虚拟机技术,它最初是为了弥补系统架构上的不足而发展起来的,而随着技术的发展和对虚拟机需求的增加,硬件抽象层虚拟机在强隔离功能和安全控制方面得到了长足发展和广泛应用。如前所述,运行在硬件抽象层虚拟机之上的软件即为客户操作系统,硬件抽象层的虚拟机技术利用客户系统环境和虚拟机宿主平台的相似性来减少执行客户系统指令的延迟。目前,大多数的商业服务器虚拟化产品,都是通过使用这种技术来实现高效、实用的虚拟化系统。这种技术利用虚拟机监视器(VirtualMachineMonitor,VMM)作为隔离代码运行环境的中间层。这类虚拟机通过VMM提供了一个物理机器的抽象,它允许操作系统假设自身可以直接在硬件上运行,VMM为其上运行的客户操作系统提供硬件映射。从操作系统的角度看,运行在虚拟机上与运行在其对应的物理计算机系统上一样。虚拟机曲拟机计算机系统TypeII虚拟机监视器(TypeIIVMM)操作系统Type1虑拟机监视器虚拟机曲拟机计算机系统TypeII虚拟机监视器(TypeIIVMM)操作系统Type1虑拟机监视器(Type1VMM)it算机系统操作系统操#乍系统虚拟机操作系统焜拉机操柞系统图1TypeIVMM与TypeIIVMM体系结构按照Goldberg的定义[5],虚拟机监视器是能够为计算机系统创建高效、隔离的副本的软件。这些副本即为虚拟机(VirtualMachine,VM),在虚拟机内虚拟处理器的指令集的一个子集能够直接在物理处理器上执行。根据VMM在整个物理系统中的实现位置和实现方法的不同,Goldberg定义了两种虚拟机监视器模型,即TypeIVMM和TypeIIVMM,具体结构如图1所示。TypeIVMM在操作系统之前预先安装,然后在此虚拟机监视器之上安装客户操作系统,它可以在硬件支持下拥有最佳性能,如IBMVM/370H3],VMwareESXServer®,Xen79],Denalia-12]等均属于这样的虚拟机。TypeIVMM通常都是以一个轻量级操作系统的形式实现oTypeIIVMM则是安装在已有的主机操作系统(宿主操作系统)之上,此类虚拟机监视器通过宿主主操作系统来管理和访问各类资源(如文件和各类I/O设备等),如VMwareWorkstation】13】、ParallelWorkstation】14]等。从实现的角度,VMM实现从虚拟资源到物理资源的映射,并利用本地物理计算机系统进行实际计算。当客户操作系统通过特权指令访问关键系统资源时,VMM将接管其请求,并进行相应的模拟处理。为了使这种机制能够有效地工作,每条特权指令的执行都需要产生自陷(Trap)以便VMM能够捕获该指令,从而使得VMM能够进行相应的指令模拟执行。VMM通过模拟特权指令的执行,并返回处理结果给指定的客户虚拟系统的方式,实现了不同虚拟机的运行上下文保护与切换,从而能够虚拟出多个硬件系统,保证了各个客户虚拟系统的有效隔离。然而,Intelx86体系结构的处理器并不是完全支持虚拟化的[⑸,因为某些x86特权指令在低特权级上下文执行执行时,不能产生自陷,导致VMM无法直接捕获特权指令的执行。目前,针对这一问题的解决方案主要有三种:基于动态指令转换(DynamicInstructionTranslation)的完全虚拟化(Full-virtualization)技术,半虚拟化(Para-virtualization)技术和硬件辅助(HardwareAssisted)技术。许多商业的虚拟化产品都采用了基于动态指令转换的完全虚拟化技术,例如EMC公司的VMwareESXServer、VMwareWorkstation和Microsoft的VirtualServer系列产品。基于动态指令转换的完全虚拟化技术通过在运行时动态执行指令扫描以发现特权指令,然后依据VMM状态执行指令转换,使得特权指令的执行跳转到等价模拟代码段处,从而实现与自陷相同的目标。由于完全虚拟化不需要修改客户操作系统,因此具有很好的兼容性,而完全虚拟化技术的性能也主要依赖于动态指令转换引擎的设计和实现。与完全虚拟化技术技术不同,半虚拟化技术通过修改操作系统代码使特权指令产生自陷。半虚拟化技术最初由Denali[i0]和Xen项目[7]在x86体系架构上实现。Denali最先提出半虚拟化技术,Xen是由剑桥大学计算机实验室发起的开源虚拟机项目。它的开发得到了Intel、HP、IBM等公司的支持。Xen是在x86平台上支持同时运行多个虚拟系统的高性能VMM,它支持x86_32、x86_64、IA64等多种平台。Xen采用半虚拟化技术,通过对客户操作系统的内核进行适当的修改,使其能够在VMM的管理下尽可能地直接访问本地硬件平台。Xen利用半虚拟化技术降低了由于虚拟化而引入的系统性能损失。如图2所示,Xen的半虚拟化技术的主要实现思路是:对于内存分段管理的虚拟化,要求客户操作系统对硬件分段描述符的更新由Xen进行验证,这也就要求客户操作系统不能有高于Xen的特权级别和不允许访问Xen的保留地址空间;对于内存分页管理的虚拟化,要求客户操作系统可以直接读取硬件页表,但对页表的更新需要Xen进行验证和处理,Xen支持客户虚拟系统可以分布在不连续的物理内存上;对于客户虚拟系统,其只能运行在低于Xen的特权级别上;客户虚拟系统需要注册一个异常(Exception)处理函数的描述符表,直接支持Xen的虚拟化;客户虚拟系统的硬件中断机制被Xen中的Event处理机制代替;每个客户虚拟系统都有自己的时钟接口,并且可以了解真实的时间和虚拟的时间;客户虚拟系统通过异步I/Orings的内存区域和外部设备(网络、硬盘)来传递数据,采用事件处理机制代替硬件中断通知机制。

VM3VM3图2Xen3.0体系结构目前,Xen的最新的3.x版本已经支持IntelVT和AMDPacifica技术,基于IntelVT技术避免了对客户操作系统内核的修改[8,16],这一技术将使得能够在Xen之上运行各种非开源操作系统(如Windows等)。Xen作为高性能的虚拟机软件[8],越来越受到业界的关注,并在企业计算和计算机安全领域都得到了广泛的应用[9,17-28]。第三种方案是通过修改x86CPU指令的语义使其直接支持虚拟化,也就是Intel的VT(VirtualizationTechnology)技术[29-3i]和AMD的Pacifica】32]技术的目标。Intel公司推出了VT-i(支持Ltanium架构)和VT-x(支持X86架构)引入新的处理器操作,称为VMX(VirtualMachineExtensions)来支持虚拟化。AMD推出了新的处理器模式和新的内存管理模式支持虚拟化技术。VT的核心思想是给x86CPU的各种特权指令的执行,都增加可以进行trap的可能。AMD在虚拟化技术方面的Pacifica技术规范,是AMD计划用于其64位产品中的虚拟化技术。该技术将用于基于x86架构的服务器、台式机和笔记本电脑等系列产品。从技术角度看,不论是VT技术外部架构规范,还是Pacifica技术规范,它们强调的核心功能都是RISC处理器早就实现了分区(Partition)功能,即基于该技术平台实现在独立分区中高效运行多个操作系统和应用程序,使一个计算机系统像多个虚拟系统一样运行。除了基于VMM的硬件抽象层的虚拟机技术,还有一种基于软件模拟指令集方式实现的所谓ISA(InstructionSetArchitecture)层虚拟机系统。一个典型的计算机系统由处理器、内存、总线、硬盘控制器、时钟、各种I/O设备组成。ISA层的虚拟化软件的实现方式是截获客户操作系统发出的指令,并把它们“翻译”成宿主平台上的可用指令进行执行(包括处理器内部指令和I/O指令)。由于这种指令的模拟方式,ISA层的虚拟化技术可以完全模拟一台真实机器,这种实现方式的好处在于,分离了操作系统和硬件平台的紧绑定关系。这方面具有代表性的系统有很多。Bochse]是用C++语言编写的开源的x86平台的PC模拟器,可以方便地在多种平台上模拟IA32PC系统。它能够模拟多种版本的x86系统,如386、486、Pentium、PentiumPro、SSE、SSE2等指令。Bochs解释客户系统从开机到关机的全部指令,模拟了Intelx86CPU、BIOS以及PC设备。因此,在客户操作系统看来,就好像是运行在一台真实的机器上一样。虽然Bochs系统的性能问题,使其很难有广泛的应用,但它也在某些方面有着重要的应用价值,如在非x86平台上运行Windows系统,进行新开发的操作系统的debug工作,进行老式x86系统的兼容性测试等。QEMU[34]是一个采用动态指令转换技术的快速的模拟器,它支持两种工作模式:用户空间模拟和全系统模拟。在用户空间模式下,QEMU可以在物理CPU上执行为其他CPU编译的程序。在全系统模拟的模式下,它支持模拟x86、ARM、PowerPC、Sparc等结构。它可以快速地把客户操作系统的指令动态地翻译成本地指令进行执行。QEMU进行动态指令转换的基本思想是把每条指令分解成少量的简单指令。每条简单指令由一段C代码实现,通过动态代码生成器把这些简单指令的目标文件连接起来,构建指定的功能。与基于VMM的硬件抽象层虚拟机不同,ISA层的虚拟机技术模拟运行所有客户操作系统执行的处理器指令。因此,这种虚拟机技术最大的不足就是性能问题,它的性能远远低于硬件抽象层的虚拟机,所以主要应用于动态指令转换等研究领域。硬件抽象层的虚拟化技术有着高度的客户虚拟系统的隔离性(包括客户操作系统之间,客户操作系统和宿主操作系统之间)。这种隔离性使得在同一个物理平台上,可以同时运行不同类型的操作系统,而且它们的重启等操作不会互相影响。在用户看来,隔离性使得物理平台被划分成不同虚拟机器。由于用户面对的是虚拟机器,用户需要更多的系统安装和配置工作。操作系统层虚拟机技术一个典型的应用程序运行环境包括:操作系统、用户函数库、文件系统、环境设置等。如果一个运行环境包含了所有这些关键组件,应用程序自身是无法区分是运行在物理系统内,还是运行在虚拟系统中。操作系统层虚拟化技术的主要思想就在于此,即在宿主操作系统上动态复制软件运行环境,以此来创建多个虚拟系统。Jail[1,2]是FreeBSD上的操作系统层虚拟机技术。它把操作系统划分成多个独立的环境,称之为Jail。每个Jail都可以独立管理典型的操作系统资源,如进程、文件系统、网络资源等。而用户对资源的访问范围则被限制在该用户所在Jail的内部。Jail是通过Jail系统调用创建的,Jail内的第一个进程的所有子进程都属于该Jail,任何一个进程不能同时属于多个Jail。Jail虚拟化技术在隔离应用程序方面有一定的应用价值。Solaris操作系统提供的区域(Zone)技术34]也采用了类似的机制。区域是指在Solaris操作系统的单个实例中创建的一个虚拟的操作系统环境,是一种用于虚拟化操作系统服务的分区技术,目的是提供安全的隔离环境以便承载和运行各种应用程序。区域有两种类型:全局区域(globalzone)和非全局区域(non-globalzone)。通过系统硬件引导的Solaris安装过程所安装的即是全局区域,一个系统中只能运行一个全局区域。全局区域管理员可使用zonecfg和zoneadm来创建非全局区域。全局区域控制所有非全局区域的安装、维护、操作和损毁。Solaris区域功能可为在非全局区域中运行的进程提供虚拟服务和名称空间隔离。它可以将在某个非全局区域中运行的进程与在其他区域中运行的进程隔离开,这种隔离可防止在某个非全局区域中运行的进程监视或影响在其他区域中运行的进程。对于在非全局区域中运行的进程,即使具有超级用户权限也不能查看或影

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论