虚拟化落在实处---多种虚拟化技术介绍
2008-11-28 16:48:48 来源:WEB开发网QEMU是一个采用动态翻译技术的快速的模拟器,它支持两种工作模式:用户空间模拟和全系统模拟。在用户空间模式下,QEMU可以在物理CPU上执行为其他CPU编译的程序。在全系统模拟的模式下,它支持模拟x86、ARM、PowerPC、Sparc等结构。它可以快速地把客户操作系统的指令动态地翻译成本地指令进行执行。其动态翻译过程的基本思想是把每条指令分解成少量的简单指令。每条简单指令由一段C代码实现,通过动态代码生成器把这些简单指令的目标文件连接起来,构建指定的功能。它把基本块作为翻译的基本单位,并采用16M的指令翻译Cache。
2.硬件抽象层的虚拟化技术
硬件抽象层的虚拟化技术,利用客户系统环境和Host平台的相似性来减少理解客户系统指令的延迟。目前,大多数的商业服务器虚拟化产品,都是通过使用这种技术来实现高效、实用的虚拟化系统。虚拟化软件进行从虚拟资源到物理资源的映射,并利用本地物理平台进行实际的计算。当虚拟系统访问关键的系统资源时,虚拟化软件接管其请求,并进行相应的处理。为了使这种机制能够有效地工作,虚拟机必须能够trap每条特权指令,并使得VMM接管进行相关的处理。这是因为,在同一个物理平台上有多个客户系统存在,这些客户系统发出特权指令希望CPU进行处理。这时把这些指令trap到VMM进行处理,以免系统发生异常或冲突。此时,VMM模拟特权指令的执行,并返回处理结果给指定的客户虚拟系统,保证了各个客户虚拟系统的有效隔离。然而,x86平台并不是完全支持虚拟化的,因为某些x86特权指令在特权级不够的情况下执行,并不能方便地产生trap。对这一问题的解决方案有:一种是指令扫描结合动态指令修改的软件技术,有许多商业的虚拟化产品采用了这种方案;另一种方案是修改x86 CPU,使它支持虚拟化,也就是Intel的Vanderpool技术和AMD的Pacifica技术的目标。此种虚拟化技术的代表 产品是EMC公司的VMware。
更多精彩
赞助商链接