Proxmox VE(PVE)开启IOMMU功能实现硬件直通及直通错误解决

一、写在前面 

      什么是硬件直通(Passthrough) VT-d 、DirectPath I/O,通过 DirectPath I/O,虚拟机可以使用 I/O 内存管理单元访问平台上的物理 PCI 功能,就是俗称的虚拟化直通,简单理解就是允许宿主机将某些硬件资源的管辖权直接移交给虚拟机,虚拟机会以直通独占的方式使用硬件,宿主机将不能再使用此硬件,利用效率几乎等同于将硬件插到了虚拟机的主板扩展槽里一样,最实用的目的是避免了虚拟化平台自身软件层转换带来的效能下降。

        典型应用场景,例如在服务器上将某个物理网卡直接划给某台虚拟机使用,以达到几乎和物理机搭配物理网卡类似的网络性能。更可观的场景是,将磁盘控制器直通给虚拟机独占使用,那么虚拟机往往最瓶颈的磁盘性能,将得到非常可观的提升。

        我们在Proxmox VE(Proxmox Virtual Environment)PVE系统操作添加: PCI设备 硬件直通提示:No IOMMU detected, please activate it.See Documentation for further information.【翻译:未开启IOMMU,请设置开启激活,更多有关更多信息,请参阅文档。】

PVE系统添加PCI设备直通时提示:No IOMMU detected界面

是因为默认ProxmoxVE PVE系统只能支持硬盘、CPU型号直通。其他PCI硬件,例如:网卡 或者 核心显卡的直通,还需要开启IOMMU分组功能。

在Proxmox VE(PVE)系统开启IOMMU功能实现硬件直通之前,我们要确认CPU是否支持VT-D技术;

开启直通的必要条件 CPU支持VT-D,同时主板要开启VT-D支持。

二、查询CPU是否支持VT-D

1.点击进入Intel官方网站【https://www.intel.cn/】或 AMD 官方网站【AMD ׀ 同超越,共成就 _ 人工智能】,搜索对应处理器型号(例如:i7-7700【传送门】)

如果看到下图内容,则说明CPU支持VT-D技术

查询 Intel CPU是否支持VT-D

启用IOMMU功能

Intel CPU

对于Intel CPU,添加 intel_iommu=on,操作如下:

1、Shell 里面输入命令:nano /etc/default/grub

root@pve:~# nano /etc/default/grub

2、在里面找到:GRUB_CMDLINE_LINUX_DEFAULT="quiet"

然后修改为

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"

编辑完成后,使用快捷键 Ctrl + O 回车保存文件,Ctrl + X 退出编辑器。

3、使用命令 update-grub 保存更改并更新grub

root@pve:~# update-grub

4、更新完成后,使用命令 reboot 重启PVE系统

root@pve:~# reboot

从命令行运行 dmesg | grep -e DMAR -e IOMMU 如果没有输出,则说明有问题。

如果有,可基本确认这个过程顺利完成! 接下来就可以为虚拟机正常的添加硬件直通了。

AMD CPU

对于AMD CPU 添加 amd_iommu=on, 操作如下:

1、Shell 里面输入命令:nano /etc/default/grub

root@pve:~# nano /etc/default/grub

2、在里面找到:GRUB_CMDLINE_LINUX_DEFAULT="quiet"

然后修改为

GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on"

编辑完成后,使用快捷键 Ctrl + O 回车保存文件,Ctrl + X 退出编辑器。

3、使用命令 update-grub 保存更改并更新grub

root@pve:~# update-grub

4、更新完成后,使用命令 reboot 重启PVE系统

root@pve:~# reboot

从命令行运行 dmesg | grep -e DMAR -e IOMMU 如果没有输出,则说明有问题。

如果有,可基本确认这个过程顺利完成! 接下来就可以为虚拟机正常的添加硬件直通了。

增加虚拟化驱动,加载vifo系统模块

这仅在必要时启用IOMMU转换,将iommu分组相关的内核模块启用,从而可以提高VM中未使用的PCIe设备的性能。

然后是修改 /etc/modules 文件

root@pve:~# nano /etc/modules

添加如下内容

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

