服务器 频道

AMD和Intel比拼芯片辅助虚拟化

2)ring转换:Intel VT-x和AMD-V异曲同工

    在传统的x86运行环境下,操作系统运行在CPU中受保护的ring 0位置。在没有处理器辅助的虚拟化中,ring 0还需要运行VMM(virtual machine monitor,虚拟机监控器)或Hypervisor,以帮助VM(虚拟机)及其VOS(虚拟操作系统)管理硬件资源。

    因此,芯片厂商引入了一个新的、具有超级特权和受保护的ring -1位置来运行虚拟机监控器(VMM)。这个新位置可以让VOS和平共存于ring 0,而通信改道于ring -1,并且,VOS并不知道正在和同一系统的其他OS共享物理资源。

    芯片上的这一重要创新消除了操作系统的ring转换问题,降低了虚拟化门槛,支持任何操作系统的虚拟化而无须修改OS内核或run-time。Intel和AMD分别推出了VT-x和 AMD-V(即Pacifica)芯片辅助技术,并得到了虚拟化软件厂商的支持。

    Intel VT-x技术是在芯片内创建新的ring -1,并且提供了新的指令集,用来建立、管理和退出各种VM。在带有虚拟化功能的芯片中,Hypervisor处于ring-1位置,它生成一个VM控制结构来支持每个新VM。可见,这提供了一种机制,可以根据需要来启动、恢复和退出VM,并且在VMM和大量的VM之间提供了内容交换框架(framework for context-switching)。

    对VM的控制,Intel称之为VMXs,而AMD称之为SVMs(secure VMs),虽然名称不同,但两家芯片的处理方式是比较相似的。更重要的是,都允许客机操作系统(guest OS)进驻ring 0,从而消除了ring转换问题。由于许多指令对位置具有敏感性(location-sensitive),而且被设计为只能在ring 0和ring 3之间转化,因此,如果VOS运行在ring 0之外的地方,就可能会导致关键进程的运行出现无法预知的错误,或者在应该出错的时候却没有出错。

    以往,虚拟化厂商都是通过软件机制来截取和纠正相应问题。现在,由于虚拟机可以安全地运行在ring 0位置,因此,这一软件机制也就无须再考虑了。当VM发生错误时,处理器可以将控制权转给受保护的VMM,从而解决问题和重新控制VM,或者终止出错进程但不影响同一系统上的其他VM。

0
相关文章