英伟达显卡vGPU虚拟化是什么_GRID vPC、GRID vApp、Quadro vDWS区别

  • 未知
  • 2021-11-08 12:40:53

现如今英伟达虚拟化GPU(vGPU)已经被应用到不同领域。在虚拟GPU这一概念提出以前,应用程序GRID vApp和桌面虚拟化技术GRID vPC已经存在很长时间,那么VGPU究竟是什么,VPC、VApp、vDWS三种授权方式有什么区别呢?

目前具备GPU虚拟化技术的主要是Intel、AMD、NIVIDA三个厂家主要用于支持交付图形丰富的虚拟桌面和工作站。而NVIDIA GPU 是当今市场上最强大的数据中心GPU,使用虚拟GPU软件可以将GPU资源重新划分,以保证GPU资源可以在多个虚拟机之间共享,或者可以将多个GPU分配给一个虚拟机,vGPU为最苛刻的工作流提供了动力。NVIDIA虚拟GPU软件运行在基于NVIDIA Turing™、Volta™、Pascal™和Maxwell™体系结构的GPU上。 

image.png

一、什么是NVIDIA vGPU

NVIDIA vGPU软件是一个图形虚拟化平台,可以让虚拟机(VM)使用NVIDIA GPU的技术。NVIDIA VGPU软件可以以多种方式使用。

NVIDIA  vGPU支持多个虚拟机(VM)能够同时访问部署在宿主机系统上的NVIDIA单个物理GPU。通过这样做,NVIDIAvGPU为VM提供了无与伦比的图形性能和应用程序兼容性,以及通过在多个工作负载之间共享GPU带来的成本效益和可扩展性。

image.png

二、vGPU如何简化IT管理

通过使用VDI(桌面云虚拟化),IT管理员可以集中管理资源,而无需在每个工作位置为单独的工作站提供支持。此外,还可以根据项目和应用程序的需求增加和减少用户的数量。

NVIDIA虚拟GPU监控功能可为IT部门提供各种工具和见解,从而帮助他们节省错误排查的时间,并将更多时间用于战略性项目。IT管理员对基础架构的了解可以细化到应用程序层面,从而能够及早发现问题,未雨绸缪。这样可以减少支持请求和问题上报的数量,并缩减解决问题所需的时间。

借助VDI,IT人员还能够更好地理解用户的需求并调整资源分配。这样可以节省运营成本,同时实现更好的用户体验。此外,利用NVIDIA GPU加速虚拟机的实时迁移功能,IT人员还可以执行关键服务(如工作负载均衡、基础架构韧性和服务器软件更新),而不会造成任何虚拟机停机。它让IT人员可以真正为用户提供高可用性,实现优质用户体验。

三、 vGPU基本构架原理

下图展示NVIDIA vGPU 的构架。在NVIDIA vGPU manager的控制下,NIVDIA 物理GPU 支持多个vGPU,vGPU可以直接分配给虚拟机。

image.png

每个vGPU 都类似于物理GPU,有固定的显存大小,一个或者更多的虚拟显示输出。vGPU的存在创建时就从物理GPU中分配出来,并且是独占的。

我们一起先了解一下NVIDIA vGPU的内部架构。vGPU跟传统的GPU类似,具有固定数量的GPU帧缓冲器和一个或多个虚拟显示输出。在vGPU虚拟机被创建的时候,帧缓冲区就被分配到物理GPU的帧缓冲区中,vGPU保留对该缓冲区的独占使用,直到它被销毁为止。留在物理GPU上的所有vGPU虚拟机共享对GPU引擎的访问,包括图形(3D)、视频编解码引擎等。

image.png

每次vGPU的虚拟机运行的时候都会向License服务器发起License授权请求:

image.png

当配置有vGPU虚拟机发起License授权请求,授权服务器会根据License中所包含的GRID License版本,加载不同的vGPU驱动(普通驱动和专业Quodra卡驱动)。目前vPC和vApp的License对应加载的都是普通的显示驱动。

整个License获取和释放的过程发生在如下两个阶段:

1、License获取阶段:

虚拟机在启动的时候通过访问License服务器的地址+端口7070发起License的请求,当正常获取License后加载GRID驱动。

2、License释放阶段:

当关闭虚拟机的时候,之前虚拟机获得的License会自动释放,还回到License服务器中。

注意事项:

当虚拟机处于关闭状态的时候是不占用任何GRID License的。只有在使用Tesla M60/M10 GPU 时,GRID虚拟工作站或虚拟PC的授权版本须经由网络从NVIDIA GRID License 服务器获取到license,激活使用。


