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
看看也很简单,说说注意的地方:- VMX和SVM
Bios和UEFI去打开VT-D和AMD-V - IOMMU
IOMMU(I/O Memory Management Unit)。其有两大功能:
- VMX和SVM
- 控制设备DMA地址映射到机器物理地址(DMAR)
- 中断重映射(IntreMap)(可选)
确认内核是否支持IOMMUcat /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直通配置的主要内容,如果未能解决你的问题,请参考以下文章