直通显卡
-
进入BIOS打开
IOMMU/VT-d(Input-Output Memory Management Unit,输入输出内存管理单元) -
配置PVE的grub(
nano /etc/default/grub)找到
GRUB_CMDLINE_LINUX_DEFAULT="quiet“这一行 将其改为GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt video=efifb:off "
quiet: 减少启动过程中输出到屏幕的日志信息intel_iommu=on: 启用 Intel 的 IOMMU,如果是amd,则应为amd_iommu=oniommu=pt: 启用 “pass-through”(直通)模式的 IOMMUvideo=efifb:off: 禁用 EFI framebuffer(efifb),防止 EFI framebuffer 占用显卡资源
-
指定在系统启动时需要加载的内核模块
在
/etc/modules中添加以下内容
vfio vfio_iommu_type1 vfio_pci vfio_virqfd
vfio: 提供 VFIO(Virtual Function I/O,虚拟功能 I/O)的基础功能,为用户空间程序(如 QEMU)提供了对 PCI 设备的直接控制接口,它通过/dev/vfio提供设备节点,可以通过这些节点与物理设备交互。vfio_iommu_type1: 实现了 VFIO 的 IOMMU 支持vfio_pci: 提供了对 PCIe 设备直通 的支持vfio_virqfd: 提供虚拟机中断处理的支持,将物理设备的中断虚拟化,使虚拟机可以以高效、安全的方式处理中断
-
配置VFIO
输入
lspci -nn,得到类似以下内容,获取设备ID00:02.0 VGA compatible controller [0300]: Intel Corporation Alder Lake-P Integrated Graphics Controller [8086:46d6] (rev 0c)01:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU117GLM [Quadro T400 Mobile] [10dg:1fa2] (rev a1)将 设备ID(10dg:1fa2)和 音频ID (10dg:10fd) 写入到 /etc/modprobe.d/vfio.conf
options vfio-pci ids=10dg:1fa2,10dg:10fd -
屏蔽显卡驱动,不让PVE使用
在/etc/modprobe.d/pve-blacklist.conf中加入如下内容
# Nvidia blacklist nvidiafb blacklist nouveau blacklist nvidia
# AMD blacklist amdgpu blacklist radeon- 使配置文件生效
update-initramfs -u update-grub-
重启PVE系统
-
给需要的虚拟机添加PCI设备
直通硬盘
truenas直通硬盘有两种方式
-
直通SATA硬盘
-
直通SATA controller
直通SATA硬盘
-
查看自己的硬盘id
ls -i /dev/disk/by-id -
直通硬盘
qm set {虚拟机id} --{挂载的格式} /dev/disk/by-id/{硬盘id}挂载格式有:
-
sata
-
scsi
-
iden(n属于0-3的数字,例如ide3)
-
直通SATA Controller(未实践)
-
同直通显卡的1、2、3、4步骤
-
在
/etc/modprobe.d/pve-blacklist.conf中加入如下内容Terminal window # ahciblacklist ahci -
使配置文件生效
Terminal window update-initramfs -uupdate-grub -
重启PVE系统
-
给需要的虚拟机添加PCI设备
\