英特尔SR-IOV实现PCI硬件资源共享

为了解决这些挑战,出现了两个解决方案: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的优势

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引入了两个新的功能类型:

  • 物理功能(Physical Functions,PFs):这是一些支持SR-IOV扩展功能的PCIe功能,被用于配置和管理SR-IOV功能特性
  • 虚拟功能(Virtual Functions,VFs):这是一些“精简”的PCIe功能,包括数据迁移必需的资源,以及经过谨慎精简的配置资源集

虚拟化直接分配的方法允许虚拟机直接连接到一个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在虚拟化平台上的关键优点包括:


  • 提供了一个共享任何特定I/O设备容量、实现虚拟系统中资源最有效利用的标准方法
  • 在一个物理服务器上每个虚拟机接近本地的性能
  • 在同一个物理服务器上虚拟之间的数据保护
  • 物理服务器之间更平滑的虚拟机迁移,因此实现了I/O环境的动态配置


Intel最新的和即将推出的PCIe千兆以太网适配器将支持PCI-SIG SR-IOV功能。不同VMM厂商还将把这项支持集成到操作系统中,以发挥这项技术的优势。

你可能感兴趣的:(英特尔SR-IOV实现PCI硬件资源共享)