美文网首页
KVM PCI设备直通

KVM PCI设备直通

作者: a11oy | 来源:发表于2021-06-24 23:24 被阅读0次

概念

虚拟化 intel VT-x AMD-V SVM
IO虚拟化 intel VT-d IOMMU
单根虚拟化 SRIOV

///PCI位置表示法
<domain>:<bus>:<device>.<function>
domain          0x0000  to  0xffff
bus             0x00    to  0xff
device          0x00    to  0x1f
function            0x0     to  0x7
///PCI设备标识符
<vendor>:<device>:<class>

启用IOMMU

BIOS启用VT-d(intel),IOMMU(AMD)

///linux cmdline配置

grub配置文件修改,添加iommu启动cmdline
opensuse rhel centos fedora
$ sudo vi /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="amd_iommu=on iommu=pt"   ///amd cpu添加
GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on iommu=pt"   ///intel cpu添加

更新grub.cfg文件
opensuse
$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
rhel centos fedora
$ sudo grub2-mkconfig -o /etc/grub2-efi.cfg   ///采用UEFI启动时,更新此文件
$ sudo grub2-mkconfig -o /etc/grub2.cfg    ///采用传统BIOS启动时,更新此文件

vfio纳管PCI设备

vfio等相关内核模块写入dracut配置文件,确保模块包含在initramfs中
$ sudo touch /etc/dracut.conf.d/vfio.conf    ///创建配置文件
$ sudo vi /etc/dracut.conf.d/vfio.conf     ///将以下一行写入配置文件
    add_drivers+=" vfio vfio_pci vfio_virqfd vfio_iommu_type1 "     ///注意引号之间需有空格

pci设备标识符查询
$ lspci -nn
09:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK110B [GeForce GTX TITAN Black] [10de:100c] (rev a1)
09:00.1 Audio device [0403]: NVIDIA Corporation GK110 High Definition Audio Controller [10de:0e1a] (rev a1)
10de:100c及10de:0e1a即标识符

vfio纳管
$ sudo touch /etc/modprobe.d/vfio-gpu.conf     ///在模块加载创建配置文件
$ sudo vi /etc/modprobe.d/vfio-gpu.conf     ///配置模块加载参数
       options vfio_pci ids=10de:100c,10de:0e1a      ///添加pci设备标识符,逗号隔开
///也可以直接添加cmdline, vfio_pci.ids=10de:100c,10de:0e1a

更新initramfs
$ sudo dracut -f

更新linux cmdline
GRUB_CMDLINE_LINUX_DEFAULT="rd.driver.pre=vfio_pci"     ///参照cmdline更新流程,添加vfio参数,其他不变

重启系统
$ sudo reboot

PCI设备验证

$ lspci -k
09:00.0 VGA compatible controller: NVIDIA Corporation GK110B [GeForce GTX TITAN Black] (rev a1)
    Subsystem: eVga.com. Corp. Device 3791
    Kernel driver in use: vfio-pci
    Kernel modules: nouveau
09:00.1 Audio device: NVIDIA Corporation GK110 High Definition Audio Controller (rev a1)
    Subsystem: eVga.com. Corp. Device 3791
    Kernel driver in use: vfio-pci
    Kernel modules: snd_hda_intel
///可以看到pci设备驱动程序为vfio,即配置完成,可透传给虚拟机使用

SRIOV

此技术主要是网卡设备支持,可将网卡虚拟成多个网卡设备给到虚拟机使用。

$ lspci     ///查看网卡所在pci位置编号
$ cat /sys/bus/pci/devices/0000:41:00.0/sriov_totalvfs    ///查看网卡支持的vf数量
$ echo 16 > /sys/bus/pci/devices/0000:41:00.0/sriov_numvfs   ///创建vf
vf可以pci直通方式给到虚拟机使用

相关文章

  • KVM PCI设备直通

    概念 虚拟化 intel VT-x AMD-V SVMIO虚拟化 intel VT-d IOMMU单根...

  • PCI设备驱动(二)

    Linux PCI设备驱动代码必须扫描系统中所有的PCI总线,寻找系统中所有的PCI设备(包括PCI-PCI桥设备...

  • Linux下移除和添加pci设备

    移除pci设备 重新添加pci设备

  • KVM + PCI Passthrough

    目前来说,GPU Passthrough需要主机有两张显卡,一张分给host,一张直通给虚拟机guest。我的电脑...

  • OpenStack配置PCI直通(PCI passthrough

    *azeqjz OpenStack: * 除OVS与硬直通SR-IOV外,还有PCI直通,即物理网卡给一个虚拟机网...

  • CUDA_DEVICE_ORDER 环境变量说明

    NVML工具nvidia-smi按设备的PCI Bus ID 为设备分配索引序号,由于PCI Bus ID 是硬件...

  • kvm 显卡直通

    参考:主要: https://mathiashueber.com/windows-virtual-machine-...

  • Linux命令

    lspci -tv 罗列 PCI 设备 lsusb -tv 显示 USB 设备 date 显示系统日期 cal 2...

  • PCIE-2

    PCI总线和设备树是X86硬件体系内很重要的组成部分,几乎所有的外围硬件都以这样或那样的形式连接到PCI设备树上。...

  • 关于PCIe

    PCI Express提供高速、高性能、点到点、双单工、串行、差分信号链路来互连设备。 PCI Express每条...

网友评论

      本文标题:KVM PCI设备直通

      本文链接:https://www.haomeiwen.com/subject/etvgyltx.html