前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SRIOV 单根虚拟化 技术汇总

SRIOV 单根虚拟化 技术汇总

原创
作者头像
ssbandjl
修改2024-01-05 17:21:22
1330
修改2024-01-05 17:21:22
举报
文章被收录于专栏:daosdaos

简介

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
    • 系统要求
      • InfiniBand
      • 术语
      • 参考
      • 晓兵(ssbandjl)
        • 晓兵技术杂谈(系列)
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档