跳到主内容
快讯直播
AI智模界
AI 词典

SR-IOV:把一块网卡切成几份,直接递给虚拟机

一句话定义:SR-IOV(Single Root I/O Virtualization,单根 I/O 虚拟化)是一项 PCIe 硬件标准:它能让一块物理网卡在硬件层面切分成多个“虚拟功能”,每个虚拟功能可以独立地直通给一台虚拟机,让虚拟机用接近裸机的速度收发数据。

它怎么做到的

关键在于两个角色:PF(Physical Function,物理功能)和 VF(Virtual Function,虚拟功能)。

PF 是网卡的“完整版”,由宿主机上的驱动管理,负责创建、配置、监控这些 VF;VF 则是精简版,只保留收发数据必需的配置空间、内存映射和中断,没有管理能力,也不能随便乱配。网卡芯片里有一层硬件分流逻辑,会按 VF 编号把进出流量分好,谁的就给谁,不需要软件逐个转发。

虚拟机拿到 VF 后,配合 IOMMU(Intel VT-d、AMD-Vi 这类地址重映射硬件),可以安全地直接操作这块“小网卡”,数据路径上完全绕开宿主机里的虚拟交换机。

打个比方:过去虚拟机的网络流量像快递先送到小区驿站(软件虚拟交换机),再由保安挨家挨户送,件多的时候保安就忙不过来了;SR-IOV 相当于给每户人家单独接一条从大门直通到家的管道,快递直接从管道进来,保安只管开门和登记。

和相邻概念的区别

这几个词经常被混着用,区别在于“谁来切、切得多细”:

方案数据路径性能代价
模拟网卡(emulated NIC)全软件模拟低兼容性最好,CPU 开销大
virtio(半虚拟化)经软件虚拟交换机中高支持热迁移、限速、抓包等
PCI 直通(passthrough)硬件接近裸机一块卡只能给一台虚拟机
SR-IOV硬件切分 VF接近裸机一块卡给多台虚拟机,但 VF 数量有限

VF 的个数由网卡型号和固件决定,通常是几十个量级,具体以厂商文档为准。

和 GPU 直通、MIG 是同一思路

这条思路可以概括为“硬件切分”:与其用软件去模拟或轮转,不如让硬件本身支持分身。GPU 上也有一模一样的三种做法:整卡直通(passthrough,一卡一虚拟机)、MIG(Multi-Instance GPU,把一块 GPU 切成若干实例,各自有独立显存和算力)、以及部分新 GPU 开始支持的 SR-IOV 能力。网卡、GPU、甚至 NVMe 盘,走的都是同一个方向:把切分这件事下沉到硬件,把 CPU 从搬运数据里解放出来。

对实际工作意味着什么

对 AI 从业者:多机分布式训练对网络延迟和带宽极其敏感,用 RDMA(RoCE 或 InfiniBand)做梯度同步时,如果训练跑在虚拟机里,SR-IOV 几乎是让网络性能不掉档的必备项。选云上 GPU 实例时,“是否支持 SR-IOV”“是否支持 RDMA”比 CPU 型号更值得先确认。

对普通职场人:它解释了为什么有些云服务器标着“网络增强型”就贵一截,也解释了为什么某些虚拟机不支持在线迁移。SR-IOV 的 VF 和物理位置绑得比较紧,传统上热迁移困难,需要靠厂商方案或退回 virtio 过渡。所以“性能”和“灵活性”在云上常常是一道选择题,而不是白送的。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。