PVE系统添加PCI设备开启硬件直通界面 

如果按照此方法:ProxmoxVE 开启硬件直通 还设置无效,请再次检查自己的CPU支持VT-D技术。

注意:虚拟机进行直通操作时,取消勾选开机自启动的选项,这样哪怕直通错误,只需重启一下物理机就可以了,因为虚拟机没有自启的原因就不会直通,不会导致冲突无法开机使用。

如果出现PVE下的虚拟主机直通硬件时,不小心把PVE系统主机使用的网卡、硬盘或者是其他硬件直通了,又勾选了开机自启动的选项,导致无法进入PVE系统网页控制界面,重启后也是没用任何反应,多次重启后还是无法解决,请往下看。

扩展信息

您需要通过编辑内核命令行来启用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中的配置文件

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

GRUB(传统引导)

nano /etc/default/grub

或者 systemd-boot(UEFI)

nano /etc/kernel/cmdline

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

三、网卡直通错误,失联打不开解决方案,不用重新安装PVE

PS:四网口设备只能给3个直通PCI设备给虚拟机,管理口默认是最小数值得那个==
 


解决思路:

关闭虚拟机,不要虚拟机在PVE系统重启后自动启动,PVE重新启动成功后,到管理界面删除网卡直通

把PVE这台服务器,插上显示器,键盘,用管理员账户进入

1、查看虚拟机

qm list

输出显示

这里主要是 105 即虚拟机id

2、关闭虚拟机

qm stop 105


3、关闭虚拟机自动启动

qm set 105 -onboot 0


4、重启服务器

reboot

重启完成后,浏览器进入PVE管理界面,把虚拟机直通的网卡删除。

 

要在Proxmox VE (PVE) 平台上使用硬件直通技术安装群晖Synology DSM 7.0.1系统,首先需要确保你的硬件环境支持IOMMU或VT-d。硬件直通允许虚拟机直接访问物理硬件,这可以提高性能,尤其是对于诸如群晖DSM这样的专用系统。以下是详细的步骤: 参考资源链接:[PVE教程:在PVE上安装群晖DSM7.0.1系统步骤详解](https://wenku.csdn.net/doc/5jib7a3apo?spm=1055.2569.3001.10343) 1. **检查硬件支持**:访问主板或CPU制造商的官方网站,下载并安装最新的固件,确保BIOS或UEFI设置中启用了IOMMU或VT-d。 2. **安装PVE**:确保在安装PVE时没有禁用IOMMU或VT-d。通常,这是默认设置,但在安装过程中检查一下以确保。 3. **配置PVE**:登录到PVE管理界面,进入数据中心设置,找到主机的硬件选项卡,确认IOMMU或VT-d已经启用。 4. **创建群晖虚拟机**:在PVE中创建一个新的虚拟机时,选择操作系统类型为不适用任何介质,并且确保虚拟机ID为唯一的。之后,指定硬件类型,将需要直通的硬件(如GPU或特定的USB控制器)添加到虚拟机的PCI设备选项中。 5. **安装引导镜像**:上传群晖DSM的引导镜像到PVE的ISO存储库,并在创建虚拟机时选择该镜像作为启动介质。 6. **网络配置**:如果需要,设置网络直通,将物理网络接口直接分配给虚拟机,以确保最佳网络性能。 7. **启动虚拟机**:启动虚拟机后,根据群晖硬件直通的具体步骤完成安装。群晖DSM系统可能需要一些配置才能在硬件直通模式下正常工作。 8. **后续设置**:安装完成后,通过群晖DSM提供的管理界面进行进一步的配置和优化。 由于硬件直通涉及到底层硬件资源的直接控制,建议在操作前详细阅读群晖和PVE的相关文档,以及查看《PVE教程:在PVE上安装群晖DSM7.0.1系统步骤详解》来获取更详细的实战指导。掌握硬件直通技术不仅有助于提升群晖DSM系统的性能,也能让你在虚拟化技术方面更上一层楼。 参考资源链接:[PVE教程:在PVE上安装群晖DSM7.0.1系统步骤详解](https://wenku.csdn.net/doc/5jib7a3apo?spm=1055.2569.3001.10343)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值