为提高服务器里虚拟机收发报文的性能和伸缩性,解决I/O虚拟化的最后一公里的问题,提出了基于硬件的SR-IOV虚拟化解决方案。SR-IOV标准允许在虚拟机之间高效共享PCIe(快速外设组件互连)设备,并且它是在硬件中实现的,可以获得能够与本机性能接近的I/O性能。

SR-IOV(Single-Root I/O Virtualization,单根 I/O 虚拟化)是 PCI-SIG 推出的一项标准,定义了一种 PCIe 设备虚拟化技术的标准机制,是 “虚拟通道” 的一种技术实现,用于将一个 PCIe 设备虚拟成多个 PCIe 设备,每个虚拟 PCIe 设备都具有自己的 PCIe 配置空间,如同物理 PCIe 设备一样为上层软件提供服务。

SR-IOV 技术是一种基于物理硬件的虚拟化解决方案,可以提高物理 I/O 设备(常见的是网络适配器)的性能与可扩展性。SR-IOV 技术允许在虚拟机之间高效共享 PCIe 设备,由于 SR-IOV 技术是基于硬件实现的,可以使虚拟机获得与宿主机媲美的 I/O 性能。

SR-IOV 虚拟出来的通道分为两个类型:

  • PF(Physical Function,物理功能):管理 PCIe 设备在物理层面的通道功能,可以看作是一个完整的 PCIe 设备,包含了 SR-IOV 的功能结构,具有管理、配置 VF 的功能。

  • VF(Virtual Function,虚拟功能):是 PCIe 设备在虚拟层面的通道功能,即仅仅包含了 I/O 功能,VF 之间共享物理资源。VF 是一种裁剪版的 PCIe 设备,仅允许配置其自身的资源,虚拟机无法通过 VF 对 SR-IOV 网卡进行管理。所有的 VF 都是通过 PF 衍生而来,有些型号的 SR-IOV 网卡最多可以生成 256 个 VF。

简而言之,每个 VF 就像是物理网卡硬件资源的一个切片,而 PF 则是对所有物理网卡硬件资源的统筹者,包括管理众多 VF 可以协同工作。

SR-IOV 的实现依赖硬件和软件两部分,首先,SR-IOV 需要专门的网卡芯片和 BIOS 版本,其次上层 Hypervisor 还需要安装相应的驱动。这是因为,只有通过 PF 才能够直接管理物理网卡的 I/O 资源和生成 VF,而 Hypervisor 要具备区分 PF 和 VF 的能力,从而正确地对网卡进行配置。

当 Hypervisor 识别出一个 VF 后,会通过 PF 来管理和配置 VF 的 I/O 资源。对于 Hypervisor 来说,VF 如同普通的 PCIe 网卡一般,安装相应驱动后就能够直接使用。假设一台服务器上安装了一个单端口 SR-IOV 网卡,这个端口生成了 4 个 VF,则 Hypervisor 就得到了四个以太网连接。

在 SR-IOV 的基础上,通过进一步利用 Intel VT-d 或 AMD IOMMU(Input/Output Memory Management Unit)技术,可以直接在虚拟机和 VF 之间做一对一的映射(PCI-Passthought)。在这个过程中,Hypervisor 的软件交换机被完全 Bypass 掉,从而实现低延时和近线速。同 VMware 的 VM DirectPath 相比,这种方式即实现了虚拟机对 VF 硬件资源的直接访问,又无需随着虚拟机数量的增加而增加物理网卡的数量。

缺省情况下,SR-IOV 网卡的 VF 处于禁用状态,此时 PF 充当传统的 PCIe 设备。一旦启用了 VF,PF 通过寄存器创建 VF,并通过 PF 的总线、设备和功能编号(路由 ID)访问各个 VF 的 PCIe 配置空间。每个 VF 都具有一个 PCIe 内存空间,用于映射其寄存器集。VF 设备驱动程序对寄存器集进行操作以启用其功能,并且显示为实际存在的 PCIe 设备。

Linux学习指南
有收获,点个在看

