在桌面云的高清制图场景中,会涉及使用到需要显卡辅助来支持的 3D 应用,此类3D应用通常是符合 DirectX 或者 OpenGL 图形技术规范的应用。目前各厂商都在加大研发投入并推出了相应的解决方案,如 Microsoft 的 RemoteFx、VMWare 的aSANGA(Virtual Shared Graphics Acceleration)和 vDGA(Virtual DedicatedGraphics Adaptor)、Citrix 的 HDX 3D Pro、Nvidia 的 GPU 硬件虚拟化。
根据其 3D 显示实现原理,主要有如下三大类技术: 1. GPU共享:支持Windows图像虚拟机虚拟机驱动把3D调用OpenGL 的命令拦截下来,发送到服务器,服务器调用本地OpenGL 来执行相应命令,并把执行结果返回给虚拟机。该方案需要虚拟机和Host的OpenGL 版本一致,该方案兼容性极差,仅支持部分3D软件。 2. GPU 直通:支持 Windows 图形虚拟机服务器的 GPU 以直通方式分配给虚拟机,并通过远程协议使得用户可以从远程进行接入。GPU 直通方式,将承载虚拟机的云平台的物理节点上的 GPU 显卡绑定分配给用户虚拟机,终端用户通过终端远程接入用户虚拟机,这样虚拟机就可以使用 GPU获得 3D加速能力。优势是:支持多种类型的显卡,兼容性好,支持符合最新 DirectX、OpenGL规范的 3D 应用。不足是:单个GPU物理核只能给单个虚拟机使用,无法多个虚拟机共享一个GPU物理核,单GPU卡并发数比较低。 3. vGPU:支持 Windows 图形虚拟机通过虚拟化技术将物理显卡的显存静态分配给多个虚拟机,虚拟机安装 NVIDIA 显卡驱动,共享使用物理显卡的执行计算资源。好处是支持多个用户共享 GPU 卡,而且兼容性好,支持符合最新 DirectX、OpenGL 规范的 3D 应用。由于GPU共享模式兼容性比较差,SRAP目前已经不再支持该模式,仅支持GPU直通和vGPU两种模式
显卡虚拟化 显卡虚拟化指的是vGPU技术,就是将显卡进行切片,使得单张显卡可以供多台虚拟机使用的技术,当前业界有两种vGPU的技术路线: 1. 硬件虚拟化:在硬件层面对显卡进行切分,如AMD的MxGPU。 2. 软件虚拟化:在软件层面对显卡进行切分,如NVIDIA的vGPU。 NVIDIA 显卡软件虚拟化的实现(vGPU) 方案组成: 硬件:服务器上需要搭载支持GPU虚拟化的显卡(如M10、M60、T4、RTX6000、RTX8000) 软件:在Hypervisor层和虚拟机中分别有两类不同驱动,用于实现GPU的切分 授权:通过授权功能来限制或者部分限制vGPU卡的使用,英伟达显卡授权可以本地 搭建授权服务器授权,也可以直接连接英伟达互联网授权平台授权。 AMD 显卡硬件虚拟化的实现(MxGPU) 方案组成: 硬件:服务器上搭载支持GPU虚拟化的显卡(S7150x2) 软件:在Hypervisor层的驱动,不过该驱动基本没什么用,GPU并不通过该驱动切分 无需授权:跟N卡虚拟化不同,不需要授权。 |