SRIOV 单根虚拟化 技术汇总

简介

SRIOV虚拟机架构

虚拟化中,单根输入/输出虚拟化(SR-IOV) 是一种出于可管理性和性能原因允许隔离PCI Express资源的规范

可以使用 SR-IOV 规范在虚拟环境中共享单个物理PCI Express总线。SR-IOV 为物理服务器上的不同虚拟组件(例如网络适配器)提供不同的虚拟功能。SR-IOV 使用物理和虚拟功能来控制或配置 PCIe 设备。物理功能能够将数据移入和移出设备,而虚拟功能是轻量级 PCIe 功能,支持数据流动,但也具有一组有限的配置资源。虚拟机管理程序或来宾操作系统可用的虚拟或物理功能取决于 PCIe 设备

SR-IOV 允许虚拟环境中的不同虚拟机(VM) 共享单个PCI Express硬件接口。相比之下,MR-IOV 允许 I/O PCI Express 在不同物理机上的不同 VM 之间共享资源。

VF 的分配可以由 PF 通过封装在功能中的寄存器动态控制。默认情况下,此功能未启用,并且 PF 的行为与传统 PCIe 设备相同。一旦开启,每个VF的PCI配置空间都可以通过自己的总线、设备和功能号(路由ID)来访问。并且每个VF还有PCI Memory Space,用于映射其寄存器组。VF 设备驱动程序在寄存器组上运行,因此它可以正常工作并显示为真实的现有 PCI 设备

单根 IO 虚拟化 (SR-IOV) 是一项允许物理 PCIe 设备通过 PCIe 总线多次呈现自身的技术。该技术支持具有独立资源的设备的多个虚拟实例。NVIDIA 适配器能够为 NVIDIA ConnectX® 系列卡中的每个端口提供多达 127 个虚拟实例(虚拟功能 (VF))。然后可以单独配置这些虚拟功能。每个 VF 都可以视为连接到物理设备的附加设备。功能。它与物理功能共享相同的资源,并且其端口数量等于物理功能的端口数量。SR-IOV 通常与启用 SR-IOV 的虚拟机管理程序结合使用,以提供虚拟机对网络资源的直接硬件访问

SR-IOV需要软硬件支持, 可参考如下的Nvidia方案, 使用 ConnectX® VPI 适配器卡在 Red Hat Linux 环境中设置和配置 SR-IOV。

系统要求

要设置 SR-IOV 环境,需要满足以下条件:

  • MLNX_OFED 驱动程序
  • 具有支持 SR-IOV 的主板 BIOS 的服务器/刀片式服务器
  • 支持 SR-IOV 的虚拟机管理程序,例如:Red Hat Enterprise Linux Server 版本 6
  • 具有 SR-IOV 功能的 NVIDIA ConnectX® VPI 适配器卡系列

InfiniBand

SR-IOV 的主要应用领域是高性能计算(HPC)。高性能InfiniBand网卡的使用在 HPC 领域不断增长,并且早期研究了 SR-IOV 的使用,以允许在Xen等虚拟机中使用 InfiniBand

术语

VGT+ 是虚拟访客标记 (VGT) 的高级模式, Virtual Guest Tagging

VLAN Switch Tagging (VST): VLAN交换标签

VMM: 虚拟机监视器

参考

深入理解SR-IOV和IO虚拟化: http://www.uml.org.cn/embeded/202207051.asp

微软-单根 I/O 虚拟化 (SR-IOV) 简介: https://learn.microsoft.com/zh-cn/windows-hardware/drivers/network/single-root-i-o-virtualization--sr-iov-

vmware虚拟化: https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-networking/GUID-CC021803-30EA-444D-BCBE-618E0D836B9F.html

Nvidia虚拟化(实战/分配SR-IOV): https://docs.nvidia.com/networking/display/mlnxofedv581011/single+root+io+virtualization+(sr-iov)

内核虚拟化指南(使用/开启/): https://docs.kernel.org/PCI/pci-iov-howto.html

FPGA 虚拟化 - PCIe SRIOV(FPGA设备功能列表DFT): https://docs.kernel.org/fpga/dfl.html

Kubernetes 中的高性能容器化应用程序(k8s与sriov): https://dramasamy.medium.com/high-performance-containerized-applications-in-kubernetes-f494cef3f8e8

晓兵(ssbandjl)

博客: https://cloud.tencent.com/developer/user/5060293/articles | https://logread.cn | https://blog.csdn.net/ssbandjl

晓兵技术杂谈(系列)

https://cloud.tencent.com/developer/user/5060293/video

DAOS汇总: https://cloud.tencent.com/developer/article/2344030

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值