1. PVE硬件直通

主要是为了直通HDD,让黑群晖能够直接访问硬盘,查看硬盘的详细信息,而不需要通过虚拟化技术才能间接访问。
当然,也可以直通网卡,而不再使用虚拟的virto或者E1000网卡

[本文图片均存在github上,如无法正常加载请用科学上网工具或者更改hosts, 更改host参考https://blog.csdn.net/ClownFeilong/article/details/111643164]

1.1. 提前准备

  • 开启VT-x
    这个没有问题,玩虚拟化肯定是需要开的,不然只能QEMU,不能KVM加速
  • 开启VT-d
    VT-d技术是Intel硬件虚拟化技术,支持将PCI通道的硬件直接交给KVM虚拟机使用,从而提高PCI硬件虚拟化的效率。(不同主板BIOS开启VT-d的地方不一样)

1.2. 更改PVE Grub和内核参数

一般需要更改两个地方

  • 第一个为grub引导
vi /etc/default/grub
#intel的的CPU这样写
    GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
#amd的CPU这样写
    GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on"

其实就是加入了iommu开启这个选项

更改完成后,更改grub

update-grub
  • 第二个为PVE内核模块
vi /etc/modules

添加这些内核模块进去(直接粘贴进去就好)

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

作用也是显而易见,就是将这些iommu分组相关的内核模块启用

做完这些后,重启PVE

1.3. 硬件直通使用

正常情况下,在虚拟机页面添加硬件,选择PCI,就不会跳出黄色的框再显示iommu未开启了

如下图所示:

如何直通硬盘:

有的主板这边点开设备后 不显示PCI ID和设备的对应关系,没有关系,直接进shell看SATA总线对应的是哪个PCI即可

lspci

这里就非常明显了,可以看到板载的SATA总线对应的PCI通道为00.17.0,所以在刚刚的Web界面直通这个就好。

直通成功后,在节点的硬盘界面便看不到HDD的信息了。

1.4. 其他

  • 通常情况下,直通之后,如果PVE不重启,那么PVE就再也不能获得此条PCI通道的使用权。
  • 有可能会遇到IOMMU虽然直通了但是分组不合理或者都挤在一个分组的情况,比如华擎J3455 itx这块神奇的板子,可能需要加入其他grub参数甚至还需要重新安装PVE内核才行,这里就不先赘述了,可查看其他教程)
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