随着云计算的普及以及大数据分析、复杂图形图像处理、虚拟货币、VR/AR等应用的快速兴起,在VDI场景下,专业3D软件、视频监控等高端应用,需要GPU给予强大的支撑。GPU技术不断走向成熟,虚拟化GPU技术也得到了越来越广泛的应用。本期智汇华云,特别带来基于NVIDIA RTX6000显卡vGPU虚拟机实践,助力企业提高应用性能。
虚拟GPU技术
在虚拟化环境中,GPU使用目前可以分为以下几类:GPU透传和GPU分片虚拟化,前者是将整个物理GPU分配给一个虚拟机使用,其他虚拟机无法共享使用;后者是将物理GPU分割成多个vGPU,每个vGPU可以分配给一个虚拟机使用,多个虚拟机可以共享一个物理GPU。
在某些特定应用场景下,尤其是VDI场景下,GPU透传的缺点十分明显,多个虚拟机需要透传GPU,就需要多个物理GPU,造成成本过高。此时,vGPU 的优势明显体现出来了。
NVIDIA vGPU Architecture
NVIDIA GPU被分割成多个virtual GPU,每个virtual GPU分给不同的虚拟机使用。
vGPU虚拟机实践
我们在opensack平台是使用NVIDIA RTX6000进行vGPU测试
首先在物理机上安装NVIDIA vGPU驱动:
直接运行run驱动文件:sh NVIDIA-Linux-x86_64-450.55-vgpu-kvm.run
装完驱动以后,可以看到NVIDIA RTX6000支持以下vGPU:
我们以创建RTX6000-4Q类型 vGPU虚拟机为例,先将GPU切割成4Q类型的vGPU:
echo af4af78a-c45a-497e-ba07-a263f6acd647 > /sys/class/mdev_bus/0000:b1:00.0/mdev_supported_types/nvidia-259/create
切割完成后,创建带有4Q类型 vGPU的虚拟机flavor:
nova flavor-create "vgpu_flavor" 902 4096 40 4
nova flavor-key 902 set "acc_extra_specs:vgpu"="nvidia-259:1"
用刚才创建的vGPU flavor创建vGPU虚拟机:
nova --debug boot --flavor 902 --image bc883d44-95e4-4aec-9f81-3db0df3cff8e --nic net-id=6656874b-0105-4f49-9d1b-ecc18ed3798f nvidia259_1
上面我们创建了一个win10的vGPU虚拟机,虚拟机开机后,进入虚拟机内部安装NVIDIA vGPU windows驱动:
双击执行451.48_grid_win10_server2016_server2019_64bit_international.exe,安装过程如下图,根据提示操作即可。
Nvidia的vGPU在虚拟机内部使用是需要购买license的,因此需要提前部署好一台license server进行授权。
win10驱动安装完成后,配置license server的地址,以获取license server的授权,才能使用NVIDIA vGPU的高级特性。
下面我们在win10虚拟机内部检测RTX6000-4Q类型的vGPU
directx诊断结果
furmark软件测试3D
结束语
本文从实际虚拟GPU应用场景出发,简单介绍了虚拟GPU技术的架构和原理,并在此基础上,实现了vGPU虚拟机。目前,在华云数据VDI产品线中已经实现了vGPU技术,为客户带来图形丰富的虚拟桌面,提高企业的应用性能。