虚拟化技术经过多年的发展,其CPU虚拟化和内存虚拟化均已成熟,但I/O虚拟化技术却变化不大。INTEL公司提出的SR-IOV技术通过在硬件层增加虚拟支持,极大的提高了物理设备的使用效率和I/O性能。

    

     SR-IOV 技术标准允许在虚拟机之间高效共享 PCIe(Peripheral Component Interconnect Express,快速外设组件互连)设备,并且它是在硬件中实现的,可以获得能够与本机性能媲美的 I/O 性能。SR-IOV 规范定义了新的标准,根据该标准创建的新设备可允许将虚拟机直接连接到 I/O 设备。


     通 过 SR-IOV,一个 PCIe 设备不仅可以导出多个 PCI 物理功能,还可以导出共享该 I/O 设备上的资源的一组虚拟功能。这个简化的服务器虚拟化架构如下图所示。

sriov 核显 esxi配置 esxi sr-iov_运维


在这个模型中,不需要任何透传,因为虚拟化在终端设备上发生,从而允许管理程序简单地将虚拟功能映射到 VM 上以实现本机设备性能和隔离安全。


    SR-IOV技术的目标是在绕过虚拟机参与数据迁移过程中实施标准化,为每个虚拟机提供独立内存空间、中断和Direct Memory Access (DMA)流。SR-IOV架构的设计允许一个I/O设备支持多个虚拟功能,同时将每个功能的硬件成本降至最低。SRIOV引入了两个新的功能类型:

    

  • 物理功能 (Physical Function, PF)
    用于支持 SR-IOV 功能的 PCI 功能,如 SR-IOV 规范中定义。PF 包含 SR-IOV 功能结构,用于管理 SR-IOV 功能。PF 是全功能的 PCIe 功能,可以像其他任何 PCIe 设备一样进行发现、管理和处理。PF 拥有完全配置资源,可以用于配置或控制 PCIe 设备。
  • 虚拟功能 (Virtual Function, VF)
    与物理功能关联的一种功能。VF 是一种轻量级 PCIe 功能,可以与物理功能以及与同一物理功能关联的其他 VF 共享一个或多个物理资源。VF 仅允许拥有用于其自身行为的配置资源。

每个 SR-IOV 设备都可有一个物理功能 (Physical Function, PF),并且每个 PF 最多可有 64,000 个与其关联的虚拟功能 (Virtual Function, VF)。PF 可以通过寄存器创建 VF,这些寄存器设计有专用于此目的的属性。

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

    

     同时,我们看到虚拟化技术正从根本上转变数据中心,将网络接入层转移到服务器中。除了对I/O设备进行虚拟化,使它们可以由虚拟机共享外,系统管理程序必然地成了基于软件的以太网交换机,为虚拟机提供网络服务,占用了大量CPU周期并阻碍着虚拟化可扩展性和性能。即使采用最强大的处理器,使用16 Gbps光纤通道,速度为10 GbE时,系统管理程序也不能跟上I/O需求,最终导致线速性能根本不可能实现。

     

sriov 核显 esxi配置 esxi sr-iov_操作系统_02

     通过实施Virtual Machine Optimized Ports(VMOP),Brocade 1860网络适配器利用VMware NetQueue和Microsoft VMQ等系统管理程序(hypervisor)多队列技术,来将入站网络数据包分类等任务从系统管理系统卸载到适配器上,从而节约CPU资源,实现线速性能。

    Brocade 1860网络适配器还支持博科的虚拟Fabric Link(vFLink)技术。这种技术可以将单一适配器分为最多8个虚拟适配器,而这些虚拟适配器可以配置为虚拟HBA(vHBA,用于光纤通道或FCoE)或虚拟NIC(vNIC,用于以太网)。这一操作在PCIe总线级别通过多种物理功能(Physical Function,PF)在硬件中实现;在操作系统级别,这些虚拟适配器看起来就像独立的物理设备。带宽能够以100 Mbps的增量分配给这些虚拟Fabric链路,光纤通道和以太网分别最多可分配到16 Gbps或10 Gbps的带宽。这有助于避免虚拟环境中适配器的迅速增长,同时可实现不同网络的全面管理隔离和微调,包括生产、备份、管理或实时迁移。

      同时SR-IOV利用PCIe虚拟功能(Virtual Functions,VF)——分配给虚拟机的轻量PCI功能,同时由系统管理程序负责控制基础PF。SR-IOV允许虚拟机高效地共享I/O设备,而直接I/O可提高性能。

SR-IOV 的优点

具有 SR-IOV 功能的设备可以利用以下优点:

  • 性能-从虚拟机环境直接访问硬件。
  • 成本降低-节省的资本和运营开销包括:
  • 节能
  • 减少了适配器数量
  • 简化了布线
  • 减少了交换机端口


VSphere与SR-IOV技术:

要使用 SR-IOV 所需支持的配置

组件

要求

vSphere


物理主机


物理网卡


对于物理网卡,在 ESXi 中使用 PF 驱动程序


客户机操作系统


客户机操作系统中使用 VF 驱动程序


配备 Intel 处理器的主机需要使用 ESXi 5.1 或更高版本。

配备 AMD 处理器的主机不受 SR-IOV 支持。


注:以下功能对配置了 SR-IOV 的虚拟机不可用:


vMotion

Storage vMotion

vShield

Netflow

虚拟线缆

High Availability

Fault Tolerance

DRS

DPM

挂起和恢复

快照

用于直通虚拟功能的基于 MAC 的 VLAN

热添加和删除虚拟设备、内存和 vCPU

加入到群集环境


问题:

受支持的网卡

配置了 SR-IOV 的虚拟机支持以下网卡:所有网卡必须具有支持 SR-IOV 的驱动程序和固件。某些网卡可能需要在固件上启用 SR-IOV。



从 vSphere 的较早版本升级

如果从 vSphere 5.0 或更早的版本升级到 vSphere 5.1 或更高的版本,则在为 vSphere 版本更新网卡驱动程序之前,无法取得 SR-IOV 支持。网卡必须具备支持已启用 SR-IOV 的固件和驱动程序,SR-IOV 功能才能运行。