标签 VGPU 下的文章

VGPU官方资料合集

https://www.nvidia.cn/data-center/virtualization/resources/

VGPU 90天测试license申请地址

https://enterpriseproductregistration.nvidia.com/?LicType=EVAL&ProductFamily=vGPU

第三方站点

https://www.techpowerup.com/gpu-specs/

VGPU文档库

https://docs.nvidia.com/grid/latest/

VGPU许可门户

https://nvid.nvidia.com/dashboard/

VGPU许可门户

https://nvidia.flexnetoperations.com/

VGPU许可门户

https://nvid.nvidia.com/dashboard/

GPU服务器认证查询

https://www.nvidia.com/object/vgpu-certified-servers.html

支持VGPU的物理GPU

https://docs.nvidia.com/grid/gpus-supported-by-vgpu.html

VGPU软件版本集合

https://docs.nvidia.com/grid/get-grid-version.html

VGPU切割指导

https://docs.nvidia.com/grid/latest/grid-vgpu-user-guide/index.html#architecture-grid-vgpu

生产环境中,vgpu的许可服务器可以部署为HA模式,这样不管哪一台出问题,都不会影响客户端获取许可。
本次采用两台centos7.6,固定IP地址,centos带桌面组件,license 许可版本是2019.05.0.26416627。2018.06及以后的Linux 许可服务器版本支持在consloe 字符界面下安装,之前的版本必须需要桌面。

许可证服务器需要Java运行时环境和Apache Tomcat服务器,必须在安装许可证服务器软件之前单独安装,linux一般都自带java。

license-a:192.168.80.112 主许可服务器
license-b:192.168.80.113 备许可服务器

先安装license-a

1,安装tomcat环境

yum install -y tomcat tomcat-webapps
systemctl start tomcat
systemctl enable tomcat

2,上传Linux版本的许可管理软件

chmod +x setup.bin
/setup.bin

弹出安装界面,选择next

71205-qwfwjeogtg.png

如果没有桌面,可以使用下面的命令

./setup.bin -i console

87494-mi96xqu1hhj.png

默认安装到/opt/flexnetls/nvidia文件夹下,点击下一步

00139-japmj3txws.png

填入tomcat 的文件夹 /usr/share/tomcat ,tomcat安装完默认就这个位置, 点击下一步

16597-uxdzdktox9n.png

勾选两个端口,会自动加入防火墙白名单,许可端口是7070,管理端口是8080,点击下一步,然后单击安装

74084-ckgin7mbdt.png

安装完成

10295-iewkssymylm.png

3,登录许可服务器

浏览器中打开http://license-a:8080/licserver/
在左边菜单栏点击Configuration,记录下Server host ID,即这台虚拟机的mac地址

59375-7zoekrkhvjc.png

重复上述步骤安装第二台许可服务器license-b并记录Server host ID

4,生成许可

登录nvidia许可官网

输入账号密码,点击左侧的Register License Server,输入两台许可服务器的mac地址,填写别名,点击创建。

87720-hqvgyluq1e.png

然后添加映射购买好的许可,点击Download License File

5,上传许可

浏览器中打开许可服务器,点击License Management,选择许可文件点击上传。此时提示:

Successfully applied license file to license server.

点击Licensed Feature Usage,许可已成功上传

94777-0irellyhke47.png

确定两台服务器都成功上传,并正确显示许可信息。

6,配置HA

先配置license-a
点击左侧的License Server Configuration

a) 在Backup URI框中输入:

http://license-b:7070/fne/bin/capability
即:http://192.168.80.113:7070/fne/bin/capability

b) 在Main URI框中输入:

http://license-a:7070/fne/bin/capability
即:http://192.168.80.112:7070/fne/bin/capability

设置Synchronization to fne enabled选项为true

c) 在Main FNE Server URI框中输入:

http://license-a:7070/fne/bin/capability
即:http://192.168.80.112:7070/fne/bin/capability

84974-4a2hp9a7ezh.png

确认上述信息填写无误,然后点击SAVE保存。

然后在license-b中重复上述操作。

SSH到license-a服务器

systemctl restart flexnetls-nvidia
cat /var/opt/flexnetls/nvidia/logs/flexnetls.log

日志信息可能需要等几分钟才能出现

62339-7yqtknqvox6.png

SSH到license-b服务器

systemctl restart flexnetls-nvidia
cat /var/opt/flexnetls/nvidia/logs/flexnetls.log

51826-vascbia87h.png

至此,license HA搭建完成。

7,测试HA

在vgpu虚拟机中填写主备许可服务器的IP和端口,提示已经获取许可

