一、背景
在Horizon Daas环境,因部分桌面虚拟机采用vGPU规格发布,因此环境中需要有GPU License服务器,完成对租户环境的GPU许可。
当配置有vGPU桌面虚拟机发起License请求后,该服务器会根据License中所包含的GRID License版本,加载不同的vGPU驱动(普通驱动和专业Quodra卡驱动)。目前vPC和vApp的License对应加载的都是普通的显示驱动。
二、vGPU License服务器的工作原理
vGPU跟传统的GPU类似,具有固定数量的GPU帧缓冲器和一个或多个虚拟显示输出。在vGPU虚拟机被创建的时候,帧缓冲区就被分配到物理GPU的帧缓冲区中,vGPU保留对该缓冲区的独占使用,直到它被销毁为止。留在物理GPU上的所有vGPU虚拟机共享对GPU引擎的访问,包括图形(3D)、视频编解码引擎等。
NVIDIA vGPU的内部架构:
每次vGPU的虚拟机运行的时候都会向License服务器发起License请求:
GRID分为三个版本:
虚拟工作站vDWS、vPC和虚拟应用vApps,当配置有vGPU虚拟机发起License请求时,GL服务器会根据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的license版本须经由网络从NVIDIA GRID License 服务器获取到license使用。
vGPU License服务器注意事项(重要):
1)具有16GB内存的4个CPU的高端配置,适合处理多达15万个许可客户端。主机平台必须运行支持的Windows操作系统。
2)NVIDIA License Server尽量安装在英文版操作系统(或使用英文版的浏览器)中,不然会产生与web浏览器不兼容的情况
3)平台必须具有固定(不变)IP地址。平台必须至少有一个不变的以太网MAC地址,以便在注册服务器和在NVIDIA许可门户网站中生成许可证时用作唯一标识符。
4)平台的日期/时间必须准确设置。
三、GPU License服务器搭建
3.1、License server软件包获取
打开NVIDIA官网地址:http://www.nvidia.com/object/grid-evaluation.html,点击下载软件链接“Software Download”
或者:https://nvid.nvidia.com/dashboard/
License软件包介绍:通过上述步骤,可下载到License Manager压缩包:
NVIDIA-GRID-windows-XXXX.XX-XXXX.zip
NVIDIA-GRID-linux-XXXX.XX-XXXX.tgz
Windows安装包,解压后可获取:
setup.exe:用于安装于Windows 虚拟机上
GRID License Server User Guide.pdf:Windows License 服务器用户指南
GRID License Server Release Notes.pdf:Windows License服务器版本说明
Linux安装包,解压后可获取:
setup.bin :用于安装于Linux虚拟机上
GRID License Server User Guide.pdf :Linux License 服务器用户指南
GRID License Server Release Notes.pdf :Linux License服务器版本说明
重要二:获取产品密钥(PAK)
获取方法一:从NVIDIA销售处下单并处理订单后,您会收到包含产品激活密钥的欢迎电子邮件。此邮件包含产品激活密钥(PAK);
获取方法二:如果下单后只拿到许可密钥,可以通过许可密钥为您的账户兑换产品激活密钥(PAK),依次点击:Software & Services Redeem Product Activation Keys,进入Redeem Product Activation Keys页面,在下方表单中输入许可密钥进行兑换。
3.2、License server 安装
在win2016_server_license服务器上,解压获取到的License软件安装包,NVIDIA-ls-windows-XXXX.XX-XXXX.zip包,运行setup.exe
选择: “I accept the terms of the license Agreement” ,点击 Next; 选择: “Iaccept the terms of the license Agreement”,点击 Next;可自定义安装路径,这里选择默认,点击 Next;默认勾选: “License server(port 7070)”,需要勾选上“Managementinterface (port 8080)” ,点击Next;
点击“Install”进行安装,等待安装完成,点击”Done”,完成安装。
3.3、管理
验证许可证服务器是否正常运行,在license服务器主机上打开Web浏览器并连接到http:// localhost:8080/ licserver,显示License管理界面。
1)获取License文件首先获取MAC地址,在License管理界面,打开License Server Configuration,通过Server hostID,获取到MAC地址,如下图所示:
2)注册License服务因该服务器可直接访问公网,浏览器直接打开NVIDIA官网登录到”NVIDIA SOFTWARE LICENSING CENTER”页面。依次点击:Grid Licensingà Register License Server,进入Register License Server页面,将获取到的MAC地址,输入“MAC address”中,并点击“Create”,如下图所示:
创建完成后,需要进入分配license页面。注意事项:
1、MAC地址指的是GL许可服务器的地址,MAC地址之间不要有冒号;
2、如果没有执行本步骤,会导致导出的BIN文件中,没有真实可用的license信息。
然后在View Server页面单击“Map Add-Ons”,会显示目前账号一共可以分配的用户数。
在Qty to Add框中填入需要分配的用户数量,然后点击Map Add-Ons就完成了分配。分配的数量可以通过该步骤进行添加和删除,但是测试license不允许调低分配的用户数。
3)下载License文件创建完后,生成许可证*.bin文件,并下载保存到icense服务器上。
4)加载License文件在License服务器上,打开Licnese Management界面,GL服务器管理平台的地址是:http://localhost:8080/licserver, 显示License管理界面,从左侧菜单,依次点击:LicenseServer -> License Management,使用License服务器配置菜单导入,刚下载保存好的许可证*.bin文件,并点击Upload。如下图所示:
至此,GPU_License服务器安装完成。
3.4、vGPU License服务器常见问题
NVIDIA vGPU License Server组件是我们在实际生产部署以及搭建POC环境的过程中的重要环节。当一个vGPU虚拟机没有正常获取License的时候,其功能会受到很大的限制。由于测试License的申请,以及安装部署过程的注意事项,稍微大意或者缺乏耐心都有可能导致License组件部署失败,以至于影响整个POC测试的效果,所以做这种操作之时要足够仔细、严格按照官方指导要求来!以下是NVIDIAvGPU License Server组件相关的问题进行的总结,供各位参考。
1.在成功提交测试License申请后,1-2个工作日依然没有收到测试License。
测试License申请:http://www.nvidia.com/object/nvidia-enterprise-account.html
2.收到测试License PAK(激活码)后,登陆NVIDIA企业门户激活PAK失败。
建议:多数情况下都是由于网络原因导致(激活服务器在国外),所以建议不断的重试PAK的激活操作,此部分操作对耐心有一定的要求。
3.安装部署License组件版本的选择
建议:选择最新的License组件版本安装,新的License组件版本会对之前的版本会有BUG的修复,所以最新版本是一个很好的选择。
4.成功安装部署License组件后,发现License Web管理界面并不能成功的打开
建议:极有可能的一个原因是你安装了JAVA 7,而新的License组件对JAVA版本的要求是32位的Java 8。无论你的操作系统是32位还是64位,请使用JAVA8 32位版本。
5.成功安装部署License组件后,发现License组件并不能正常的工作
建议:很可能的一个原因是你安装License组件的操作系统不在官方支持列表。
6.访问License Web管理面板报:连接被拒绝的提示信息。
建议:检查License服务器的License服务是否正常启动,或者重新启动License服务
7.License组件安装部署成功且License导入成功,vGPU虚拟机却无法正常获取License
建议:请检查vGPU虚拟机到License组件服务器的端口7070是否通畅,可以使用Telnet命令检查;
8.License组件安装部署成功且License导入成功,vGPU虚拟机却无法正常获取License(已经排除由于防火墙的原因导致)
建议:安装部署License Server组件的时候务必检查License Server的时间和整个环境的时间保持一致。
9.通过LicenseWeb管理面板上传License文件(Bin格式)失败
建议:最大可能的两个原因:一是申请License的Mac地址和License服务器的Mac地址不匹配;二是License文件的有效期为24小时,超过24小时未导入到License服务器则必须重新下载License文件,再执行导入操作。
10.成功安装部署License组件后访问License管理界面出现乱码:
建议:使用英文版本的浏览器访问License管理控制面板;
11.另外,时间同步要设置好,快照备份也必可不少,防范于未然嘛。
特别鸣谢:
四、Horizon Server2016-GPU模板制作
4.1、在GPU资源池(群集)创建模板虚拟机,安装GPU驱动:
4.2、配置GPU虚拟显卡
完成后先关闭虚拟机,为vm配置虚拟显卡:
说明:T4为显卡型号,- num数字为显存大小,a为应用场景,b为企业办公使用,c为计算、大数据使用AI,q为图形显卡(一般选择)
安装完显卡重启后通过VRCL访问黑屏为正常,可通过rdp远程进入操作。
4.3、激活验证分配的显存配额
登陆到已经分配的桌面;系统会自动弹出需要激活显卡驱动,输入激活服务器的IP和端口,点击激活,确认分配的显存大小是否准确;关闭谷歌浏览器的硬件加速功能。
完成后,在Horizon Admin UI界面发布映像即可。
三、附录:NVIDIA VGPU
上图中,是一个GPU分分成了3个vGPU实例,每一个VGPU实例又对应vm上的一个vGPU,而vm里还可以分成多个不同负载来共享vGPU;【NVIDIA vGPU 系统架构】
【NVIDIA 时间切片型vGPU 内部架构】
【基于多实例的vGPU内部架构】