为了解决这些挑战,出现了两个解决方案:VMDq和SR-IOV。 安全
Intel开发了VMDq技术来将数据分类功能从hypervisor转移到网卡中。这提升了I/O性能以交付近线速的吞吐量和更低的CPU占用率。 服务器
除此以外,行业标准组织PCI-SIG制定了PCI-SIG Single Root I/O Virtualization (SR-IOV)规范以进一步增强虚拟化机系统的I/O性能。在PCI-SIG工做组中,Intel积极地与其余行业领导者共同合做。 网络
SR-IOV是一种不须要软件模拟就能够共享I/O设备I/O端口的物理功能的方法。这个过程创造了一系列I/O设备物理端口的虚拟功能。每一个虚拟功能都被直接分配到一个虚拟机,所以实现了接近本机的性能。 架构
总的来讲,SR-IOV实现了将PCI功能分配到多个虚拟接口以在虚拟化环境中共享一个PCI设备的资源。SR-IOV可以让网络传输绕过软件模拟层,直接分配到虚拟机。这样就下降了软加模拟层中的I/O开销。 性能
PCI-SIG SR-IOV的优点 spa
PCI-SIG SR-IOV提供了一个设备宣传其在多个虚拟机之间同时共享的能力的标准机制。SR-IOV规范容许一个独立硬件厂商(Independent Hardware Vendor,IHV)修改其PCI卡来定义成对于一个VMM(hypervisor)同一个类型的多个设备。SR-IOV的好处是建立了一个精简的界面来容许IHV有效地执行可以直接分配到虚拟机的界面。 操作系统
SR-IOV概览 设计
SR-IOV规范的目标是在绕过虚拟机参与数据迁移过程当中实施标准化,为每一个虚拟机提供独立内存空间、中断和Direct Memory Access (DMA)流。SR-IOV架构的设计容许一个I/O设备支持多个虚拟功能,同时将每一个功能的硬件成本降至最低。SRIOV引入了两个新的功能类型: 接口
虚拟化直接分配的方法容许虚拟机直接链接到一个I/O设备。所以,直接设备分配特性提供了一种本地体验和很是快速的I/0(所以它从新利用现有驱动程序或者其余软件来与设备进行直接通讯)。然而,这限制了I/O设备的共享。SR-IOV提供了一项功能以多个独立物理设备呈现的机制。 内存
支持SR-IOV的设备能够配置成以多个虚拟功能形式呈如今PCI配置空间中,每一个都有它们本身的PCI配置空间。而后VMM能够经过模拟配置空间来分配一个或者多个虚拟功能给虚拟机。
每一个虚拟功能能够支持针对PCIe层中I/O相关功能的一个特有且单独的数据路径。在网络设备中使用SR-IOV可以使一个端口(功能)的带宽分红更小的块,而后经过一个标准接口分配到特定虚拟机或者客户端中。为了进一步增强PCIe层中不一样设备的可操做性,还建立了一个配置和管理的通用方法体系。这种资源的共享提升了在一个支持SR-IOV的PCIe设备上任何特定资源的总利用率,从而下降了虚拟系统的成本。
英特尔的PCI-SIG SR-IOV功能实施要求VMM软件利用Intel Virtualization Technology for Directed I/O (Intel VT-d)直接将虚拟功能分配到虚拟机中。Intel VT-d中的内存转译技术提供了硬件辅助功能,容许直接的DMA传输。Intel VT-d可确保传输的安全,SRIOV为虚拟机提供了独立的数据空间。
支持PCI-SIG SR-IOV的Intel Server Adapters兼容任何厂商的具有直接从网卡向虚拟机分配虚拟功能的平台解决方案。
总结
总的来讲,PCI-SIG SR-IOV在虚拟化平台上的关键优势包括:
Intel最新的和即将推出的PCIe千兆以太网适配器将支持PCI-SIG SR-IOV功能。不一样VMM厂商还将把这项支持集成到操做系统中,以发挥这项技术的优点。