04297-3g62ek2vt4t.png

此时关闭license-a许可服务器,许可管理界面已经无法打开,查看license-b 的管理界面

91233-bj134ex8h9u.png

41091-kb1o8bkk15.png

虚拟机的许可请求自动转移到license-b(192.168.80.113)

Ubuntu的VGPU的配置跟CentOS类似,也是需要先加域,过程参考Horizon系列之安装配置Ubuntu18虚拟桌面,只需要做到加域,验证sudo权限以及域用户能进桌面步骤即可,horizon agent 不需要安装,如果已经安装了,需要执行下面的命令卸载

    /usr/lib/vmware/viewagent/bin/uninstall_viewagent.sh

ESXI主机安装GPU驱动以及给虚拟机分配VGPU过程参考这里Horizon系列之CentOS虚拟桌面安装配置VGPU

环境:

Vcenter6.7 ESXI6.7 Horizon7.8 Ubuntu18.04 GRID VGPU7.2

一,安装配置虚拟桌面模板

1,禁用自带的驱动

echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf

没有禁用驱动之前是这样的

lsmod |grep nouveau

06490-geamo42cf6.png

update-initramfs -u

15795-cax750ccxrg.png

重启虚拟机

lsmod |grep nouveau

34600-xzd7o0v8e5.png

无任何输出,则说明自带驱动已经禁用

[scode type="blue"]下面关键内容仅对打赏用户开放,之前通过微信打赏的用户,微信联系我获取密码,谢谢![/scode]

[ppblock ex="原创不易,打赏后即可获取文章密码!"]
2,安装vgpu驱动的依赖组件

apt-get install make gcc g++ lib32ncurses5 lib32z1

3,上传vgpu的驱动,然后安装

chmod +x NVIDIA-Linux-x86_64-410.107-grid.run
service lightdm stop
./NVIDIA-Linux-x86_64-410.107-grid.run

提示预安装脚本失败,忽略它,点击继续

58073-bso7rj3uhm5.png

忽略GCC版本的兼容性,要求是7.3,默认安装的是7.4,忽略即可

61130-1ycxoxao54h.png

点击OK

97535-q2d4ls8eqcp.png

安装过程

70783-ejhmo7fcdkg.png

选择yes,需要安装32位的兼容库

74552-v7vexpasp3p.png

安装并覆盖

53384-vfsjoz71wc.png

选择更新

06820-x2l5tjkj72.png

安装完成

01892-64etrdikyag.png

重启虚拟机,然后执行

nmvidia-smi

36013-zyg9755zqj.png

输出如上信息,则vgpu驱动安装成功

4,上传Linux系统的horizon agent解压并安装

./install_viewagent.sh -A yes

安装agent 的时候可能会出现以下错误

06070-cjxlp5grp1.png

执行

dpkg-reconfigure gdm3

选择gdm3,然后回车,继续执行./install_viewagent.sh -A yes安装agent

79220-kcr8vk2uc3.png

安装完成后继续执行

dpkg-reconfigure gdm3

选择lightdm,然后回车,horizon 要求lightdm作为显示管理器。

5,编辑/etc/vmware/viewagent-custom.conf文件,去除SSODesktopType=UseGnomeUbuntu前面的#

6,生成grid配置文件

这一步是为了登录桌面执行nvidia-settings 能看到license的配置项,这个文件里直接可以配置许可服务器的IP和端口。

cp /etc/nvidia/gridd.conf.template /etc/nvidia/gridd.conf
vi /etc/nvidia/gridd.conf

编辑内容如下:

去除EnableUI=TRUE前面的#

然后按:wq! 保存

7,清理之前登录测试在/home/文件夹下自动创建的用户文件夹,以及horizon agent安装程序和vgpu驱动,删除在/var/lib/AccountsService/users/ 下生成的域用户文件

8,创建linux版本的客户机自定义规范,然后克隆ubuntu为模板

二,创建桌面池

新建桌面池,选择自动,专用桌面,完整克隆。3D渲染器选择 NVIDIA GRID VGPU,其他自定义,然后等待置备。

三,测试桌面

1,horizon client登录

71879-tpsfljgsq3m.png

05438-c1wtypa67mn.png

如果不输入许可,桌面非常卡,并且有以下限制:

帧速率上限为每秒3帧。
GPU资源分配有限,这将阻止某些应用程序正常运行。
在支持CUDA的vGPU上,CUDA被禁用。

总结:不管是centos,还是ubuntu,在分配许可的时候直接在/etc/nvidia/gridd.conf文件中配置好许可IP和端口。

[/ppblock]

