摘要:SR-IOV(Single Root I/O Virtualization)是PCIe规范定义的硬件级虚拟化技术,允许单个物理设备(PF)虚拟出多个虚拟功能(VF),每个VF可独立分配给不同虚拟机。本文从SR-IOV架构出发,详解PF/VF的关系、VF的资源分配机制、Migration与Live Migration的实现挑战,以及在NFV/云场景下的实际应用案例。
────────────────────────────────────────────────────────────
1. SR-IOV核心概念
传统虚拟化中,VM访问PCIe设备需要Hypervisor介入(软件模拟或直通),存在性能开销。SR-IOV通过硬件虚拟化,让VM直接访问设备,接近原生性能。
1.1 PF与VF的关系
实体 | 全称 | 数量 | 功能 |
PF | Physical Function | 1个 | 管理设备、配置VF、全局控制 |
VF | Virtual Function | 1~数百个 | 独立的数据通路,可直通给VM |
- PF拥有完整的配置空间和管理能力,负责创建/销毁VF
- VF是轻量级功能单元,拥有独立的配置空间(但能力受限)
- VF之间硬件隔离,互不影响
- 每个VF有独立的BDF号,可被系统独立枚举
1.2 SR-IOV Extended Capability
SR-IOV通过PCIe Extended Capability结构暴露能力(Capability ID = 0x10):