芯片组虚拟化支持
除了Nehalem提供的虚拟化支持外,在芯片组和主板级也增强了对虚拟化的支持,这些改进对于提高Hypervisor(按照英特尔的说法,Hypervisor指的是VMM:虚拟机监视器)的I/O性能很重要。
英特尔直接I/O虚拟化技术(VT-d for Direct I/O)
服务器使用一个输入/输出内存管理单元(Input/Output Memory Management Unit,IOMMU)将DMA I/O总线(如PCIe)连接到主存储器,和传统的内存管理单元一样,它将CPU可见的虚拟地址转换成物理地址,IOMMU会将设备可见的虚拟地址映射到物理地址,这些单元也提供了内存保护功能。
I/O虚拟化一个常见的需求是可以隔离和限制设备访问由分区管理设备拥有的资源。
2008年,英特尔公布了IOMMU技术规范:直接I/O虚拟化,缩写为VT-d。
英特尔VT-d给VMM提供了以下功能:
①. I/O设备分配 – 可灵活给VM分配I/O设备,加强保护,为I/O操作隔离VM的属性。
②. DMA重映射 – 为直接内存访问(Direct Memory Accesses,DMA)提供独立的地址转换功能。
③. 中断重映射 – 隔离和路由设备/中断控制器到VM的中断。
④. 可靠性 – 记录并报告系统软件DMA和可能会损坏内存或影响VM隔离的中断错误。