kvm sr-iov 热插拔 简介

简介:

SR-IOV简介:(参考:http://docs.oracle.com/cd/E38902_01/html/E38873/glbzi.html)

我们知道vt-d功能可以进行设备直接分配,用以让虚拟机使用达到类似物理机性能的i/o设备,但是使用vt-d有个缺点:一个设备只能让一个客户机使用,所以有没有什么办法可以让设备性能的情况下,让多个虚拟机同时使用呢?这个就是

SR-IOV(single root i/o virtualization and sharing) 技术,图片来自书本《kvm虚拟化技术 原理和实战解析》

wKiom1hPkxXzm8BeAAFkci8aDi4137.png

sr-iov技术需要硬件设备的支持,它提供两种新功能类型:

物理功能(physical function pf):用于支持 SR-IOV 功能的 PCI 功能,如 SR-IOV 规范中定义。PF 包含 SR-IOV 功能结构,用于管理 SR-IOV 功能。PF 是全功能的 PCIe 功能,可以像其他任何 PCIe 设备一样进行发现、管理和处理。PF 拥有完全配置资源,可以用于配置或控制 PCIe 设备。

虚拟功能 (Virtual Function, VF):与物理功能关联的一种功能。VF 是一种轻量级 PCIe 功能,可以与物理功能以及与同一物理功能关联的其他 VF 共享一个或多个物理资源。VF 仅允许拥有用于其自身行为的配置资源。

简而言之,一个PF可以配置出多个VF,也可以自身作为一个完整资源提供给虚拟机使用。每个VF都有自己独立的配置空间(configuration space)和完整BAR(BASE ADDRESS REGISTER 基址寄存器),它是一个真正的独立的硬件资源。hypervisor把这些资源通过vd-x等硬件虚拟化技术绕过自身的软件交换机直接映射给客户机使用,可以把多个VF分配给不同的客户机,这样多个客户机就可以直接操作相同硬件资源

在kvm中,可以将一个或多个VF分配给一个客户机,客户机通过自身的VF驱动程序直接操作设备的VF而不需要kvm的参与。

SR-IOV使用(以网卡为例):

lspci -v -s $BDF  #查看Capability选项来确定设备是否支持$BDF功能,一般显示为Capabilities: [160] Single Root I/O Virtualization (SR-IOV)

modinfo igb #查看igb模块说明,PF使用不同驱动支持不同数量的VF,比如网卡驱动igb最多支持7,而ixgbe最多支持63,可以看到说明中的“ parm:           max_vfs:Maximum number of virtual functions to allocate per physical function (uint)”

lsmod igb

rmmod igb 

modprobe igb max_vfs=7  #要想开启vf功能需要在加载驱动是加上max_vfs参数

ls -l /sys/bus/pci/devices/$BDF #可以观察这里的链接来查看PF和VF的对应关系

echo -n "$vendID $deviceID"> /sys/bus/pci/drivers/pci-stub/new_id

echo $BDF >/sys/bus/pci/devices/$BDF/driver/unbind

echo $BDF > /sys/bus/pci/drivers/pci-stub/bind #隐藏设备,当然这里的BDF指的是VF的BDF 

qemu-system-x86_64  -m 2048 -smp 3 xp.qcow2  -device pci-assign,host=$BDF,id=mydev0,addr=0x6 -usb -usbdevice tablet #通过-device 参数分配设备给客户机

PCI设备的热插拔:

pci设备的需要BIOS、pci总线、客户机操作系统内核和驱动程序的支持。

将一个可热插拔设备添加到客户机只需要在monitor界面中,使用以下命令:

device_add pco-assign,host=$BDF,id=yourid    #id可以自定义

要删除,则使用:

device_del  yourid #即插入时的id











本文转自biao007h51CTO博客,原文链接: http://blog.51cto.com/linzb/1882245,如需转载请自行联系原作者




相关文章
|
存储 编解码 iOS开发
视频文件格式:MOV与MP4格式的区别是什么?
视频文件有多种格式,很多人在下载时不知道该选择哪种文件格式。不同格式有不同特点,各自有优缺点。本文将详细介绍常见的MOV和MP4的特点与区别,以供读者了解及选择。
11821 3
视频文件格式:MOV与MP4格式的区别是什么?
|
数据库 存储 关系型数据库
|
11月前
|
存储 人工智能 算法
大模型4-bit量化技术详解
本文系统阐述大语言模型的4-bit量化技术,深入解析GPTQ、AWQ等主流量化方法的原理与实现。通过详细的数学推导、代码实现和实验对比,展示4-bit量化如何将模型内存占用降低75%以上同时保持模型性能。文章涵盖量化感知训练、后训练量化、混合精度量化等关键技术,为开发者提供完整的模型压缩解决方案。
2270 7
|
存储 人工智能 编解码
Deepseek 3FS解读与源码分析(2):网络通信模块分析
2025年2月28日,DeepSeek 正式开源其颠覆性文件系统Fire-Flyer 3FS(以下简称3FS),重新定义了分布式存储的性能边界。本文基于DeepSeek发表的技术报告与开源代码,深度解析 3FS 网络通信模块的核心设计及其对AI基础设施的革新意义。
Deepseek 3FS解读与源码分析(2):网络通信模块分析
|
JavaScript 编译器 开发工具
【02】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-准备工具安装-编译器DevEco Studio安装-arkts编程语言认识-编译器devco-鸿蒙SDK安装-模拟器环境调试-hyper虚拟化开启-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【02】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-准备工具安装-编译器DevEco Studio安装-arkts编程语言认识-编译器devco-鸿蒙SDK安装-模拟器环境调试-hyper虚拟化开启-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
969 2
【02】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-准备工具安装-编译器DevEco Studio安装-arkts编程语言认识-编译器devco-鸿蒙SDK安装-模拟器环境调试-hyper虚拟化开启-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
|
存储 人工智能 固态存储
DeepSeek开源周第五弹之一!3FS:支撑V3/R1模型数据访问的高性能分布式文件系统
3FS是DeepSeek开源的高性能分布式文件系统,专为AI训练和推理任务设计,提供高达6.6 TiB/s的读取吞吐量,支持强一致性保障和通用文件接口,优化AI工作负载。
2295 2
DeepSeek开源周第五弹之一!3FS:支撑V3/R1模型数据访问的高性能分布式文件系统
|
人工智能 开发框架 算法
Qwen-Agent:阿里通义开源 AI Agent 应用开发框架,支持构建多智能体,具备自动记忆上下文等能力
Qwen-Agent 是阿里通义开源的一个基于 Qwen 模型的 Agent 应用开发框架,支持指令遵循、工具使用、规划和记忆能力,适用于构建复杂的智能代理应用。
13333 13
Qwen-Agent:阿里通义开源 AI Agent 应用开发框架,支持构建多智能体,具备自动记忆上下文等能力
|
API Python
Python制作gif动图
Python制作gif动图。更多内容请关注本人微信公众号:python学习杂记
524 0
|
SQL 关系型数据库 MySQL
postgresql|数据库|MySQL数据库向postgresql数据库迁移的工具pgloader的部署和初步使用
postgresql|数据库|MySQL数据库向postgresql数据库迁移的工具pgloader的部署和初步使用
2485 0