一. NVIDIA GRID License组件工作过程介绍
1.1 License获取阶段
1.2 License释放阶段
二. GPU 透传使用方式介绍
三.通过故障排错加深对GRID License组建理解
一. NVIDIA GRID License组件工作过程介绍
NVIDIA GRID 2.0以及后续的版本在部署的过程中都需要安装License组件,License组件主要控制vGPU虚拟机GRID驱动的加载、虚拟桌面的分辨率和帧率。接下来我们来看看GRID License组件是如何工作的?
通过上图我们可以看到,GRID分为三个版本:
- 虚拟工作站vWS
- 虚拟PC
- 虚拟应用vApps
当带有 VGPU 的虚拟机运行的时候会请求 License 服务器中的License授权,根据L icense 服务器中的 GRID License 版本,加载不同的 VGPU 驱动(普通驱动和专业卡驱动)。我们可以看到虚拟 PC 和虚拟应用的 License 加载的都是普通的显示驱动。
整个License获取和释放的过程发生在如下两个阶段:
1.1 License获取阶段
虚拟机在启动的时候通过访问License服务器的地址+ 端口 7070 发起License的请求,当正常获取License后加载GRID驱动。
1.2 License释放阶段
当我们关闭虚拟机的时候,之前虚拟机获得的License会自动释放,还回到License服务器中。
这里需要明确的一点是当虚拟机处于关闭状态的时候是不占用任何的 GRID License 的。此外如果客户使用的是 K1,K2 的GPU是不需要 License 授权的。
一般来说,我们在虚拟机中通过 NVIDIA 控制面板配置 License 服务器地址,当然我们也可以通过修改 Windows 的注册表、或者Linux的配置文件进行配置。下图展示了在Windows平台我们通过NVIDIA控制面板如何配置License服务器地址。
二. GPU 透传使用方式介绍
不过还有一种特殊的场景,就是我们把 GPU 通过透传的方式挂载给虚拟机,这个时候我们在授权 License 的时候有两种选择。
我们可以在 GPU 透传模式下的 NVIDIA 控制面板中看到有两种模式:
- 一种是GRID
- 一种是Tesla
当我们不对透传的 GPU 进行 GRID 的授权,那么此 GPU 将运行在 Tesla 模式下,
运行在 Tesla 模式下的虚拟机有如下限制:仅支持一个屏幕显示且最大分辨率为 2560x1600 。在选择了Tesla授权模式以后,我们对这个分辨率限制进行验证。
在分辨率的设置里,我们可以看到最大分辨率仅支持 2560x1600。
而如果我们采用 GRID授权,分辨率最大可用到4K(4096x2160)。
三.通过故障排错加深对GRID License组建理解
以下通过一个实际的故障排错来加深对GRID License组件的理解
首先,我们在NVIDIA控制面板配置License服务器地址,始终提示无法获取vGPU许可证。
- 首先Telnet License服务器的IP+端口7070,查看虚拟机到License服务器的网络层面通讯是否正常。
- Telnet可以正常连接到License服务器地址+7070端口,接下来检查License服务是否正常运行,经过检查我们发现NVIDIA License服务运行正常。
- 然后我们登陆License服务器管理面板进行查看,发现License已经于一天前过期。
- 由于初步判断是License文件过期导致,我们进一步查看日志确认此问题。
- 我们打开License服务器的日志文件Flexnetls,很快我们就通过日志确认此问题是由于License过期导致。
- 接下来我们新申请一个测试License,导入到License服务器。由于每个License服务器的Mac地址只能申请一次测试License,所以我们需要先修改License服务器的Mac地址。默认的Mac地址为8a:2e:02:7c:99:88,我们修改为8a:2e:02:7c:99:80.
- 修改完Mac地址重启系统,并用新的Mac注册License服务器,上传新注册的License提示和当前的企业ID不匹配。
- 卸载当前License Server重新安装
- 重新安装License Server报告和之前一样的错误(提示和当前的企业ID不匹配,无法成功上传License文件),推测可能是之前的License残留信息导致(包括之前导入的已经过期的License文件)。于是决定对之前的License信息进行清空操作。
清空License服务器残留信息的方法:
- Close the browser that accesses the license server.
- Go into the Microsoft Control Panel, Administrative Tools and Services
- Locate the “FlexNet License Server – nvidia” service, right click on it and select Stop
- Delete the nvidia directory from:
C:\Windows\ServiceProfiles\NetworkService\flexnetls\nvidia - Go into the Microsoft Control Panel, Administrative Tools and Services
- Locate the “FlexNet License Server – nvidia” service. right click on it and select Start
清除完之前的License Server信息以后,成功导入新申请的License。
License过期日期已经更新到2017年9月21。
接下来我们查看日志,看到新的License实例和License文件已经导入。和我们面板上看到的信息一致。
- 接下来我们为虚拟机配置License服务器地址,已经可以成功配置。
在License管理面板里也可以看到此虚拟机已经被授权
至此我们成功解决了一例License的故障,通过此故障我们深入的了解了License服务器的工作原理和排错的基本方法。