深入浅出SRIOV

虚拟化中的SR-IOV

https://blog.51cto.com/maomaostyle/1439651

 

SRIOV,即单根虚拟化。Intel在早期为了支持虚拟化环境,在CPU和PCI总线上提供了三层虚拟化技术,它们分别是:

  1. 基于处理器的虚拟化技术VT-x
  2. 基于PCI总线实现的IO虚拟化技术VT-d
  3. 基于网络的虚拟化技术VT-c

从SRIOV的中文字面不难理解,它属于VT-d技术的一个分支,要实现SRIOV功能,前提条件就是你的网卡首先要支持SRIOV,你的主板要支持VT-d技术(支持VT-d自然也就支持SRIOV)

 

那么SRIOV究竟是干嘛用的呢?它能给虚拟化平台带来多么可观的性能提升呢?还是上一张架构图来看看吧:

以上图为例逐个解释关键词:

1. PF就是物理网卡所支持的一项PCI功能,PF可以扩展出若干个VF

2. VF是支持SRIOV的物理网卡所虚拟出的一个“网卡”或者说虚出来的一个实例,它会以一个独立网卡的形式呈现出来,每一个VF有它自己独享的PCI配置区域,并且可能与其他VF共享着同一个物理资源(公用同一个物理网口)

3. PF miniport driver即PF驱动是工作于Hyper-V虚拟化平台父区域的,并在VF之前最先加载

4. VF miniport driver即VF驱动是工作于Hyper-V虚拟化平台子区域的,即guestOS;需要注意的是,VF及PF之间是隔离的,任何经由VF驱动或所执行的结果都不会影响到其他的VF或PF

5. Network Interface Card即物理网卡,在启用SRIOV之后会生成若干vport,物理NIC所要做的就是转发physical port与vport之间的流量

6. physical port顾名思义就是物理网口,在SRIOV场景中physical port充当一个面向对外的网络媒介

7. VPort是个抽象出来的接口,类似于物理网口,它们被映射给每一个VF或者PF,供parentOS或guestOS来使用

 

通过以上架构的描述就可以看出,启用SRIOV之后,物理NIC将通过VF与虚拟机(VF driver)进行数据交互,反之亦然。那么这样一来即可跳过中间的虚拟化堆栈(即VMM层),以达到近乎于纯物理环境的性能;这一点也是SRIOV最大的价值所在,它有别于以往虚拟机通过仿真设备和虚拟化层进行流量传递的情况。

 

 

————————————————————————————

网络I/O虚拟化,SR-IOV技术

https://www.sdnlab.com/14403.html

 

高性能网络 SR-IOV机制--VF与PF的通信

https://www.cnblogs.com/bodhitree/p/7405219.html

 

虚拟化网卡

http://vinllen.com/xu-ni-hua-wang-qia/

 

 

 

SR-IOV 简介

https://blog.csdn.net/ZhipingXi/article/details/78814262

SR-IOV 技术是一种基于硬件的虚拟化解决方案,可提高性能和可伸缩性。

SR-IOV 标准允许在虚拟机之间高效共享 PCIe(Peripheral Component Interconnect Express,快速外设组件互连)设备,并且它是在硬件中实现的,可以获得能够与本机性能媲美的 I/O 性能。

SR-IOV 规范定义了新的标准,根据该标准,创建的新设备可允许将虚拟机直接连接到 I/O 设备。

SR-IOV 规范由 PCI-SIG 在 http://www.pcisig.com 上进行定义和维护。

 

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

 

下图介绍了针对 PCIe 硬件的 SR-IOV 技术。

图 21-1 SR-IOV 技术

 

SR-IOV 中的两种新功能类型是:

物理功能 (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。

 

SR-IOV 的优点

SR-IOV 标准允许在 IO 来宾域之间高效共享 PCIe 设备。

SR-IOV 设备可以具有数百个与某个物理功能 (Physical Function, PF) 关联的虚拟功能 (Virtual Function, VF)。

VF 的创建可由 PF 通过设计用来开启 SR-IOV 功能的寄存器以动态方式进行控制。

缺省情况下,SR-IOV 功能处于禁用状态,PF 充当传统 PCIe 设备。

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

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

 

 

 

初识SR-IOV

https://blog.csdn.net/zongyimin/article/details/77877378

SR-IOV即single root I/O virtualization - 单引导 I/O 虚拟化,这意味着opensatck不在需要网桥,而是把物理机nic的功能直接扩展到虚拟机实例中去。

 

SR-IOV 使一个单一的功能单元(比如,一个以太网端口)能看起来像多个独立的物理设备,即支持SR-IOV 功能的物理设备能被配置为多个功能单元。

 

SR-IOV 两种功能(function):

物理功能(Physical Functions,PF):这是完整的带有 SR-IOV 能力的PCIe 设备。PF 能像普通 PCI 设备那样被发现、管理和配置。

虚拟功能(Virtual Functions,VF):简单的 PCIe 功能,它只能处理I/O。每个 VF 都是从 PF 中分离出来的。每个物理硬件都有一个 VF 数目的限制。一个 PF,能被虚拟成多个 VF 用于分配给多个虚拟机。

 

Hypervisor 能将一个或者多个 VF 分配给一个虚机。在某一时刻,一个 VF 只能被分配给一个虚机。一个虚机可以拥有多个 VF。在虚机的操作系统看来,一个 VF 网卡看起来和一个普通网卡没有区别。SR-IOV 驱动是在内核中实现的。

 

 

 

SR-IOV的简单理解

https://blog.csdn.net/wangdd_199326/article/details/89950268

https://blog.csdn.net/tiantao2012/article/details/68941479

 

你可能感兴趣的:(云计算)