CentOS下KVM虚拟机USB和GPU直通配置

Posted t_huanghai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS下KVM虚拟机USB和GPU直通配置相关的知识,希望对你有一定的参考价值。

关于直通方面的配置有很多讲解,此处只是我个人自己总结笔记下。

背景

一工作站笔记本配N卡,USB外接一个其它设备,7x24运行(真是一时用一时爽,一直用...),严谨的工程实现真对他们是不用考虑的:(。

环境

  • 宿主机CentOS7(本想用8的,由于一些其它因素妥协了)
  • 虚拟机Windows2016
  • 直通宿主机的USB3.0和PCIe的GPU卡

    实现

    其实过程很简单,配置也比较傻瓜,只是有个别的地方需要注意。

    1.安装带图形界面的KVM虚拟化环境(命令行的大佬略过)

    sudo yum install libvirt virt-manager

    这台服务器本来就要开启vnc远程链接服务器,提供经典的gnome桌面,所以用的桌面环境下的virt-manager,当然没有vnc需求的搞个cockpit更好。

    配置USB直通

    除了选对需要的USB设备,另外要注意USB控制器的类型,CentOS7下的virt-manager默认的虚拟机是2.0的,刚好我这次是3.0的设备,所以需要更改设置Edit->Virtual Machine Details->Controller USB 0。

    配置GPU直通

    先来个Nvidia官网查考
    https://docs.nvidia.com/grid/5.0/grid-vgpu-user-guide/index.html#using-gpu-pass-through-red-hat-el-kvm-virt-manager
    看看也很简单,说说注意的地方:

    1. VMX和SVM
      Bios和UEFI去打开VT-D和AMD-V
    2. IOMMU
      IOMMU(I/O Memory Management Unit)。其有两大功能:
  • 控制设备DMA地址映射到机器物理地址(DMAR)
  • 中断重映射(IntreMap)(可选)
    确认内核是否支持IOMMU
    cat /proc/cmdline | grep iommu

    有输出则正常,如果没有输出,将intel_iommu=on添加到grub启动文件当中

    
    sudo vim /etc/default/grub

...
GRUB_CMDLINE_LINUX="intel_iommu=on crashkernel=auto spectre_v2=retpoline rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"
...

重新生成内核

sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

再次验证

cat /proc/cmdline | grep iommu


如果不行试试重启主机

以上是关于CentOS下KVM虚拟机USB和GPU直通配置的主要内容,如果未能解决你的问题,请参考以下文章

centos7下配置vlan+kvm虚拟机

Nvidia GPU 直通失败,代码为 43

爱快虚拟机安装openwrt要网卡直通吗

如何给运行的kvm虚拟机做快照

CentOS 6.9下KVM虚拟机网络Bridge(网桥)方式与NAT方式详解(转)

CentOS 6.9下KVM虚拟机快照创建删除恢复(转)