具有多个 GPU 的 LXD

具有多个 GPU 的 LXD

这是我第一次使用 LXD,我的目标是托管三台虚拟机,每台虚拟机都配备专用 GPU。我能够将任意一台 GPU 传递给客户虚拟机 (Windows),但是当我启动第二台拥有自己 GPU 的虚拟机时,服务器会在大约 30 秒后锁定。通常,我会查阅日志以尝试彻底解决此问题,但是,我要么没有在正确的地方查找,要么系统在到达日志记录点之前就锁定了。当系统锁定时,除了按住电源按钮之外,没有其他方式可以与其交互。

  • 我已在 BIOS 中将 CPU 配置为支持 IOMMU 功能
  • 我已在 GRUB 启动配置中启用了 IOMMU 功能
  • 我已经确认每个 GPU 都在自己的 IOMMU 组中,并且 CPU 确实支持 IOMMU。
  • 我已经将 GPU 的驱动程序配置为在启动时使用 VFIO-PCI,以消除驱动程序切换时的任何问题。
  • 我一直在关注/var/log/messages/var/log/dmesg
  • 监控top似乎没有指出任何特定进程占用了所有的 CPU
  • 我已经将哪些设备分配给了哪些虚拟机,但似乎并没有解决问题。
  • 我可以同时运行两个虚拟机如果消除其中一个的 GPU 分配。
  • 我正在为虚拟机使用唯一的 PCI 地址。
  • 我正在通过 Web UI 启动虚拟机。

操作系统:Ubuntu Server 22.04,此之前全新安装,所有软件包均已更新。

CPU:2 个 Intel(R) Xeon(R) CPU E5-2697 v3

GPU:3x NVIDIA Quadro RTX 4000

机箱:CSE-118 Supermicro

我的直觉是与 IOMMU 组或 qemu 中的某种配置有关,但我还没有尝试过。也许我需要为每个 VM 分配特定的 CPU 核心,以便将组分配分配给同一个 CPU(我甚至不确定如何做到这一点)?此时,我很高兴能得到一些错误日志,这样我就可以有所参考。


我参考过的指南:

相关内容