当前位置: 首页 > news >正文

ubuntu22.04安装kvm、virt-manage并配置SR-IOV操作

一、安装KVM及相关组件

sudo apt update
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager

将用户加入libvirt组

sudo usermod -aG libvirt $USER
newgrp libvirt  # 刷新组权限(或重新登录)

二、启用IOMMU支持

  1. 编辑GRUB配置:
sudo vim /etc/default/grub
  • intel CPU:修改GRUB_CMDLINE_LINUX行:
GRUB_CMDLINE_LINUX="intel_iommu=on iommu=pt"
  • AMD CPU:
GRUB_CMDLINE_LINUX="amd_iommu=on iommu=pt"
  1. 更新GRUB并重启:
sudo update-grub
sudo reboot

三、验证IOMMU是否启用

dmesg | grep -i iommu
# 应看到类似 "IOMMU enabled" 的输出

四、配置SR-IOV虚拟功能(VF)

1.确认网卡支持SR-IOV

lspci -nn | grep -i ethernet
# 记录网卡的 PCI 地址(如 0000:02:00.0)
ethtool -i <网卡名> | grep driver
# 确认驱动支持 SR-IOV(如 ixgbe、i40e 等)

2.启动SR-IOV并创建VF

# 查看当前 VF 数量
cat /sys/class/net/<网卡名>/device/sriov_numvfs

# 临时创建 4 个 VF
echo 4 | sudo tee /sys/class/net/<网卡名>/device/sriov_numvfs

# 永久配置(以 Intel 驱动为例)
sudo nano /etc/modprobe.d/ixgbe.conf
# 添加:
options ixgbe max_vfs=4

3.确认VF已生成

ip link show
# 应看到类似 "vf 0" 的条目
lspci | grep Virtual
# 应列出 VF 的 PCI 设备

五、将VF绑定到vfio-pci驱动

# 安装 vfio-pci 驱动
sudo apt install vfio-pci

# 获取 VF 的 PCI ID(如 0000:02:10.0)
VF_PCI_ID="0000:02:10.0"

# 解绑原有驱动
echo $VF_PCI_ID | sudo tee /sys/bus/pci/devices/$VF_PCI_ID/driver/unbind

# 绑定到 vfio-pci
echo "vfio-pci" | sudo tee /sys/bus/pci/devices/$VF_PCI_ID/driver_override
echo $VF_PCI_ID | sudo tee /sys/bus/pci/drivers/vfio-pci/bind

六、使用virt-manager创建虚拟机

  1. 启动virt-manager:
virt-manager
  1. 新建虚拟机时,在 最后一步 勾选 Customize before install。

  2. 添加 PCI 设备:

  3. 点击 Add Hardware → PCI Host Device

  4. 选择对应的 VF 设备(如 0000:02:10.0)

  5. 确保虚拟机配置使用 Q35 芯片组和 UEFI(如 OVMF)。

七、验证虚拟机内的SR-IOV网卡

  1. 启动虚拟机后,检查网卡是否识别:
lspci | grep Ethernet
ip link show

2.配置网络(如静态IP或DHCP)
常见问题排查

  1. VF 未显示:
  • 检查 dmesg | grep -i sriov
  • 确认 BIOS 中启用 SR-IOV 和 VT-d/AMD-Vi
  1. 性能问题:
  • 启动 iommu=pt 减少开销
  • 检查IRQ分配是否均衡
  1. 权限问题:
  • 确保用户属于kvm 和 libvirt 组

相关文章:

  • Spring Boot 启动优化✨
  • TCP协议(Transmission Control Protocol)
  • Kubernetes控制平面组件:Kubernetes如何使用etcd
  • Python基础--计算机基础
  • 用于可靠工业通信的5G-TSN集成原型:基于帧复制与消除可靠性的研究
  • Pytorch使用手册-使用 PyTorch 和 TIAToolbox 进行全视野切片图像分类(专题十七)
  • 机器学习_18 K均值聚类知识点总结
  • el-tree选中数据重组成树
  • s1K 数据集:是一个用于提升语言模型推理能力的高质量数据集。包含 1,000 个问题,每个问题都配有详细的 推理路径 和 答案。
  • 共同性思考:数据标注研究与数据标注工作者 工作范式思考
  • MicroPython+ESP32:一.开发环境的搭建
  • 使用synchronized解决高并发场景
  • 线性模型 - 二分类问题的损失函数
  • 基于JAVA的流浪动物救助平台的设计与实现(LW+源码+讲解)
  • 14.学成在线开发小结
  • Python异步编程优雅实践
  • 安装 Docker Desktop 修改默认安装目录到指定目录
  • 机械学习基础-6.更多分类-数据建模与机械智能课程自留
  • Android Studio安装配置及运行
  • mysql 学习16 视图,存储过程,存储函数,触发器
  • 西班牙语 b2b网站开发/如何做推广呢
  • 网站代码开发/杭州网站优化多少钱
  • 做程序开发的网站/湖南seo服务电话
  • 一家只做性价比的网站/世界大学排名
  • 新网站如何做百度关键词/济南谷歌推广
  • 专业的网站开发公司/免费网站申请注册