CentOS虚拟机GPU支持指南
在CentOS虚拟机中使用GPU主要分为两种场景:虚拟显卡(软件加速)和GPU直通(硬件加速)。前者适用于普通图形需求(如桌面环境),后者适用于高性能计算(如深度学习、图形渲染),需根据需求选择合适方案。
虚拟显卡是虚拟化平台提供的模拟显卡(如KVM的virtio-gpu、VMware的SVGA),通过软件模拟实现图形输出,无需物理GPU支持,适合日常办公、网页浏览等轻量级任务。
qemu-guest-agent和spice-vdagent,提升图形性能和交互体验;sudo yum install -y qemu-guest-agent spice-vdagent
open-vm-tools,支持自动调整分辨率、剪贴板共享等功能;sudo yum install -y open-vm-tools
lspci | grep -i virtio(KVM)或lspci | grep -i vmware(VMware)命令,确认虚拟显卡已被识别。GPU直通通过虚拟化技术(如KVM的PCI Passthrough)将宿主机的物理GPU直接分配给虚拟机,虚拟机可直接调用GPU硬件资源,实现接近物理机的性能,适合深度学习、科学计算等场景。
virt-manager图形工具配置)。/etc/default/grub文件,在GRUB_CMDLINE_LINUX行添加:
intel_iommu=on iommu=pt;amd_iommu=on iommu=pt。sudo grub2-mkconfig -o /boot/grub2/grub.cfg # CentOS 7
sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg # CentOS 8/Stream
sudo reboot
dmesg | grep -i iommu,若输出包含“IOMMU enabled”则表示成功。echo "blacklist nouveau" | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
echo "options nouveau modeset=0" | sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf
sudo dracut -f # 重建initramfs
sudo reboot
/etc/modules-load.d/vfio-pci.conf文件,添加:vfio
vfio_iommu_type1
vfio_pci
保存后重启,运行lsmod | grep vfio确认驱动加载。lspci -nnk | grep -i nvidia获取GPU的PCI地址(如0000:01:00.0)和设备ID(如10de:1eb8),编辑/etc/modprobe.d/vfio.conf文件,添加:options vfio-pci ids=10de:1eb8
重启后,将GPU从宿主机解绑并绑定到VFIO驱动:echo "0000:01:00.0" | sudo tee /sys/bus/pci/drivers/vfio-pci/bind
virt-manager图形工具,选择“添加硬件”→“PCI主机设备”,勾选宿主机的GPU设备(如0000:01:00.0),点击“完成”。virsh edit <虚拟机名称>,在<devices>标签内添加:<hostdev mode="subsystem" type="pci" managed="yes">
<driver name="vfio"/>
<source>
<address domain="0x0000" bus="0x01" slot="0x00" function="0x0"/>
</source>
</hostdev>
保存后重启虚拟机。# 添加ELRepo仓库
sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
sudo yum install -y https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
# 安装NVIDIA驱动
sudo yum install -y nvidia-driver-latest-dkms
nvidia-smi,若输出显示GPU型号、驱动版本及显存信息,则表示驱动安装成功。通过上述配置,CentOS虚拟机可根据需求选择虚拟显卡或GPU直通,满足不同场景的图形性能要求。