抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

默认ProxmoxVE 只能支持硬盘、CPU型号直通。其他PCI硬件 或者 核心显卡的直通,还需要开启IOMMU分组功能

操作PCI直通提示:

No IOMMU detected, please activate it.See Documentation for further information.

一、开启直通

PCI直通允许您使用VM内的物理PCI设备(图形卡,网卡)(仅KVM虚拟化)。

如果“ PCI直通”设备,则该设备不再对主机可用。

注意:

PCI直通是Proxmox VE中的一项实验功能*

1.启用IOMMU

您需要通过编辑内核命令行来启用IOMMU 。

首先打开grub的bootloader内核命令行配置文件:

编辑内核命令行
您可以在以下位置修改内核命令行,具体取决于所使用的引导程序

Grub
内核命令行需要在文件/etc/default/grub中放置
GRUB_CMDLINE_LINUX_DEFAULT变量
然后 运行 update-grub将其内容附加到/boot/grub/grub.cfg中的所有linux条目中

Systemd-boot
内核命令行需要在/etc/kernel/cmdline中放置
要应用更改,请运行pve-efiboot-tool refresh
将其设置为loader/entries/proxmox-*.conf中的配置文件

2.打开grub的bootloader内核命令行配置文件:

GRUB(传统引导)

1
nano /etc/default/grub

或者 systemd-boot(UEFI)
1
nano /etc/kernel/cmdline

对于GRUB: 找到带有“ GRUB_CMDLINE_LINUX_DEFAULT”的行
对于systemd-boot(UEFI)创建用于systemd-boot的文件(格式为带有选项的单行)

Intel CPU

对于Intel CPU,添加intel_iommu=on,例如:

1
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on" 

保存更改并更新grub:
1
update-grub

或systemd-boot(UEFI):
1
pve-efiboot-tool refresh

然后重新启动宿主机,从命令行运行
1
dmesg | grep -e DMAR -e IOMMU

如果没有输出,则说明有问题。

AMD CPU

对于AMD CPU 添加amd_iommu=on, 例如:

1
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on" 

更改并更新grub:
1
update-grub

或systemd-boot(UEFI):
1
2
pve-efiboot-tool refresh


然后重新启动宿主机,从命令行运行
1
dmesg | grep -e DMAR -e IOMMU

如果没有输出,则说明有问题。
1
update-initramfs -u -k all

3.PT模式

Intel和AMD芯片都可以使用附加参数 iommu=pt, 该参数的添加方法与上述相同

这仅在必要时启用IOMMU转换,从而可以提高VM中未使用的PCIe设备的性能.

4.修改/etc/modules文件

1
nano /etc/modules

添加如下内容

1
2
3
4
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

二、GPU 直通

N卡非vGPU系列 都是禁止虚拟化的,所以在Proxmox下需要现在宿主机内黑名单显卡确保没有任何的加载,接下来直通给VM还需要设置为主GPU以确保和VM一起开机加载。

直通 黑名单 参考 https://pve.proxmox.com/wiki/Pci_passthrough#GPU_Passthrough

1.识别显卡型号

打开终端,通过执行以下命令识别您的Nvidia图形卡型号

1
lspci | grep -i nvidia

输出
1
2
00:08.0 3D controller: NVIDIA Corporation GP100GL [Tesla P100 PCIe 16GB] (rev a1)
00:09.0 3D controller: NVIDIA Corporation GP100GL [Tesla P100 PCIe 16GB] (rev a1)

2.查找驱动程序

使用基于您的Nvidia卡型号和Linux操作系统的搜索条件
nvidia.com下载Nvidia驱动程序包
-w1326

3.安装编译环境

接下来,安装软件包前提条件,以成功编译和安装Nvidia驱动程序。

1
2
dnf groupinstall "Development Tools" -y
dnf install libglvnd-devel elfutils-libelf-devel -y

4. 永久禁用nouveau驱动程序:

1
2
3
4
5
6
7
8
9
10
#新建一个配置文件
sudo vim /etc/modprobe.d/blacklist-nouveau.conf
#sudo vim /usr/lib/modprobe.d/dist-blacklist.conf #上面的的命令最后失败的话使用这个

#写入以下内容
blacklist nouveau
options nouveau modeset=0

#保存并退出
:wq
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#备份当前的镜像
sudo mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak

#建立新的镜像
sudo dracut /boot/initramfs-$(uname -r).img $(uname -r)

#重启
sudo reboot

#最后输入上面的命令验证
lsmod | grep nouveau

#如果还不行可以尝试下面的命令再重启:
sudo dracut --force

5.安装显卡驱动

1
2
chmod +x NVIDIA-Linux-x86_64-390.48.run
sh NVIDIA-Linux-x86_64-390.48.run

可能会出现以下warning:

1
WARNING: nvidia-installer was forced to guess the X library path '/usr/lib' and X module path '/usr/lib/xorg/modules'; these paths were not queryable from the system.  If X fails to find the NVIDIA X driver module, please install the `pkg-config` utility and the X.Org SDK/development package for your distribution and reinstall the driver.

忽略不管。接下来一路yes

检测显卡是否安装成功:

1
nvidia-smi

评论