硬件辅助的IO虚拟化主要包括英特尔VT-d, AMD的IOMMU(AMD-Vi)和PCI-SIG 的SR-IOV。前两种属于DirectedI/O。物理设备直接分配给虚拟机使用,通过硬件芯片完成GPA到MA 的翻译。IOV 通过在硬件设备中增加一个PCIe设备,用于呈现一个PF或多个VF,从而可以将每个VF单独分配给不同的虚机使用。

SR-IOV简介

SR-IOV 技术是一种基于硬件的虚拟化解决方案,可提高性能和可伸缩性。SR-IOV 标准将一个PCIe的网络控制器虚拟化成多个PCIe设备,并且每个设备可以直接分配给一个虚拟机,允许在虚拟机之间高效共享 PCIe设备,并且它是在硬件中实现的,可以获得能够与本机性能媲美的 I/O 性能。

硬件的虚拟化使得单个 I/O 资源可由许多虚拟机共享。共享的设备将提供专用的资源,并且还使用共享的通用资源。这样,每个虚拟机都可访问唯一的资源。因此,启用了 SR-IOV 并且具有适当的硬件和 OS 支持的 PCIe 设备(例如以太网端口)可以显示为多个单独的物理设备,每个都具有自己的 PCIe 配置空间。

SR-IOV 是PCI-SIG的一个IOV的规范,目的是提供一种标准规范,通过为虚拟机提供独立的内存空间,中断,DMA流,来绕过VMM实现数据移动。SR-IOV 架构被设计用于将单个设备通过支持多个VF,并减少硬件的开销。

SR-IOV 规范定义了新的标准,根据该标准,创建的新设备可允许将虚拟机直接连接到 I/O 设备,越过了hypervisor与虚拟交换机层,这样可以带来低延迟和接近线缆的速度。SR-IOV 规范由 PCI-SIG 在 http://www.pcisig.com 上进行定义和维护。

SR-IOV 两种功能

物理功能(Physical Functions,PF):包含完整的PCIe 功能,包括SR-IOV的扩张能力,该功能用于SR-IOV的配置和管理。PF 能像普通 PCI 设备那样被发现、管理和配置。

虚拟功能(Virtual Functions,VF):包含轻量级的PCIe 功能,它只能处理I/O, 包含数据移动所需要的最小的必要的资源。每个 VF 都是从 PF 中分离出来的。每个物理硬件都有一个 VF 数目的限制。一个 PF,能被虚拟成多个 VF 用于分配给多个虚拟机。

一旦在 PF 中启用了 SR-IOV,就可以通过 PF 的总线、设备和功能编号(路由 ID)访问各个 VF 的 PCI 配置空间。每个 VF 都具有一个 PCI 内存空间,用于映射其寄存器集。VF 设备驱动程序对寄存器集进行操作以启用其功能,并且显示为实际存在的 PCI 设备。创建 VF 后,可以直接将其指定给 IO 来宾域或各个应用程序(如裸机平台上的 Oracle Solaris Zones)。此功能使得虚拟功能可以共享物理设备,并在没有 CPU 和虚拟机管理程序软件开销的情况下执行 I/O。

SR-IOV 设备可以具有数百个与某个物理功能 (PF) 关联的虚拟功能 (VF)。VF的创建可由PF通过设计用来开启SR-IOV功能的寄存器以动态方式进行控制。缺省情况下,SR-IOV 功能处于禁用状态,PF 充当传统 PCIe 设备。

SR-IOV的优点

  • 允许在 IO 来宾域之间高效共享 PCIe 设备。
  • 性能提升(从虚拟机环境直接访问硬件),
  • 成本降低(节能、减少了适配器的数量、简化了布线、减少了交换机端口)。

SR-IOV适用的场景

KVM虚拟机在传统网桥模式下,网络稳定是没有问题的,但它和SR-IOV一个本质的区别是,网桥模式本身会消耗宿主机的CPU,在实际场景下,当宿主机的CPU压力比较大时(>60%),虚拟机内部网卡的发包率(PPS)性能会下降,极端情况会出现丢包。

SR-IOV最适合的应用场景:

  1. 宿主机CPU压力大(>60%)+ 虚拟机网卡发包率压力大(pps >5w)。
  2. 虚拟机网卡发包率压力非常大(pps>10w)。
  3. KVM虚拟机中使用SR-IOV。

硬件与软件需求

硬件需求

  1. CPU必须支持IOMMU(比如英特尔的 VT-d 或者AMD的 AMD-Vi,Power8 处理器默认支持IOMMU),并且在BIOS中已开启。
  2. 支持PCI-SIG* Single Root I/O Virtualization and Sharing(SR-IOV),并且在BIOS中已开启。
  3. 支持SR-IOV的网卡必须插在总线带宽X8以上的扩展槽中。

软件需求

  1. VF驱动程序必须与物理网卡兼容。
  2. 必须安装在虚拟机操作系统内。
  3. 宿主机安装PF驱动程序。
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