如何在Proxmox VE 8虚拟机上启用VirtIOGL/VirGL 3D加速

VirtIO-GL/VirGL是KVM/QEMU/libvirt管理程序的一个特性,用于为KVM/QEMU/libvirt虚拟机提供3D加速功能。3D加速允许虚拟机(安装了图形用户界面)使用主机的GPU,使图形用户界面响应更快,能够运行3D生产力软件或游戏。

Proxmox VE的虚拟机使用KVM/QEMU/libvirt技术。从Proxmox VE 8开始,您可以在Linux虚拟机上使用VirtIO-GL/VirGL 3D加速,以获得更好的图形用户体验。

在本文中,我们将向您展示如何在Proxmox VE 8虚拟机上启用VirtIO-GL/VirGL 3D加速。

内容主题:

  1. 安装Proxmox VE的图形处理器驱动
  2. 在Proxmox VE 8上安装VirtIO-GL/VirGL 3D加速所需的库
  3. 在Proxmox VE 8虚拟机上启用VirtIO-GL/VirGL GPU 3D加速
  4. 在Proxmox VE虚拟机上测试VirtIO-GL/VirGL GPU 3D加速是否正常工作
  5. 结论

安装Proxmox VE的图形处理器驱动

要使VirtIO-GL/VirGL 3D加速在Proxmox VE 8上工作,您必须具备以下条件:

  • Proxmox VE 8服务器上已安装的GPU
  • 在Proxmox VE 8服务器上安装了GPU驱动程序

如果您的Proxmox VE 8服务器配置了Intel的iGPU(集成GPU),则默认安装Intel的GPU驱动程序。你不需要任何人工干预。

如果您的Proxmox VE 8服务器上有NVIDIA GPU,并且您想将其用于VirtIO-GL/VirGL,则必须手动下载NVIDIA GPU驱动程序并将其安装在Proxmox VE 8服务器上。如果您在Proxmox VE 8服务器上安装NVIDIA GPU驱动程序时需要任何帮助,请阅读本文。

如果Proxmox VE 8服务器使用的是AMD的GPU,可能还需要在Proxmox VE 8服务器上安装相应的GPU驱动程序。我们没有AMD的GPU。我们还没有测试过。但如果你使用的是AMD APU(集成GPU的AMD处理器),就我们所知,GPU驱动程序应该默认安装。如果有机会进行测试,我们将更新本文。

在Proxmox VE 8上安装VirtIO-GL/VirGL 3D加速所需的库

为了使VirtIo-GL/VirGL 3D加速在Proxmox VE 8虚拟机上工作,您必须在Proxmox VE 8服务器上安装LibEGL和libGL库。libGL和libGL库可以在Proxmox VE 8的官方包存储库中获得。所以,它们很容易安装。

首先,进入“Datacenter > pve > Shell”,进入Proxmox VE 8服务器的Proxmox VE Shell,执行以下命令更新Proxmox VE包数据库缓存:

$ apt update

在Proxmox VE 8服务器上安装LibEGL和LibGL库,执行如下命令:

$ apt install -y libgl1

应该安装LibEGL和LibGL库。在我们的例子中,它们已经安装了。

在Proxmox VE 8虚拟机上启用VirtIO-GL/VirGL GPU 3D加速

要在Proxmox VE 8虚拟机上启用VirtIO-GL/VirGL 3D加速,请导航到虚拟机的“硬件”部分[1]。在“显示”[2]上双击(LMB),在“显卡”[3]下拉菜单中选择“VirGL GPU”。

默认情况下,虚拟机运行时,VirGL GPU仅使用Proxmox VE服务器上安装的GPU的内存/VRAM(最多256 MB)。这在大多数情况下就足够了。如果您想为虚拟机分配更多的内存/VRAM,请在“内存(MiB)”部分[4]中键入它。

完成后,点击“确定”[5]。

应该为您想要的Proxmox VE 8虚拟机启用VirtIO-GL/VirGL。

现在,可以像往常一样启动虚拟机了。

如果在Proxmox VE 8虚拟机上成功启用VirtIO-GL/VirGL,虚拟机将正常启动,并且在Proxmox VE 8的web界面上显示虚拟机的界面。