Windows的VGPU非常简单,一路点鼠标下一步,没有什么难度,Linux的vgpu桌面还是有点坑。

环境:Vcenter6.7 ESXI6.7 Horizon7.8 Centos7.6 GRID VGPU7.2

不同的ESXI和VGPU版本支持的功能不尽相同,在配置之前一定要确定。

一,安装配置VGPU驱动

1,上传GPU的驱动到主机的存储空间,开启主机的ssh,然后登录主机,把驱动复制到/tmp文件夹下,迁移或关闭主机上所有的虚拟机,然后将主机置入维护模式,并安装驱动。

esxcli system maintenanceMode set --enable=true
esxcli software vib install -v /tmp/NVIDIA-VMware_ESXi_6.7_Host_Driver-410.107-1OEM.670.0.0.8169922.x86_64.vib

如果是升级驱动则用下面命令:

esxcli software vib update -v /tmp/NVIDIA-VMware_ESXi_6.7_Host_Driver-410.107-1OEM.670.0.0.8169922.x86_64.vib

87488-yqxx4xkw65.png

卸载驱动用下面的命令:

esxcli software vib remove -n NVIDIA-VMware_ESXi_6.7_Host_Driver

2,查看驱动是否安装成功

esxcli software vib list | grep -i nvidia

41570-iy7j1dkz7i.png

nvidia-smi

85076-ur3fa78kowo.png

备注:Tesla M60,Tesla M6和基于Pascal GPU架构的GPU,例如Tesla P100或Tesla P4,支持纠错码(ECC)内存,以提高数据完整性。图形模式下的特斯拉M60和M6 GPU默认情况下禁用ECC内存。NVIDIA vGPU不支持ECC内存。如果启用了ECC内存,则NVIDIA vGPU无法启动。因此,如果使用的是NVIDIA vGPU,则必须确保在所有GPU上禁用ECC内存。早期的M10,M60 还需要手动将模式转为图形模式,出厂默认是计算模式,近几年出的卡不需要,转换方法参考官方文档。

如果nvidia-smi执行报错,先查看ecc是否关闭

nvidia-smi -q

14283-gbetp2cpmc.png

如果没有关闭,执行下面命令关闭ecc

如果要将主机上所有GPU 或分配给VM的vGPU的ECC状态更改为关闭,请运行以下命令:

nvidia-smi -e 0

如果要将特定GPU 或vGPU的ECC状态更改为关闭,请运行以下命令:

nvidia-smi -i id -e 0

id 是执行 nvidia-smi后显示的GPU 或vGPU的索引 即Bus-Id。
比如要禁用Bus-ID为00000000:31:00.0的GPU的ECC

nvidia-smi -i 00000000:31:00.0 -e 0

关闭ecc 的情况下如果还是报错,官网查看驱动版本和当前esxi是否兼容,确定版本没有问题的情况下继续报错,则点击这里确定主机的BIOS设置是否规范。

确认上述步骤无任何问题,把主机退出维护模式,然后重启服务器

esxcli system maintenanceMode set --enable=false
reboot

3,vcenter中选中主机,点击配置,单击图形

85654-831uxx52oxe.png

图形设备标签下,选择物理GPU,选择直接共享,单击确定,多个GPU,重复操作即可

39251-l2nmezqavf.png

主机图形标签下,选择物理GPU,选择直接共享,单击确定,多个GPU,重复操作即可

97642-3gaxgszy3i9.png

4,如果集群内有多个GPU服务器,可以开启VGPU的vmotion 模式。

点击vcenter实例名称,点击配置,选择高级设置并单击编辑,弹出的窗口中,搜索关键字VGPU,勾选已启用,单击确定。此时vgpu 的vmotion功能已开启。

47932-oa1mq09axi.png

下表列出了支持VMware vmotion和vGPU的suspend-resume的软件版本

Guest OSNVIDIA vGPU - VMware vSphereReleasesPass-Through GPU - VMware vSphere Releases
Red Hat Enterprise Linux 7.0-7.6 and later compatible 7.x versions6.7, 6.5, 6.06.7, 6.5, 6.0
CentOS 7.0-7.6 and later compatible 7.x versions6.7, 6.5, 6.06.7, 6.5, 6.0
Red Hat Enterprise Linux 6.6 and later compatible 6.x versions6.7, 6.5, 6.06.7, 6.5, 6.0
CentOS 6.6 and later compatible 6.x versions6.7, 6.5, 6.06.7, 6.5, 6.0
Ubuntu 18.04 LTS6.7, 6.5, 6.06.7, 6.5, 6.0
Ubuntu 16.04 LTS6.7, 6.5, 6.06.7, 6.5, 6.0
Ubuntu 14.04 LTS6.7, 6.5, 6.06.7, 6.5, 6.0
SUSE Linux Enterprise Server 12 SP36.7, 6.5, 6.06.7, 6.5, 6.0

