1 选择所需vGPU类型
- 查询GPU 支持的 mdev 类型列表
[root@vgpu ~]# ls /sys/class/mdev_bus/*/mdev_supported_types /sys/class/mdev_bus/0000:3b:00.0/mdev_supported_types: nvidia-157 nvidia-214 nvidia-243 nvidia-288 nvidia-289 nvidia-63 nvidia-64 nvidia-65 nvidia-66 nvidia-67 nvidia-68 nvidia-69 nvidia-70 nvidia-71 /sys/class/mdev_bus/0000:af:00.0/mdev_supported_types: nvidia-157 nvidia-214 nvidia-243 nvidia-288 nvidia-289 nvidia-63 nvidia-64 nvidia-65 nvidia-66 nvidia-67 nvidia-68 nvidia-69 nvidia-70 nvidia-71
- 查询 GRID vGPU 用户手册《*-grid-vgpu-user-guide.pdf》,P4 在桌面虚拟化下支持的 vGPU 类型
- 选择所需 vGPU 类型(以 P4-1B 为例),查询 P4-1B 对应的 mdev 类型
[root@vgpu ~]# grep -n "P4-1B" /sys/class/mdev_bus/*/mdev_supported_types/nvidia-*/name /sys/class/mdev_bus/0000:3b:00.0/mdev_supported_types/nvidia-243/name:1:GRID P4-1B4 /sys/class/mdev_bus/0000:3b:00.0/mdev_supported_types/nvidia-71/name:1:GRID P4-1B /sys/class/mdev_bus/0000:af:00.0/mdev_supported_types/nvidia-243/name:1:GRID P4-1B4 /sys/class/mdev_bus/0000:af:00.0/mdev_supported_types/nvidia-71/name:1:GRID P4-1B
可以看到 GRID P4-1B 的 mdev 类型是 nvidia-71
- 查看该类型可支持的 vGPU 数量
[root@vgpu ~]# cat /sys/class/mdev_bus/*/mdev_supported_types/nvidia-71/available_instances 8 8
2 手动创建 vGPU
- 生成uuid
[root@vgpu ~]# uuidgen a2b1a1fe-117c-4d96-8a92-daf0f877dc36
- 创建 0000:3b:00.0 上 nvidia-71 类型 vGPU
[root@vgpu ~]# echo "a2b1a1fe-117c-4d96-8a92-daf0f877dc36" > /sys/class/mdev_bus/0000:3b:00.0/mdev_supported_types/nvidia-71/create
- 查看是否创建成功
[root@vgpu ~]# ls -l /sys/bus/mdev/devices/ total 0 lrwxrwxrwx 1 root root 0 Jan 19 15:56 a2b1a1fe-117c-4d96-8a92-daf0f877dc36 -> ../../../devices/pci0000:3a/0000:3a:00.0/0000:3b:00.0/a2b1a1fe-117c-4d96-8a92-daf0f877dc36
- 通过 virsh 查看设备信息
[root@vgpu ~]# virsh nodedev-list | grep mdev mdev_a2b1a1fe_117c_4d96_8a92_daf0f877dc36 [root@vgpu ~]# [root@vgpu ~]# virsh nodedev-dumpxml mdev_a2b1a1fe_117c_4d96_8a92_daf0f877dc36 <device> <name>mdev_a2b1a1fe_117c_4d96_8a92_daf0f877dc36</name> <path>/sys/devices/pci0000:3a/0000:3a:00.0/0000:3b:00.0/a2b1a1fe-117c-4d96-8a92-daf0f877dc36</path> <parent>pci_0000_3b_00_0</parent> <driver> <name>vfio_mdev</name> </driver> <capability type='mdev'> <type id='nvidia-71'/> <iommuGroup number='1'/> </capability> </device>
- 创建 vGPU XML 描述文件
[root@vgpu ~]# vim /data/1-1-vGPU.xml <hostdev mode='subsystem' type='mdev' managed='no' model='vfio-pci'> <source> <address uuid='a2b1a1fe-117c-4d96-8a92-daf0f877dc36'/> </source> </hostdev>
3 Windows7 vGPU虚机实践
3.1 创建 Windows7 虚机
- 拷贝 Windows7 虚机镜像到 vGPU 服务器,本文以 /data/Windows-7-VDesk.qcow2 为例
- 使用 virt-install 命令创建虚机
virt-install \ --name vGPU-Win7 \ --vcpus sockets=1,cores=4,threads=2 \ --memory 8192 \ --disk path=/data/Windows-7-VDesk.qcow2 \ --network=default,model=virtio \ --video qxl --channel spicevmc \ --graphics spice,listen=0.0.0.0,port=6007,tlsport=,defaultMode='insecure' \ --os-type=windows --os-variant=auto \ --autostart --noautoconsole \ --hvm --virt-type kvm \ --input tablet \ --boot hd Starting install... Domain creation completed.
- 使用 Spice remote viewer 或 virt-manager 或 RDP(Windows 远程桌面)访问虚机
推荐直接使用 RDP 协议访问,在 vGPU 驱动安装完成后,Spice、Virt-manager 无法获取虚机桌面图像
可以看到当前仅有一块 QXL 显卡
3.2 挂载 vGPU
- 使用 virsh attach-device 命令挂载 vGPU 设备
[root@vgpu ~]# virsh attach-device vGPU-Win7 /data/1-1-vGPU.xml --persistent Device attached successfully
- 虚机中查看 vGPU 设备
可以看到新增了一个无法启动的 “标准 VGA 图形适配器” ,这个设备就是新挂载上还未被驱动的 vGPU
3.3 安装 Grid vGPU 驱动
- 拷贝 Nvidia Grid 驱动到虚机中
- Grid10 版本以下使用该名称驱动文件
*_grid_win7_win8_server2012R2_64bit_international.exe: - Grid11 版本虽文档中说明不支持 Windows7 但根据验证仍然支持,需使用该名称驱动文件:
*_grid_server2012R2_64bit_international.exe
本文后续以 Grid10 版本为例安装 Grid vGPU 驱动Grid10 为支持 Windows7 / Windows10 的最新版本驱动
- Grid10 版本以下使用该名称驱动文件
- 运行驱动安装程序,解压到默认安装目录
- 解压完成后自动打开驱动安装程序,同意协议并继续
- 选择精简模式安装
如果在安装过程中提示 “Windows 安全” 对话框,需选择 始终安装此驱动程序软件
- 安装完成后选择马上重新启动,重启虚机
- 重启后打开设备管理器可以看到 vGPU 已经正常识别成 NVIDIA GRID P4-1B 设备并处于运行中
3.4 配置 License 信息
- 桌面右键,点击打开 NVIDIA 控制面板
- 打开 NVIDIA 控制面板后,点击左侧的 许可 – 管理许可证,进入管理许可证页面
- 在管理许可证页面输入License Server 的 IP 地址和端口号,端口号默认为 7070
- 填写完成后点击右下角的 应用 按钮,应用许可证设置
- 关掉并重新打开 NVIDIA 控制面板,即可看到系统已获得授权的提示
3.5 简单跑分测试
- FurMark 1.25.0.0版本,800*600 OpenGL渲染测试
FPS:min:22, max:24, avg:22
- REDTurbineDemo
Total Score:2427
4 Windows10 vGPU虚机实践
4.1 创建 Windows10 虚机
- 拷贝 Windows10 虚机镜像到 vGPU 服务器,本文以 /data/Windows-10-VDesk.qcow2 为例
- 使用 virt-install 命令创建虚机
virt-install \ --name vGPU-Win10 \ --vcpus sockets=1,cores=4,threads=2 \ --memory 8192 \ --disk path=/data/Windows-10-VDesk.qcow2 \ --network=default,model=virtio \ --video qxl --channel spicevmc \ --graphics spice,listen=0.0.0.0,port=6010,tlsport=,defaultMode='insecure' \ --os-type=windows --os-variant=auto \ --autostart --noautoconsole \ --hvm --virt-type kvm \ --input tablet \ --boot hd Starting install... Domain creation completed.
- 使用 Spice remote viewer 或 virt-manager 或 RDP(Windows 远程桌面)访问虚机
推荐直接使用 RDP 协议访问,在 vGPU 驱动安装完成后,Spice、Virt-manager 无法获取虚机桌面图像
可以看到当前有一块自带的 QXL 显卡(如果使用 RDP 协议访问会多出一个 Microsoft Remote Display Adapter 显卡)
4.2 挂载 vGPU
- 使用 virsh attach-device 命令挂载 vGPU 设备
[root@vgpu ~]# virsh attach-device vGPU-Win10 /data/1-1-vGPU.xml --persistent Device attached successfully
- 虚机中查看 vGPU 设备
可以看到新增了一个无法启动的 “Microsoft 基本显示适配器” ,这个设备就是新挂载上还未被驱动的 vGPU
4.3 安装 Grid vGPU 驱动
- 拷贝 Nvidia Grid 驱动到虚机中,文件名类似于:*_grid_win10_server2016_server2019_64bit_international.exe
本文后续以 Grid10 版本为例安装 Grid vGPU 驱动Grid10 为支持 Windows7 / Windows10 的最新版本驱动
- 运行驱动安装程序,解压到默认安装目录
- 解压完成后自动打开驱动安装程序,同意协议并继续
- 选择精简模式安装
- 安装完成后选择马上重新启动,重启虚机
- 重启后打开设备管理器可以看到 vGPU 已经正常识别成 NVIDIA GRID P4-1B 设备并处于运行中
4.4 配置 License 信息
- 桌面右键,点击打开 NVIDIA 控制面板
- 打开 NVIDIA 控制面板后,点击左侧的 许可 – 管理许可证,进入管理许可证页面
- 在管理许可证页面输入License Server 的 IP 地址和端口号,端口号默认为 7070
- 填写完成后点击右下角的 应用 按钮,应用许可证设置
- 关掉并重新打开 NVIDIA 控制面板,即可看到系统已获得授权的提示
4.5 简单跑分测试
- FurMark 1.25.0.0版本,800*600 OpenGL渲染测试
FPS:min:48, max:49, avg:48
- REDTurbineDemo
Total Score:2137
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容