在Proxmox VE虚拟机上测试VirtIO-GL/VirGL GPU 3D加速是否正常工作

您可以在GNOME桌面环境的“设置>关于”中找到虚拟机的“图形”信息。如您所见,虚拟机正在使用我们通过VirIO-GL/VirGL在Proxmox VE 8服务器上的NVIDIA RTX 4070。在其他桌面环境中,你会在“设置”应用程序中找到类似的信息。

为了测试VirIO-GL/VirGL是否在Proxmox VE 8虚拟机上做了任何3D改进,我们在Proxmox VE 8服务器上创建了两个Ubuntu 22.04 LTS虚拟机。我们在其中一个上启用VirtIO-GL/VirGL,在另一个上使用默认的显示设置(3D加速禁用)。然后,我们运行“glmark2”测试并比较结果。

如果你想执行同样的测试,你可以在你的Ubuntu 22.04 LTS虚拟机上安装" glmark2 ",使用以下命令:

$ sudo apt update

$ sudo apt install glmark2

当“glmark2”基准运行时,Proxmox VE 8虚拟机,启用了VirtIO-GL / VirGL 3 d加速消耗更少的CPU资源(图1)相比的一个VirtIO-GL / VirGL 3 d加速禁用(图2)。VirtIO-GL / VirGL 3 d加速禁用Proxmox VE 8虚拟机CPU使用率几乎是100%,你可以看到下面的截图(图2)。高CPU使用率意味着3 d模拟通过CPU,而不是通过GPU加速。因此,VirtIO-GL/VirGL 3D加速提高了Proxmox VE 8虚拟机的3D性能,并使Linux图形桌面环境的用户界面响应更快。

图1:在Proxmox VE 8虚拟机上启用的VirtIO-GL/VirGL 3D加速上运行“glmark2”基准测试时的CPU使用情况

图2:在Proxmox VE 8虚拟机上禁用的VirtIO-GL/VirGL 3D加速上运行“glmark2”基准测试时的CPU使用情况

“glmark2”分数证明了VirIO-GL/VirGL 3D加速确实改善了Proxmox VE 8虚拟机的整体图形用户体验。在启用VirtIO-GL/VirGL 3D加速的Proxmox VE 8虚拟机上,“glmark2”得分为2167(图3),而在禁用VirtIO-GL/VirGL 3D加速的虚拟机上,“glmark2”得分仅为163(图4)。这是一个巨大的差异。

图3:在Promox VE 8服务器上使用NVIDIA RTX 4070 GPU和AMD Ryzen 3900X CPU(虚拟机分配4核)时,在Promox VE 8虚拟机上启用VirtIO-GL/VirGL 3D加速的“glmark2”分数

图4:Promox VE 8服务器上使用AMD Ryzen 3900X CPU(分配给虚拟机的4核)时,在Promox VE 8虚拟机上禁用VirtIO-GL/VirGL 3D加速的“glmark2”分数

如果您在Proxmox VE 8服务器上使用NVIDIA GPU,您还可以通过VirIO-GL/VirGL验证Proxmox VE 8虚拟机正在使用Proxmox VE 8服务器上的GPU进行3D加速。

要查找使用Proxmox VE 8服务器的NVIDIA GPU的程序,请打开Proxmox VE shell并运行" NVIDIA -smi "命令。正如你所看到的,一个Proxmox VE 8虚拟机消耗了我们Proxmox VE 8服务器的NVIDIA RTX 4070 GPU大约194 MiB的VRAM来进行3D加速。

结论

在本文中,我们向您展示了如何在Proxmox VE 8服务器上安装所需的库,以使VirtIO-GL/VirGL 3D加速工作。我们还向您展示了如何在Proxmox VE 8虚拟机上配置/启用VirtIO-GL/VirGL 3D加速。我们向您展示了如何验证VirtIO-GL/VirGL 3D加速是否也在Proxmox VE 8虚拟机上工作。最后,我们使用“glmark2”对Proxmox VE 8虚拟机的VirtIO-GL/VirGL GPU进行基准测试,以向您展示它与禁用VirtIO-GL/VirGL 3D加速的Proxmox VE 8虚拟机相比的性能如何。