并且只有以下GPU支持vmotion

Tesla M6
Tesla M10
Tesla M60
Tesla P4
Tesla P6
Tesla P40
Since 7.1: Tesla T4

二,配置虚拟机模板

[scode type="blue"]下面关键内容仅对打赏用户开放,之前通过微信打赏的用户,微信联系我获取密码,谢谢![/scode]

01680-9xrb89rq448.png

27725-yrj4s8w6njq.png

The number after the board type in the vGPU type name denotes the amount of frame buffer that is allocated to a vGPU of that type. For example, a vGPU of type M60-2Q is allocated 2048 Mbytes of frame buffer on a Tesla M60 board.

Due to their differing resource requirements, the maximum number of vGPUs that can be created simultaneously on a physical GPU varies according to the vGPU type. For example, a Tesla M60 board can support up to 4 M60-2Q vGPUs on each of its two physical GPUs, for a total of 8 vGPUs, but only 2 M60-4Q vGPUs, for a total of 4 vGPUs.

Note:
NVIDIA vGPU is a licensed product on all supported GPU boards. A software license is required to enable all vGPU features within the guest VM. The type of license required depends on the vGPU type.

    Q-series vGPU types require a Quadro vDWS license.
    C-series vGPU types require a vComputeServer license but can also be used with a Quadro vDWS license.
    B-series vGPU types require a GRID Virtual PC license but can also be used with a Quadro vDWS license.
    A-series vGPU types require a GRID Virtual Applications license.

1 NVIDIA vGPUs with less than 1 Gbyte of frame buffer support only 1virtual display head on a Windows 10 guest OS.

2 C-series vGPU types are NVIDIA vComputeServer vGPU types, which are optimized for compute-intensive workloads. As a result, they support only a single display head and do not provide Quadro graphics acceleration.
3 A-series NVIDIA vGPUs support a single display at low resolution to be used as the console display in remote application environments such as RDSH and Citrix Virtual Apps and Desktops. The maximum resolution for the A-series NVIDIA vGPUs applies only to the console display. The maximum resolution of each RDSH or Citrix Virtual Apps and Desktops session is not restricted by the maximum resolution of the vGPU.
4 The maximum vGPUs per GPU is limited to 32.

说明
当尝试安装一个采用NVIDIA GPU(例如 m10)插入一个支持14G服务器(R740和 r 740 XD)、安装了驱动程序后VIB,可以尝试执行nVidia-SMI命令时出现以下错误: When trying to install an NVidia GPU (e.g. M10) into a supported 14G server (R740 and R740XD), after installing the driver vib, the following error can appear when attempting to execute the nvidia-smi command:

无法初始化nvml:未知错误
85036-w69nsgbowx.png
在NVIDIA-错误报告.log,/var/log/vmkernel.log”部分中看到类似于以下消息的事件:
2017-11- 02 t18 19.707 z cpu45: 66263) 恢复VRM:加载nVidia UNIX的X86_64内核模块384.73Mon Aug21 15:16:25:28:PDT2017
2017-11- 02 t18:28: 19.710 z cpu3: 66145) 恢复VRM:这是64位栏映射16TB以上的系统
恢复VRM:BIOS或VMware ESXi的内核。此PCI I/O区域分配
恢复VRM:nVidia内核不支持该设备。
恢复VRM:栏1 256M@0 x 382 FE00$
__
解决方案
硬件工作正常。要解决此问题,请将内存映射I/O库设置为512GB(默认情况下为56TB):
r740硬件用户手册》中的已记录此问题:
4GB以上的内存映射I/O-启用或禁用对需要大量内存的PCIe设备的支持。启用此选项仅适用于64位操作系统。该选项设置为已禁用)(在默认设置下已启用。
内存映射I/O上述库-当设置为12TB,则系统将映射MMIO基座为12TB。启用此选项,操作系统需要44位的PCIe寻址。
当设置为512GB,则系统将映射MMIO基座,512GB,并降低的最大内存支持,小于512GB。启用此选项仅用于4GPU dgma问题。此选项在默认情况下设置为56TB。
14757-vnphkzus2b.png

http://topics-cdn.dell.com/pdf/poweredge-r740_owner's%20manual_en-us.pdf(第52页)
请注意,这将限制系统内存为512GB。

更改此设置后,系统重新启动时,nvidia-smi应输出类似于:

23642-2hman39ev8n.png