sriov网卡虚拟化到底是个啥?相关推荐

  1. SR-IOV 网卡虚拟化技术

    目录 文章目录 目录 SR-IOV SR-IOV passthrough 在 KVM 中启用 SR-IOV 网卡 手动挂载 VF 到虚拟机 指令方式挂载 SR-IOV 的数据包分发机制 SR-IOV ...

  2. linux加载虚拟sriov网卡,网卡直通SR-IOV技术

    相关技术 IO虚拟化简介 全虚拟化 通过VMM来模拟IO设备实现,VMM截获GuestOS的IO请求,通过软件模拟真实的硬件.VMM必须处理所有虚机的IO请求,然后将所有的IO情况序列化为可以被底层硬 ...

  3. linux加载虚拟sriov网卡,如何配置BroadCOM网卡的SR-IOV功能

    本案例中使用的服务器测试环境如下: 服务器:H3C R390X G2 操作系统:RHEL7.3 SR-IOV网卡型号:Brocadcom 530FLB (BCM57810芯片) 1.    首先在BI ...

  4. android 获取网卡mac_防亚马逊账号关联黑科技--如何修改我们的网卡MAC到底重要不?...

    大家好,我是跨境卫士的刘同学,各位搞跨境电商的大佬们估计都经常为亚马逊账号关联这种问题而苦恼吧,今天给大家带来一片技术分享. 如何修改我们的网卡MAC还有这个东东到底重要不? 啥是网卡mac呢? 网卡 ...

  5. vdi voi idv区别_VDI桌面虚拟化和IDV桌面虚拟化到底有哪些不同

    我们知道云桌面除了之前说到的共享云桌面之外,还有一种就是虚拟云桌面也就是我们所说的桌面虚拟化,而桌面虚拟化又可分为VDI和IDV桌面虚拟化两种实现方式,很多人就会问既然可分为VDI和IDV桌面虚拟化, ...

  6. kvm网卡虚拟化之vdpa技术

    1. 需求 虚拟机cpu加速有intel vt-x,memory加速有intel ept技术,剩下就是网络和存储io加速,io路径长,网络io路径是虚拟机virtio-ovs-vxlan-host内核 ...

  7. Intel x710万兆 SR-IOV 网卡驱动升级

    目录 文章目录 目录 环境 获取最新驱动 安装 环境 CentOS7 Intel x710 获取最新驱动 官方地址:https://downloadcenter.intel.com/zh-cn/pro ...

  8. OpenStack 的 SR-IOV 虚拟机热迁移

    目录 文章目录 目录 前言列表 前言 SR-IOV Pass-through 虚拟机热迁移的问题 基于 macvtap 层的 SR-IOV 虚拟机热迁移 Workaround SR-IOV Pass- ...

  9. 启用 SR-IOV 解决 Neutron 网络 I/O 性能瓶颈

    目录 文章目录 目录 前文列表 前言 Neutron 的网络实现模型 基于虚拟网络设备的虚拟机流量走向 基于虚拟网络设备的性能瓶颈 在 Neutron 中引入 SR-IOV 技术 基于 SR-IOV ...

最新文章

  1. Duilib界面库学习笔记
  2. lucene-solr本地调试方法
  3. div中插入图片_Web前端开发基础知识,设置网页背景图,如何在网页中插入图片...
  4. 如何解决创建Account时的error message BP category 2 does not fit the data in category 1
  5. Fedora20配置tftp服务器
  6. PyTorch1.2安装(Anaconda3 + Python3.6 + cpu版本)
  7. java 并发包脑图
  8. 4G DTU设备数据上传阿里云微信小程序获取阿里云设备数据
  9. win10系统pyCharm安装及最新2018激活码
  10. 外卖行业现状分析_2020餐饮外卖行业市场前景及现状分析
  11. Flutter Animation 3D仿真书本翻页动画效果
  12. 计算机毕业设计Java影片租赁系统(系统+程序+mysql数据库+Lw文档)
  13. PAT_乙级_1011_筱筱
  14. 如何找到win10系统当前使用的壁纸位置
  15. 14: PYCURL ERROR 6 - Couldn't resolve host 'mirro
  16. 可靠传输的原理:停止等待协议、ARQ协议;TCP协议的可靠传输
  17. jarvisoj_level0
  18. 机械和计算机分数线,东北大学通信,冶金,计算机,材料,机械历年分数线
  19. android手机网速,安卓手机网速慢怎么办 安卓手机网速慢解决办法【详解】
  20. emwin 使用外部字库_emWin – 汉字字库生成及显示 | 学步园

热门文章

  1. 爬虫取中间文本_小小爬虫批量抓取微信推文里的图片
  2. FreeCAD学习笔记——Mesh Scripting、Part Module和Code snippets
  3. 有“镜头感”的网页是如何实现的
  4. 嵌入式硬件工程师是什么?新手学习需要了解什么?
  5. 【数学】下一个更大元素
  6. 智慧政务说明书 人事管理(七)
  7. Hbuilder-h5打包APP
  8. 解读基思·斯坦诺维奇《超越智商》
  9. html页面禁止返回代码,多页面网站禁用浏览器后退键
  10. Ruoyi-Cloud框架学习-【06 新增业务项目】