英特尔的硬件虚拟家技术Vt-x

来源:http://hi.baidu.com/kiropower/blog/item/5d84f2a81a2111a8ca130c98.html

Intel Virtualization技术可以分成CPU处理器VT技术(VT-x),芯片组VT技术(VT-d)和网络VT技术(VT-c):

VT-x技术:

Intel VT中的VT-x技术是CPU的硬件虚拟化技术,VT可以同时提升虚拟化效率和虚拟机的安全性,在x86平台上的VT技术,一般称之为VT-x,而在Itanium平台上的VT技术,被称之为VT-i。

VT-x扩展了传统的x86处理器架构,它引入了两种操作模式:VMX root operation(根虚拟化操作)和VMX non-root operation(非根虚拟化操作),统称为VMX操作模式。VMX root operation是VMM运行所处的模式, 设计给VMM/Hypervisor使用,其行为跟传统的IA32并无特别不同,而VMX non-root operation则是客户机运行所处的模式,在VMM控制之下的IA32/64环境。所有的模式都能支持所有的四个Privileges levels。

由此,GDT、IDT、LDT、TSS等这些指令就能正常地运行于虚拟机内部了,而在以往,这些特权指令需要模拟运行。而VMM也能从模拟运行特权指令当中解放出来,这样既能解决Ring Aliasing问题(软件运行的实际Ring与设计运行的Ring不相同带来的问题),又能解决Ring Compression问题,从而大大地提升运行效率。Ring Compression问题的解决,也就解决了64bit客户操作系统的运行问题。

为了建立这种两个操作模式的架构,VT-x设计了一个Virtual-Machine Control Structure(VMCS,虚拟机控制结构)的数据结构,包括了Guest-State Area(客户状态区)和Host-State Area(主机状态区),用来保存虚拟机以及主机的各种状态参数,并提供了VM entry和VM exit两种操作在虚拟机与VMM之间切换,用户可以通过在VMCS的VM-execution control fields里面指定在执行何种指令/发生何种事件的时候,VMX non-root operation环境下的虚拟机就执行VM exit,从而让VMM获得控制权,因此VT-x解决了虚拟机的隔离问题,又解决了性能问题。
英特尔的硬件虚拟家技术Vt-x
EPT和VPID技术是内存 虚拟化技术, 是页表扩充技术Extended Page Table (EPT) 的缩写, 是VT-x技术的一部分。 内存虚拟化的主要任务是实现地址空间的虚拟化,内存虚拟化是通过两次地址转换来支持地址空间的虚拟化,即客户机虚拟地址GVA->客户机器物理地址GPA->宿主机物理地址HPA的转换。传统的IA-32只支持一次地址转换。而内存虚拟化要求2次内存转换。即VMM根据GVA-GPA-HPA的映射关系计算”影子页表”, 软件实现缺点是内存开销大,而且性能差。EPT技术直接在硬件上支持了GVA-GPA-HPA的两次地址转换. VPID是Virtual Processor IDs的缩写,它是一种硬件级的对TLB资源管理的优化,通过在硬件上为每个TLB项增加一个标志,来标识不同的虚拟处理器的地址空间,区分开VMM以及不同的虚拟机的不同虚拟处理器的TLB。为实现这些功能,VT-x为EPT和VMM增加了一些特别的指令, 如INVERT, INVLPG等, 因此它需要软件的支持。现有VMWare ESX 4.0, Xen 3.4以上都支持了这一功能, 这些内存硬件虚拟技术大大降低了内存虚拟化的难度,提高了性能。

你可能感兴趣的:(英特尔)