Intel VT-d:为处理器及I/O虚拟化强基固本
本文简要介绍了Intel VT、它所形成的虚拟化软件生态系统以及提供给处理器和I/O虚拟化的硬件支持。
Intel虚拟化技术简介
Intel VT包括了支持基于Intel处理器平台虚拟化的技术因素,因此实现了多个操作系统和应用在独立分区中的运行。每个分区就像是一个虚拟机,提供了各分区之间的分离和保护。这种基于硬件的虚拟化解决方案再加上虚拟化软件,实现了例如服务器整合、活动分区、工作负载隔离、嵌入式管理、传统软件迁移和灾难恢复等多种用途。
虚拟机管理器与虚拟机
Intel VT支持由两个主要类别的软件所组成的虚拟机架构:
• 虚拟机管理器(Virtual-Machine Monitor,VMM):虚拟机管理器就像是一个主机,全面控制着处理器和其他平台硬件。虚拟机管理器体现为客户软件和一个虚拟处理器,允许直接在逻辑处理器上执行。虚拟机管理器能够保留对处理器资源、物理内存、中断管理和I/O的选择性控制。
• 客户软件:每个虚拟机就是一个客户软件环境,支持由一个操作系统和应用软件组成的栈。每个虚拟机独立于其他虚拟机运行,对物理平台所提供的处理器、内存、存储、线卡和I/O使用相同的界面。这个软件栈就好像运行在一个没有虚拟机管理器的平台上。运行在虚拟机中的软件必须以降低的权限运行,这样虚拟机管理器就可以保留对平台资源的控制权。
在虚拟化的使用中,虚拟机管理器是平台基础架构的一个关键组成部分。Intel VT可以通过编程界面虚拟化处理器硬件来提高虚拟化基础架构软件的可靠性和可支持性。另外它还为平台中其他硬件组件的额外虚拟化支持奠定了基础。
处理器虚拟化的硬件支持
对处理器虚拟化的硬件支持可以获得一个简单、强大且可靠的虚拟机管理软件。虚拟机管理软件依赖于操作细节的硬件支持来处理事件、预期和分配给虚拟机的资源。
Intel VT提供了对处理器虚拟化的硬件支持。对于Intel 64处理器来说,这其中包括一系列虚拟机扩展(VMX),通过使用虚拟机支持对于多个软件环境的处理器硬件虚拟化。另外还有一个针对Intel安腾架构的处理器虚拟化所定义的对应架构。
I/O虚拟化
一个虚拟机管理器必须支持来自客户软件的I/O请求虚拟化。虚拟管理器也可能通过以下任何一种方式支持I/O虚拟化:
• 仿真:虚拟机管理器可以通过模拟一个现有(传统)I/O设备将虚拟机呈现到客户软件。虚拟机管理器在软件中仿真I/O设备的功能特性,不管通过哪个物理设备,最终呈现在物理平台上。I/O虚拟化通过仿真提供了良好的兼容性(通过允许现有设备驱动程序运行在客户机中),但是也造成了其性能和功能方面的限制。
• 新的软件接口:这种模式类似于I/O仿真,但仿真的不是传统设备,虚拟机管理器为客户软件提供了一个综合设备接口。这个综合设备接口被定义成虚拟化友好的,相比I/O仿真相关的开销来说,这种途径可以实现有效的虚拟化,它提供了比仿真更高的性能,但是兼容性有所降低(因为需要专门的客户软件和用于新软件接口的驱动程序)。
• I/O分配:一个虚拟机管理器可以直接将物理I/O设备分配给虚拟机。在这种模式下,被分配设备的驱动程序运行在分配给的虚拟机上,并且可以直接与设备应用进行通信,只需要极少甚至不需要虚拟机管理器的参与。强健的I/O分配要求额外的硬件支持,以确保被分配设备的访问是隔离的,且限制于分配分区所拥有的资源。I/O分配模式还可以被用于创建一个或者多个I/O分区,支持仿真或者对来自其他客户的I/O请求进行虚拟化的软件接口。这种基于I/O池的方法不需要运行物理设备驱动程序作为虚拟机管理器的专有软件。
• I/O设备共享:这种模式是对I/O分配模式的一个扩展,在这种模式下,I/O设备支持多个功能接口,每个都可以独立分配到一个虚拟机中。设备硬件本身能够通过这些功能接口接收多个I/O请求,经过处理并利用设备的硬件资源。虚拟机管理器根据使用要求,可以支持任何上述模式的I/O虚拟化。例如,I/O可以最适合于传统设备的虚拟化。当把I/O密集型工作负载托管到一个客户端的时候,I/O分配也许可以提供最佳的性能。
新软件接口的使用可以在兼容性和性能之间取得一个折衷,设备I/O的共享在平台中提供了超出物理设备数量的更多虚拟设备。
Intel VT for Directed I/O概览
上述所有I/O虚拟化模式都有一个共同的要求,那就是能够将设备访问隔离和限制到由分区管理设备所拥有的资源范围内。Intel VT for Directed I/O为虚拟机管理器软件提供了下面几项功能:
• I/O设备分配:用于灵活分配I/O设备到虚拟机,并针对I/O操作扩展和隔离虚拟机的特性
• DMA重映射:支持对设备Direct Memory Accesses (DMA)的独立地址转译
• 中断重映射:用于将分离中断请求并将其路由到合适的虚拟机上
• 可靠性:用于记录和报告给系统软件可能损坏内存或者影响虚拟机分离的DMA和中断错误。
DMA重映射的硬件支持
为了普及I/O虚拟化,使其适用于不同处理器架构和操作系统,本文将“域”定义为一个平台中的抽象分离环境,主机物理内存的子集分配到其中。
DMA重映射提供了分离设备访问到内存的硬件支持,让系统中的每个设备都可以通过一个独特的I/O页表格集分配到特定的域中。当设备要访问系统内存的时候,DMA重映射硬件会截取这个访问请求,利用I/O页表格来决定是否允许这次访问;它还决定了访问的实际位置。频繁使用的I/O页表格结构被缓存在硬件中。DMA重映射可以针对每个设备独立配置,或者在多个设备之间共同配置。
赵效民
ZDNet服务器频道主编
相关文章