NVIDIA虚拟GPU解决方案目前已经更新到最新的9.2版本,在最新的版本中,新增了面向AI、深度学习和数据科学服务器虚拟化场景的vComputeServer类型。至此,NVIDIA vGPU授权证书产品组合共包含四种类型:

NVIDIA Quadro vDWS

虚拟工作站可通过数据中心提供GPU资源让用户随时随地在任何设备上安全访问数据,用户不再受物理位置的限制,NVIDIA Quadro vDWS 能够进一步发挥 Quadro 的优势,实现真正的GPU 加速数据中心,通过数据中心虚拟化应用程序为终端用户如建筑师、工程师和设计师提供专业工作站级别的用户体验。在《英伟达Quadro vdws工作站讲解》中有具体内容。

常用应用程序:Adobe® Creative Cloud®、Allplan ANSYS、Autodesk 3ds Max、Autodesk AutoCAD、Autodesk Maya、Autodesk Revit、Bentley AECOsim Bentley MicroStation、Dassault Systèmes SOLIDWORKS、Esri ArcGIS Pro、Siemens PLM NX等

每天,数千万的创意和技术专业人士需要通过各种设备访问要求极高的应用程序、需要随时随地开展工作并处理大型数据集,同时还要确保信息的安全。

他们可能是需要在会议期间提供远程问诊服务和访问高质量图像的心脏病专家;或是提供沉浸式模拟培训体验的政府机构;或是正在构思新车设计,需要确保知识产权和专有设计在数据中心内安全无虞,同时还要与客户办公室的其他人进行协作的研发工程师。

对于具有上述复杂图形密集需求的人士,Quadro vDWS可以提供从数据中心或云到任意设备、任意位置的功能最为强大的虚拟工作站。

NVIDIA GRID vPC

面向普通图形加速场景(办公),配合虚拟桌面VDI解决方案,基于vGPU数量授权。具体可以参考《英伟达vPC桌面授权及部署》。

NVIDIA GRID vApp

NVIDIA GRID™ 虚拟 PC (GRID vPC) 和虚拟应用程序 (GRID vApp)  等虚拟化解决方案提供的用户体验与本地 PC 几乎别无二致。借助服务器端图形以及全面管理和监控功能,GRID 为您的 VDI 环境提供长效的解决方案。为组织中的每台 VM(虚拟机)提供 GPU 加速能力,为各种现代企业应用程序提供卓越用户体验的解决方案,这些程序包括 Microsoft Outlook、Office 2016、网络浏览器、Adobe Photoshop 以及 Windows 10 操作系统。成本有效地扩展至整个企业,并将 VDI 的覆盖范围扩展到每个成员。

NVIDIA vComputerServer

提供了虚拟化GPU和加速计算密集型服务器工作负载的能力,包括AI,深度学习和数据科学。有了这个,汽车制造商可以使用最新的模拟和计算技术来创建最节省燃料和时尚的设计,研究人员可以分析基因的功能,以更快地开发医疗。

四、NVIDIA vGPU软件三种虚拟方式区别

GRID vAPP(vApps) – 基于使用vGPU的并发用户会话数授权

GRID vPC(vPC) – 基于使用vGPU的并发数授权

vComputeServer(vCS) - 基于物理GPU授权,且仅支持订阅模式

Quadro Virtual Data Center Workstation (vDWS) – 基于使用vGPU的并发数授权

image.png

五、GPU和对应VGPU虚拟化支持情况

什么物理GPU支持vGPU?能够跟linux kvm兼容的vGPU版本是5.0到5.2目前有七种型号能够兼容

tesla M60

tesla M10

tesla M6

tesla p100

tesla p100(12GB)

tesla P40

tesla P4

详细如下表

image.png

image.png


每一种物理GPU支持的vGPU类型都不一样。vGPU显卡性能主要以分配的显存及显卡类型进行划分,即虚拟机所分配的虚拟显卡型号。vGPU有几种后缀:

  1. Q系列虚拟GPU类型针对设计师和高级用户。(vDWS,虚拟工作站)

  2. B系列虚拟GPU类型针对高级用户。(vPC,虚拟pc)

  3. A系列虚拟GPU类型针对虚拟应用程序用户。(vAPP,虚拟应用,有点类似于远程应用)

image.png

A系列NVIDIAvGPU支持低分辨率的单个显示器,因为它们旨在支持远程应用程序环境,如RDSH和XenApp。在这些环境中,虚拟应用程序通常呈现在屏幕外的缓冲区中。因此,A系列NVIDIA vGPU的最大分辨率与显示器的最大分辨率无关。

有几点是要注意的:

1、NVIDIAvGPU是所有支持的GPU主板上的许可产品。需要软件许可才能启用来宾虚拟机中的所有vGPU功能。所需许可证的类型取决于vGPU类型。

