Nvidia显卡Libvirt虚拟机PCI pass through配置

宿主机设置

首先需要在宿主机启用VFIO和SR-IOV功能。通过如下方式启用, 具体操作需要参考对应操作系统的说明

  1. 对于Intel宿主机,需要在启动选项GRUB中添加参数intel_iommu=on
  2. 设置Kernel模块vfio_pci为启动状态
    在/etc/modules-load.d/中新建文件vfio_pci.conf,内容为
vfio_pci
  1. 重新启动系统
  2. lsmod | grep vfio验证安装情况,应该能看到如下内容
vfio_pci               40960  0 
vfio_iommu_type1       20480  0 
vfio_virqfd            16384  1 vfio_pci
vfio                   32768  2 vfio_iommu_type1,vfio_pci
irqbypass              16384  2 kvm,vfio_pci

Libvirt设置

  1. 获取NVIDIA显卡设备
 lspci | grep NVIDIA

案例中为85:00.0和86:00.0

$ lspci | grep NVIDIA
 85:00.0 VGA compatible controller: NVIDIA Corporation GM204GL [Tesla M60] (rev a1)
 86:00.0 VGA compatible controller: NVIDIA Corporation GM204GL [Tesla M60] (rev a1)
  1. 获取PCI设备全名代号
$ virsh nodedev-list --cap pci| grep 85_00_0  # 替换上述冒号为下划线
pci_0000_85_00_0
  1. 获取PCI设备domain,bus,slot,function
$ virsh nodedev-dumpxml pci_0000_85_00_0| egrep 'domain|bus|slot|function'
    <domain>0x0000</domain>
    <bus>0x85</bus>
    <slot>0x00</slot>
    <function>0x0</function>
      <address domain='0x0000' bus='0x85' slot='0x00' function='0x0'/>
  1. 设置虚拟机
$ virsh edit <vm-name>
在xml <devices>节点中插入如下内容:
<hostdev mode='subsystem' type='pci' managed='yes'>
  <source>
    <address domain='0x0000' bus='0x85' slot='0x00' function='0x0'/>
  </source>
</hostdev>
  1. 启动虚拟机
virsh start vm-name
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 简介 本文档包含DPDK软件安装和配置的相关说明。旨在帮助用户快速启动和运行软件。文档主要描述了在Linux...
    半天妖阅读 18,043评论 0 22
  • 1. 什么是虚拟化和迁移 什么是虚拟化 “虚拟化 ”是一个描述运行软件的广义计算机术语,通常体现为在单一系统上运行...
    王鸣南曲阅读 9,645评论 0 6
  • 在 QEMU/KVM 中,客户机可以使用的设备大致可分为三类: 1. 模拟设备:完全由 QEMU 纯软件模拟的设备...
    51reboot阅读 7,890评论 0 6
  • 虚拟化技术概览KVM简介KVM的管理操作 一、虚拟化技术概览 (一)虚拟化技术类型: 主机虚拟化:xen, kvm...
    哈喽别样阅读 5,867评论 0 5
  • 执行Shell脚本的方式 范例1:输入重定向到bash 可以读入test.sh中的程序,并执行。 范例2:以脚本名...
    liuqinh2s阅读 2,532评论 0 0