问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

PVE中GPU显卡虚拟化配置指南

创作时间:
作者:
@小白创作中心

PVE中GPU显卡虚拟化配置指南

引用
1
来源
1.
https://wiki.sqlfans.cn/ai/ai-gpu-pve.html

在Proxmox VE(PVE)中实现GPU显卡虚拟化可以为虚拟机提供强大的图形处理能力,这对于运行图形密集型应用或深度学习任务非常有帮助。本文将详细介绍如何在PVE物理机上配置GPU虚拟化,并在虚拟机中使用GPU设备。

假设PVE物理机有一块GPU设备,如何在新建的虚拟机中也包含这块GPU设备呢?

第1步:在PVE物理机上设置

1.1 配置软件源

cp /etc/apt/sources.list /etc/apt/sources.list.$(date +%Y%m%d%H%M%S)
echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free" > /etc/apt/sources.list
echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free" >> /etc/apt/sources.list
echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free" >> /etc/apt/sources.list
echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free" >> /etc/apt/sources.list
echo "deb https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian bullseye pve-no-subscription" > /etc/apt/sources.list.d/pve-enterprise.list

1.2 安装必要的软件包并更新本地包缓存

apt install -y apt-transport-https ca-certificates
apt-get update

2.1 开启IOMMU

其中i915.enable_gvt=1开启共享模式

cp /etc/default/grub /etc/default/grub.$(date +%Y%m%d%H%M%S)
# .intel处理器:
sed -i '/^GRUB_CMDLINE_LINUX_DEFAULT.*/c GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt i915.enable_gvt=1 video=efifb:off"' /etc/default/grub
# .amd或者海光:
sed -i '/^GRUB_CMDLINE_LINUX_DEFAULT.*/c GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt i915.enable_gvt=1 video=efifb:off"' /etc/default/grub
cat /etc/default/grub | grep "^GRUB_CMDLINE_LINUX_DEFAULT"

2.2 更新grub

update-grub

3.屏蔽系统中的开源显卡驱动避免开启显卡被系统加载

cat /etc/modprobe.d/blacklist.conf | grep nouveau || echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf
cat /etc/modprobe.d/blacklist.conf | grep nvidia || echo "blacklist nvidia" >> /etc/modprobe.d/blacklist.conf
cat /etc/modprobe.d/blacklist.conf | grep nvidiafb || echo "blacklist nvidiafb" >> /etc/modprobe.d/blacklist.conf
echo "options kvm ignore_msrs=1" > /etc/modprobe.d/kvm.conf

4.1 加载vfio模块

cp /etc/modules /etc/modules.$(date +%Y%m%d%H%M%S)
echo "vfio" > /etc/modules
echo "vfio_iommu_type1" >> /etc/modules
echo "vfio_pci" >> /etc/modules
echo "vfio_virqfd" >> /etc/modules

4.2 更新内核参数

update-initramfs -k all -u

5.重启机器生效

reboot

第2步:创建虚拟机

创建虚拟机的时候,需要指定 Machine 为 q35,并启用 Qemu Agent。

第3步:添加PCI设备

虚拟机创建之后,在 Hardware 下 Add 对应显卡的 pci 设备。

第4步:启用AVX指令集支持

启用虚拟机的AVX指令集支持(创建合合OCR容器或安装MongoDB 5.0及以上版本都要求CPU支持AVX指令集),然后重启虚拟机。

遇到的问题

问题1:物理机重启问题

按照第2、第3步创建虚拟机并新增 PCI Device 设备之后,启动虚拟机就会导致物理机重启。最后查阅资料才发现,PVE物理机是信创机器(联想SR558H机箱、海光CPU),配置 /etc/default/grub 时需要使用 amd_iommu=on 而非 intel_iommu=on

root@pve02:~# dmidecode -s processor-version
Hygon C86 5285 16-core Processor
Hygon C86 5285 16-core Processor
root@pve02:~# cat /etc/default/grub | grep "^GRUB_CMDLINE_LINUX_DEFAULT"
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt video=efifb:off"


© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号