2、NIVDIA  vGPU是需要授权的,根据不同的应用场景(vDWS、vPC、vAPP)来按数量授权。

3、一颗物理GPU核心只能划分为一种vGPU模式,多GPU的卡可以支持多种模式,例如M60有两颗GPU芯片,可支持两种模式。

注意要点:

虚拟机兼容性

Windows支持所有类型的vGPU

Linux只支持q系列vGPU

M6 M10 M60的8q系列vGPU以及P4 P6 P40P100的q系列才支持cuda以及 Unified Memory的OpenCL(估计就是性能和兼容性好些)。

六、物理机如何安装驱动:

直接运行run文件就可以了:NVIDIA-Linux-x86_64-430.46-vgpu-kvm.run

vGPU驱动说明:

A physical GPU that is passed through to a VM is bound to the vfio-pci kernel module. A physical GPU that is bound to the vfio-pci kernel module can be used only for pass-through. To enable the GPU to be used for vGPU, the GPU must be unbound from vfio-pci kernel module and bound to the nvidia kernel module.

#  lspci -d 10de: -k

b1:00.0 3D controller: NVIDIA Corporation Device 1db4 (rev a1)

        Subsystem: NVIDIA Corporation Device 1306

        Kernel driver in use: nvidia

        Kernel modules: nvidiafb, nouveau, nvidia_vgpu_vfio, nvidia

查询GPU的BDF

root@example:~# lspci | grep NVID

b1:00.0 3D controller: NVIDIA Corporation Device 1db4 (rev a1)

查找vGPU类型

root@example:/sys/class/mdev_bus/0000:b1:00.0/mdev_supported_types# grep -l "V100-1Q" nvidia-*/name

nvidia-105/name

注意:至于要创建哪种类型的vGPU,就看具体的物理GPU型号和vGPU要求了,看这个xxxx-grid-vgpu-user-guide.pdf文档能找到类似如下,各个物理GPU都有详细配置,根据自己情况来:

image.png

image.png

查看该类型能支持的vGPU个数

root@example:/sys/class/mdev_bus/0000:b1:00.0/mdev_supported_types# cat nvidia-105/available_instances

16

创建vGPU

root@example:/sys/class/mdev_bus/0000:b1:00.0/mdev_supported_types# uuidgen

b0ff7f66-c989-4841-ba57-6d5adcd55a2d

root@example:/sys/class/mdev_bus/0000:b1:00.0/mdev_supported_types# echo "b0ff7f66-c989-4841-ba57-6d5adcd55a2d" > nvidia-105/create

root@example:/sys/class/mdev_bus/0000:b1:00.0/mdev_supported_types# uuidgen

b94a0c97-946d-4e57-b317-8bdaa38e455a

root@example:/sys/class/mdev_bus/0000:b1:00.0/mdev_supported_types# echo "b94a0c97-946d-4e57-b317-8bdaa38e455a" > nvidia-105/create

检查创建是否成功

root@example:~# ls -l /sys/bus/mdev/devices/

total 0

lrwxrwxrwx 1 root root 0 Aug 21 12:41 b0ff7f66-c989-4841-ba57-6d5adcd55a2d -> ../../../devices/pci0000:ae/0000:ae:02.0/0000:b1:00.0/b0ff7f66-c989-4841-ba57-6d5adcd55a2d

lrwxrwxrwx 1 root root 0 Aug 21 13:44 b94a0c97-946d-4e57-b317-8bdaa38e455a -> ../../../devices/pci0000:ae/0000:ae:02.0/0000:b1:00.0/b94a0c97-946d-4e57-b317-8bdaa38e455a

qemu虚拟机使用

-device vfio-pci,sysfsdev=/sys/bus/mdev/devices/b94a0c97-946d-4e57-b317-8bdaa38e455a -uuid xxxxxxxxxxxxxxxxxxxxx

后面就是虚拟机内部安装对应的驱动程序了,一般名称为:xxxx_grid_win10_server2016_server2019_64bit_international.exe

删除:

root@example:/sys/devices/pci0000:ae/0000:ae:02.0/0000:b1:00.0/mdev_supported_types/nvidia-105/devices# echo 1 > b0ff7f66-c989-4841-ba57-6d5adcd55a2d/remove

关于授权:

Nvidia的vGPU在虚拟机内部使用是需要购买license的,具体的部署方式是需要搭建一台授权服务器,虚拟机内部安装显卡驱动后需要配置授权服务器的地址和端口,前提是虚拟机和授权服务器网络是通的,虚拟机每次开机后都要连接到授权服务器进行授权。

GRID vPC大概2600元,GRID vApps 380元,RTX vWDS 7200元,VCS 3600元。具体的可以联系同袍存储工作人员。

Copyright 2020-2025