第一章 NVIDIA vGPU软件许可简介
以下产品可作为NVIDIA GPU上支持NVIDIA vGPU软件的许可产品:
- NVIDIA® RTX虚拟工作站(vWS)
- NVIDIA虚拟计算服务器(vCS)
- NVIDIA虚拟个人电脑(vPC)
- NVIDIA虚拟应用程序(vApps) 本指南描述了这些许可产品以及如何在支持的硬件上启用和使用它们。
1.1 NVIDIA vGPU软件许可产品
可用的NVIDIA vGPU软件许可产品支持不同类别的NVIDIA vGPU软件部署。
英伟达vGPU 软件许可产品目标用户支持的NVIDIA vGPU
软件部署vApps使用Citrix Virtual Apps and Desktops、VMware Horizon、RDSH或其他应用程序流式传输或基于会话的解决方案的PC级应用程序和基于服务器的桌面用户。‣ A-series NVIDIA vGPUs
‣ GPU 直通&透传
‣ Microsoft DDA
‣ VMware vDGA
‣ 裸金属vPC需要在Windows、Web浏览器和高清视频中使用PC应用程序,希望获得出色用户体验的企业虚拟桌面用户。
‣ B-series NVIDIA vGPUs
‣ Microsoft RemoteFX vGPU
‣ VMware vSGA
vCS使用计算密集型虚拟服务器进行人工智能(AI)、深度学习或高性能计算(HPC)工作负载的用户‣ C-series NVIDIA vGPUs
‣ GPU 直通&透传
‣ Microsoft DDA
‣ VMware vDGAvWS需要在任何设备的任何地方以全性能访问远程专业图形应用程序的中档和高端工作站用户‣ Q系列 NVIDIA vGPUs
‣ C系列NVIDIA vGPUs
‣ B系列NVIDIA vGPUs
‣ GPU 直通&透传
‣ Microsoft DDA
‣ VMware vDGA
‣裸金属
注意:
- Microsoft DDA和VMware vDGA在功能上等同于GPU直通。
- Microsoft RemoteFX vGPU和VMware vSGA是图形虚拟化技术。
- Microsoft DDA需要安装带有Hyper-V角色的Windows Server 2016。
1.2 如何执行NVIDIA vGPU软件许可
NVIDIA vGPU软件许可的执行方式取决于NVIDIA vGPU软件部署,许可可以通过软件实施,也可以仅通过最终用户许可协议(EULA)实施。
NVIDIA vGPU软件按部署类型执行许可
NVIDIA vGPU软件部署必备的NVIDIA vGPU
软件许可证执行或实施B系列NVIDIA vGPUvPC or vWS软件看
注(2)。C系列NVIDIA vGPUvCS or vWS软件看
注(3)。Q系列 NVIDIA vGPUvWS软件看
注(4)。GPU透传&直通用于工作站或专业3D图形vWSSoftwareGPU透传&直通用于计算密集型虚拟服务器vCS软件看
注(5)。GPU透传&直通用于PC级应用程序vAppsEULA onlyMicrosoft DDA用于工作站或专业3D图形vWSSoftwareMicrosoft DDA用于计算密集型虚拟服务器vCS软件看
注(5)。Microsoft DDA用于PC级应用程序vAppsEULA onlyVMware vDGA用于工作站或专业3D图形vWSSoftwareVMware vDGA用于计算密集型虚拟服务器vCS软件看
注(5)。VMware vDGA用于PC级应用程序vAppsEULA only裸金属用于工作站或专业3D图形vWSSoftware裸金属用于PC级应用程序vAppsEULA onlyMicrosoft RemoteFX vGPUvPCEULA onlyVMware vSGAvPCEULA only
注意:
- 对于A系列NVIDIA vGPU部署,每个并发用户都需要一个vApps许可证,但仅有一个用户的许可证是通过软件执行的。其余用户的许可证是通过最终用户许可协议(EULA)执行的。
- vWS许可版本包括vPC许可版本:需要vPC许可证的虚拟GPU也可以使用vWS许可证。
- 对于C系列NVIDIA vGPU部署,每个分配给虚拟机的vGPU需要一个许可证,通过软件执行。此许可证对单个GPU上的最多10个vGPU实例有效,或者对分配给虚拟机的一个vGPU(分配了所有物理GPU的帧缓冲区)有效。当多个C系列vGPU分配给单个虚拟机时,每个分配给虚拟机的vGPU需要一个许可证。一个许可证通过软件执行。其余许可证通过EULA执行。
- 当多个Q系列vGPU分配给单个虚拟机时,只需要一个虚拟机的许可证,而不是为每个分配给虚拟机的vGPU都需要一个许可证。
- 对于GPU透传、Microsoft DDA和VMware vDGA部署用于计算密集型虚拟服务器,每个虚拟机需要一个许可证,通过软件执行。此许可证对将一个物理GPU分配给虚拟机有效。每额外分配一个物理GPU给虚拟机需要一个额外许可证。任何额外许可证通过EULA执行。
1.2.1 NVIDIA vGPU的软件执行软件许可
当运行NVIDIA vGPU软件的虚拟机(VM)首次启动时,分配给该VM的虚拟GPU或物理GPU以全能力运行。当通过软件执行许可时,如果虚拟机未能获得许可证,虚拟GPU或物理GPU的性能会随着时间的推移而下降。
未获得许可的vGPU或物理GPU性能下降的程度取决于自虚拟机启动和NVIDIA vGPU软件图形驱动程序加载以来经过的时间。
运行时间性能下降20分钟‣ 帧率限制为每秒15帧。
‣ 使用CUDA的应用程序和进程的性能下降。24小时‣ 帧率限制为每秒3帧。
‣ CUDA停止工作,CUDA API函数调用失败。
‣ vGPU的GPU资源分配受到限制,这将导致某些应用程序无法正确渲染或运行,或者在启动时报告错误。
虚拟机通过网络从NVIDIA vGPU软件许可证服务器获取许可证。当虚拟机启动时,许可证被“借出”或“签出”。虚拟机在关闭之前保持该许可证,然后将其释放回许可证服务器。
注意:有关设置和运行NVIDIA许可证系统的信息,请参考NVIDIA许可证系统用户指南。
图1说明了NVIDIA vGPU软件许可是如何通过软件执行的。
NVIDIA vGPU软件授权的软件执行
NVIDIA vGPU部署的其他注意事项:
对于NVIDIA vGPU部署,NVIDIA vGPU软件会根据vGPU类型自动选择正确的许可证类型。
在您为NVIDIA vGPU授权后,设置为使用NVIDIA vGPU的虚拟机能够运行全范围的DirectX和OpenGL图形应用程序。
许可证设置在重启后会保持有效,只有在许可证服务器地址更改或虚拟机切换到GPU透传模式时需要进行修改。
物理GPU部署的其他注意事项:
所需的许可证类型取决于物理GPU的部署方式。
‣ 在Windows的GPU透传模式下,或在Windows或Linux的裸金属部署中,物理GPU需要一个vWS许可证。
‣ 在Linux的GPU透传模式下,物理GPU需要一个vWS许可证或vCS许可证。
您还可以在透传模式或裸金属部署中以降低能力运行物理GPU,使用vApps许可证。在透传模式或裸金属部署中,vPC不可用。
1.2.2 仅通过EULA执行的NVIDIA vGPU软件许可
当许可仅通过最终用户许可协议(EULA)执行时,不会从许可证服务器中签出任何许可证。您必须遵守EULA的条款,确保已购买所有用于NVIDIA vGPU软件部署所需的许可证。nvidia-smi -q命令会指示产品已获得许可,即使没有从许可证服务器中签出许可证。
如果您所有的NVIDIA vGPU软件部署的许可仅通过EULA执行,则无需设置和运行NVIDIA vGPU软件许可证服务器。
1.3 物理GPU的显示分辨率
物理GPU支持的显示分辨率取决于NVIDIA GPU架构和应用于GPU的NVIDIA vGPU软件许可证。
vWS物理GPU分辨率
使用vWS许可证的GPU支持基于可用像素数量的最大组合分辨率,这由NVIDIA GPU架构决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器。
以下表格列出了在所有显示器具有相同分辨率的配置中,每个GPU在每个支持的显示分辨率下的最大显示器数量。
NVIDIA GPU
体系结构可用像素显示分辨率每个GPU显示Pascal及往后663552007680×432025120×2880或低于4Maxwell353894405120×288024096×2160或低于4
下表提供了混合显示的配置示例建议。
NVIDIA GPU
体系结构可用像素基础可用像素最大显示器示例混合显示
配置Pascal及往后663552002 7680×4320
displays4
1 7680×4320 display plus
2 5120×2880 displays
1 7680×4320 display plus
3 4096×2160 displays
Maxwell353894404 4096×2160
displays41 5120×2880 display plus
2 4096×2160 displays
注意:即使显示器的组合分辨率低于GPU的可用像素数量,您也不能使用超过四个显示器。例如,即使五个4096×2160的显示器的组合分辨率(44236800)低于GPU的可用像素数量(66355200),您也无法使用基于NVIDIA Pascal架构的GPU。
vApps或vCS物理GPU分辨率
使用vApps或vCS许可证的GPU支持一个具有固定最大分辨率的单个显示器。最大分辨率取决于以下因素:
‣ NVIDIA GPU架构
‣ 应用于GPU的NVIDIA vGPU软件许可证
‣ 分配给GPU的系统上运行的操作系统
LicenseNVIDIA GPU
体系结构操作系统最大显示分辨率每GPU显示器vAppsPascal or laterLinux2560×16001Pascal or laterWindows1280×10241MaxwellWindows and Linux2560×16001vCSPascal or laterLinux4096×21601
第二章 配置NVIDIA许可证系统的许可客户端
具有网络连接的客户端通过从NVIDIA许可证系统服务实例租赁许可证来获取许可证。该服务实例通过网络将许可证从NVIDIA许可证门户获得的浮动许可证池中提供给客户端。许可证在许可客户端关闭时返回给服务实例。
在配置许可客户端之前,请确保满足以下先决条件:
‣ 客户端上已安装NVIDIA vGPU软件图形驱动程序。
‣ 您希望在客户端上部署的客户端配置令牌已从NVIDIA许可证门户或DLS创建,具体说明请参见NVIDIA许可证系统用户指南。
‣ 防火墙或代理中的443和80端口必须开放,以允许服务实例与其许可客户端之间的HTTPS流量。这些端口必须对CLS实例和DLS实例均开放。
注意:对于DLS 1.1之前的版本,8081和8082端口也需要开放,以允许DLS实例与其许可客户端之间的HTTPS流量。尽管这些端口不再是必需的,但为了向后兼容,仍然支持它们。
图形驱动程序会在客户端上创建一个默认位置,用于存储客户端配置令牌。
配置许可客户端的过程对于CLS和DLS实例是相同的,但取决于客户端上运行的操作系统。
2.1 CLS实例的代理服务器要求和防火墙规则
为了通过代理服务器使受许可客户端与CLS实例之间进行通信,代理服务器必须满足一定要求。为了通过防火墙进行通信,必须定义允许特定URL上的流量的防火墙规则。配置代理服务器和定义防火墙规则的过程与配置CLS实例的过程是分开的。请使用您正在使用的代理服务器和防火墙的标准接口执行这些过程。
CLS实例的代理服务器要求
- NVIDIA许可证系统支持透明代理服务器和非透明代理服务器。
- 透明代理服务器向服务器标识自身,并且不修改客户端请求和响应。
非透明代理服务器不会显示客户端的IP地址,并且会修改客户端请求和响应。
位于受许可客户端和CLS实例之间的任何代理服务器必须允许对URL api.cls.licensing.nvidia.com的程序调用。
非透明代理服务器支持
NVIDIA许可证系统支持经过身份验证和未经身份验证的非透明代理服务器。
以下经过身份验证的代理服务器得到支持:
- Squid
对于经过身份验证的代理服务器,支持以下身份验证方法:
- 基本
- Microsoft Windows挑战/响应(Microsoft NTLM)(仅适用于Windows客户端)
- Kerberos(仅适用于属于Active Directory域的客户端)
CLS实例的防火墙规则
为了通过防火墙使受许可客户端与CLS实例之间进行通信,必须定义允许以下表中URL上的流量的防火墙规则。
URLTrafficapi.cls.licensing.nvidia.com
许可操作,即许可证的试用、续订和归还。
- 受许可客户端身份验证
api.licensing.nvidia.com未正常关闭的Windows受许可客户端的许可证归还
2.2 在Windows客户端上配置许可
从客户端执行以下任务:
1、仅物理GPU:将FeatureType DWord(REG_DWORD)注册表值添加到Windows注册表键HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvlddmkm\Global\GridLicensing。
注意:
如果您正在为NVIDIA vGPU获取许可证,则不需要FeatureType DWord(REG_DWORD)注册表值。NVIDIA vGPU软件会根据vGPU类型自动选择正确的许可证类型。
如果您正在升级现有驱动程序,则此值已设置。
将此值设置为GPU处于透传模式或裸金属部署的功能类型:
- 0:NVIDIA虚拟应用程序
- 2:NVIDIA RTX虚拟工作站
- 4:NVIDIA虚拟计算服务器
2、可选:如果要将客户端配置令牌存储在自定义位置,请将ClientConfigTokenPath String(REG_SZ)注册表值添加到Windows注册表键HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvlddmkm\Global\GridLicensing。
将值设置为要为客户端存储客户端配置令牌的文件夹的完整路径。您可以使用\完全限定域名-共享名称的语法指定文件夹的路径。默认情况下,客户端在%SystemDrive%:\Program Files\NVIDIA Corporation\vGPU Licensing\ClientConfigToken文件夹中搜索客户端配置令牌。通过指定映射到客户端的共享网络驱动器,可以简化在多个客户端上部署相同客户端配置令牌的过程。而不是将客户端配置令牌复制到每个客户端,您可以仅在共享网络驱动器中保留一个副本。
3、如果在受许可客户端和CLS实例之间配置了非透明代理服务器,请提供受许可客户端所需的代理服务器信息。
注意:在NVIDIA vGPU软件版本15.2之前,不支持经过身份验证的非透明代理服务器。
通过将以下注册表值添加到Windows注册表键HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvlddmkm\Global\GridLicensing来提供此信息。
a). 对于所有非透明代理服务器,在以下Windows注册表值中提供代理服务器的地址和端口号。
ProxyServerAddress String(REG_SZ)
代理服务器的地址。地址可以是完全限定域名,例如iproxy1.example.com,或IP地址,例如10.31.20.45。
ProxyServerPort String(REG_SZ)
代理服务器的端口号。
b). 自15.2版本以来:如有必要,提供将登录到代理服务器的用户的凭据。
对于使用以下身份验证方法的代理服务器,需要此信息:
- 基本身份验证
- Microsoft Windows挑战/响应(Microsoft NTLM)身份验证,适用于不属于Active Directory域的客户端 ProxyUserName String(REG_SZ) 将登录到代理服务器的用户的用户名。 ProxyCredentialsFilePath String(REG_SZ) 包含将登录到代理服务器的用户的加密凭据的文件的完整路径,例如C:\Program Files\NVIDIA Corporation\vGPU Licensing\ProxySettings\proxy-credentials.dat。 此文件的生成方式如生成加密凭据文件中所述。
4、如果要将客户端配置令牌存储在自定义位置,请创建要存储客户端配置令牌的文件夹。
如果文件夹是共享网络驱动器,请确保满足以下条件:
- 该文件夹在客户端上本地映射到ClientConfigTokenPath注册表值中指定的路径。
- 计算机对象具有访问共享网络驱动器上文件夹的权限。计算机对象需要这些权限,因为许可证服务在任何用户登录之前运行。
如果要将客户端配置令牌存储在默认位置,请省略此步骤。客户端配置令牌存储在安装图形驱动程序后会自动创建的默认文件夹中。
5、将客户端配置令牌复制到要存储客户端配置令牌的文件夹中。
确保此文件夹仅包含要部署在客户端上的客户端配置令牌,而不包含其他文件或文件夹。如果文件夹包含多个客户端配置令牌,则客户端将使用文件夹中最新的客户端配置令牌。
- 如果要将客户端配置令牌存储在默认位置,请将客户端配置令牌复制到%SystemDrive%:\Program Files\NVIDIA Corporation\vGPU Licensing\ClientConfigToken文件夹。
- 如果要将客户端配置令牌存储在自定义位置,请将令牌复制到上一步中创建的文件夹中。
6、重新启动NvDisplayContainer服务。
现在,客户端上的NVIDIA服务应自动从CLS或DLS实例获取许可证。
配置完Windows受许可客户端后,在NVIDIA控制面板中不再提供为基于网络的许可证服务器配置许可证的选项。
2.3 在Linux客户端上配置许可
执行此任务来自客户端。
1、作为root用户,在纯文本编辑器(如vi)中打开文件/etc/nvidia/gridd.conf。
2、在文件/etc/nvidia/gridd.conf中添加FeatureType配置参数,作为FeatureType="value"的新行。 value取决于您正在配置的已许可客户端分配的GPU类型。
GPU类型值NVIDIA vGPU
NVIDIA vGPU软件会根据vGPU类型自动选择正确类型的许可证。
物理GPU在透传模式或裸金属部署中的GPU的特性类型: ‣ 0:NVIDIA虚拟应用程序 ‣ 2:NVIDIA RTX虚拟工作站 ‣ 4:NVIDIA虚拟计算服务器
这个例子展示了如何为NVIDIA虚拟计算服务器配置已许可的Linux客户端。
# /etc/nvidia/gridd.conf.template - Configuration file for NVIDIA Grid Daemon
…
# Description: Set Feature to be enabled
# Data type: integer
# Possible values:
# 0 => for unlicensed state
# 1 => for NVIDIA vGPU
# 2 => for NVIDIA RTX Virtual Workstation
# 4 => for NVIDIA Virtual Compute Server
FeatureType=4
...
3、如果在您的已许可客户端和CLS实例之间配置了非透明代理服务器,请提供已许可客户端所需的有关代理服务器的信息。
注意:在NVIDIA vGPU软件发布版本15.2之前,不支持经过身份验证的非透明代理服务器。
a). 对于所有非透明代理服务器,请提供代理服务器的地址和端口号。 通过将以下配置参数添加到文件/etc/nvidia/gridd.conf中的单独行来提供此信息。
ProxyServerAddress=address
ProxyServerPort=port
**address **代理服务器的地址。地址可以是完全限定的域名,例如iproxy1.example.com,也可以是IP地址,例如10.31.20.45。
**port **代理服务器的端口号。
这个例子将代理服务器的地址设置为10.31.20.45,端口号设置为3128。
# /etc/nvidia/gridd.conf.template - Configuration file for NVIDIA Grid Daemon
…
ProxyServerAddress=10.31.20.45
ProxyServerPort=3128
...
b). 自15.2版本起:如果需要,提供将登录到代理服务器的用户的凭据。 对于使用基本身份验证的代理服务器,需要提供此信息。 通过将以下配置参数添加到文件/etc/nvidia/gridd.conf中的单独行来提供此信息。
ProxyUserName=domain\username
ProxyCredentialsFilePath=path
domain 用户所属的域,例如example.com。
**username **将登录到代理服务器的用户的用户名,例如clsuser。
**path **包含用户登录到代理服务器的加密凭据的文件的完整路径,例如/etc/nvidia/proxy-credentials.dat。 此文件是根据生成加密凭据文件中所述生成的。 这个例子将将登录到代理服务器的用户的域和用户名设置为example.com\clsuser,并将包含用户加密凭据的文件路径设置为/etc/nvidia/proxy-credentials.dat。
# /etc/nvidia/gridd.conf.template - Configuration file for NVIDIA Grid Daemon
…
ProxyUserName=example.com\clsuser
ProxyCredentialsFilePath=/etc/nvidia/proxy-credentials.dat
...
4、可选:如果要将客户端配置令牌存储在自定义位置,请将ClientConfigTokenPath配置参数添加到文件/etc/nvidia/gridd.conf中的新行中,如ClientConfigTokenPath="path"。
**path **要存储客户端配置令牌的目录的完整路径。默认情况下,客户端会在/etc/nvidia/ClientConfigToken/目录中搜索客户端配置令牌。 通过指定一个本地挂载的共享网络目录作为客户端的路径,您可以简化在多个客户端上部署相同客户端配置令牌的过程。 您可以在共享网络目录中仅保留一个副本,而不是将客户端配置令牌分别复制到每个客户端上。 这个例子展示了如何配置已许可的Linux客户端以在/mnt/nvidia/ClientConfigToken/目录中搜索客户端配置令牌。该目录是客户端上的一个共享网络目录的挂载点。
# /etc/nvidia/gridd.conf.template - Configuration file for NVIDIA Grid Daemon
…
ClientConfigTokenPath=/mnt/nvidia/ClientConfigToken/
...
5、保存对/etc/nvidia/gridd.conf文件的更改并关闭文件。
6、如果要将客户端配置令牌存储在自定义位置,请创建要存储客户端配置令牌的目录。 如果该目录是一个共享网络目录,请确保它在客户端上以ClientConfigTokenPath配置参数中指定的路径本地挂载。 如果要将客户端配置令牌存储在默认位置,请省略此步骤。在安装图形驱动程序后,客户端配置令牌的默认存储目录会自动生成。
7、将客户端配置令牌复制到要存储客户端配置令牌的目录中。 确保该目录中只包含您要部署在客户端上的客户端配置令牌,而不包含其他文件或目录。如果该目录包含多个客户端配置令牌,则客户端将使用该目录中最新的客户端配置令牌。
‣ 如果要将客户端配置令牌存储在默认位置,请将客户端配置令牌复制到/etc/nvidia/ClientConfigToken目录。
‣ 如果要将客户端配置令牌存储在自定义位置,请将令牌复制到上一步中创建的目录中。
8、确保客户端配置令牌的文件访问模式允许所有者读取、写入和执行令牌,而组和其他用户只能读取令牌。
a). 确定客户端配置令牌的当前文件访问模式。
# ls -l client-configuration-token-directory
b). 如果需要,将客户端配置令牌的模式更改为744。
# chmod 744 client-configuration-token-directory/client_configuration_token_*.tok
client-configuration-token-directory
客户端配置令牌目录 您在上一步中复制客户端配置令牌的目录。
9、重新启动nvidia-gridd服务。
客户端上的NVIDIA服务现在应该会自动从CLS或DLS实例获取许可证。 在配置了Linux已许可的客户端之后,在NVIDIA X Server设置中不再提供为基于网络的许可证服务器配置许可证的选项。
2.4 生成加密凭据文件
某些身份验证方法要求已许可的客户端在与代理服务器进行身份验证时提供用户凭据。为了使客户端能够安全地提供这些凭据而无需用户输入,您必须生成一个包含这些凭据的加密文件,客户端可以读取该文件。
以下身份验证方法需要加密凭据文件:
‣ 基本身份验证 ‣ Microsoft Windows挑战/响应(NTLM)身份验证(适用于不属于Active Directory域的客户端)
如何生成加密凭据文件取决于客户端所运行的操作系统。有关详细说明,请参考以下主题:
‣ 在Windows上生成加密凭据文件
‣ 在Linux上生成加密凭据文件
2.4.1 在Windows上生成加密凭据文件
以管理员用户身份在客户端的Windows PowerShell窗口中执行此任务。
1、切换到C:\Program Files\NVIDIA Corporation\vGPU Licensing。
PS C:\> cd "C:\Program Files\NVIDIA Corporation\vGPU Licensing\ProxySettings"
2、运行grid-proxy-credentials Windows PowerShell脚本。
PS C:\> .\grid-proxy-credentials.ps1
3、在打开的“选择输出文件路径”窗口中,导航到您想要生成凭据文件的目录,输入文件名,然后点击“保存”。
4、当在Windows PowerShell窗口中提示时,指定将在已许可客户端请求许可证时登录到代理服务器的用户的密码。 在配置将使用该文件的已许可客户端时,请提供该文件的路径,如《在Windows上配置已许可客户端》中所述。
2.4.2 在Linux上生成加密凭据文件
在客户端的Linux命令行中执行此任务。
1、运行grid-proxy-credentials.sh命令。
# /usr/lib/nvidia/grid-proxy-credentials.sh -o output-file-path
**output-file-path **您正在生成的凭据文件的完整路径。确保路径中的目录存在。
提示:要获取该命令的帮助信息,请输入/usr/lib/nvidia/grid-proxycredentials.sh --help。
这个例子创建了凭据文件/etc/nvidia/proxy-credentials.dat。
# /usr/lib/nvidia/grid-proxy-credentials.sh -o /etc/nvidia/proxy-credentials.dat
2、当提示时,指定将在已许可客户端请求许可证时登录到代理服务器的用户的密码。
在配置将使用该文件的已许可客户端时,请提供该文件的路径,如《在Linux上配置已许可客户端》中所述。
第三章、高级主题
本章讨论NVIDIA vGPU软件许可的高级主题和设置。
3.1 为许可证签出设置客户端主机标识符
如果虚拟机(VM)突然关闭,然后在网络配置更改后重新启动,可能会为同一VM签出两个许可证。您可以通过为许可证签出设置客户端主机标识符来避免这种情况。
默认情况下,许可证服务器选择它找到的第一个有效MAC地址来识别VM进行许可证签出。如果已签出许可证的VM突然关闭,可能不会将许可证释放回许可证服务器。如果在关闭后更改了VM的网络配置并重新启动VM,许可证服务器可能会使用不同的MAC地址来识别VM,这将导致同一VM签出两个许可证。设置客户端主机标识符可以避免这种情况,因为许可证服务器始终使用您设置的标识符来识别VM。
1、将LicenseHostId设置为VM上网络接口控制器(NIC)的MAC地址。
‣ 在Windows上,添加以下Windows注册表键设置:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvlddmkm\Global
\GridLicensing]"LicenseHostId"=vm-nic-mac-address
‣ 在Linux上,将以下条目添加到/etc/nvidia/gridd.conf:
LicenseHostId==vm-nic-mac-address
vm-nic-mac-address
许可证服务器将用于识别VM进行许可证签出的网络接口控制器(NIC)的MAC地址。仅指定地址中的数字和字母,不要包含空格或标点符号,例如:00005E0053FF。
2、将更改后的设置应用于VM。
‣ 如果分配给VM的vGPU或物理GPU已经获得许可,请重新启动VM。
‣ 否则,请按照《配置NVIDIA许可证系统的许可客户端》中所述为分配给VM的vGPU或物理GPU进行授权。
3.2 在启动后获取的许可证
在正常操作下,NVIDIA vGPU软件许可证是在平台在启动期间获取的,在用户登录和启动应用程序之前。如果许可证不可用,系统将定期重试向许可证服务器的许可证请求。在此期间,vGPU或GPU最初以完全功能运行,但如果系统无法获取许可证,则其性能会随时间降低。
未授权的vGPU或GPU的性能会像《NVIDIA vGPU软件许可的软件执行》中描述的那样降低。此外,启动时物理GPU性能降低的应用程序无法使用《物理GPU的显示分辨率》和vCS功能中描述的vWS功能。
在Windows上,无法获得许可证会通过弹出窗口或NVIDIA控制面板的许可证选项卡上的许可证状态指示。在Linux上,无法获得许可证会通过日志消息指示。
如果vGPU或GPU的性能已降低,当获得许可证时,vGPU或GPU的完全功能将恢复。但是,当性能降低时启动的应用程序软件可能需要重新启动才能识别和使用许可功能。
3.3 在与许可证服务器的间歇性连接下操作
为了签出许可证,vWS、vPC和vApps客户端在启动时需要与许可证服务器建立连接。
启动后,客户端可以在不与许可证服务器连接的情况下运行长达1天的时间,之后客户端将收到许可证即将到期的警告
3.4 NVIDIA vGPU软件许可的Windows注册表设置
NVIDIA vGPU软件许可的设置通过Windows注册表进行控制。
许可设置存储在此注册表键中:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvlddmkm\Global\GridLicensing
许可设置的注册表值总结如下表所示。
名称类型描述FeatureTypeDWord (REG_DWORD)在透传模式或裸金属部署中GPU的特征类型:
0:vApps
2:vWS
4:vCS
所有其他值保留。
不要在配置了NVIDIA vGPU的VM中更改此注册表键的值。LicenseIntervalDWord (REG_DWORD)指定许可证签出后可以借用的时间段,范围为10-10080分钟。
超过此时间后,客户端必须从服务器获取新的许可证。
默认值为1440分钟,相当于1天的时间段。DisableExpirationPopupsDWord (REG_DWORD)禁用或启用NVIDIA vGPU软件许可证到期的弹出通知。
0:启用许可证到期弹出通知
1:禁用许可证到期弹出通知
(可选:默认为0)DisableSpecificPopupsDWord (REG_DWORD)
如果此注册表键不存在,则启用NVIDIA vGPU软件许可证状态更改的弹出通知,以适应以下状态:
‣ 未授权
‣ 请求许可证
‣ 已获取许可证
‣ 许可证请求失败
‣ 许可证续订失败
‣ 许可证已过期(如果DisableExpirationPopups为0)
如果存在:
0:禁用所有许可证状态更改的弹出通知
1:禁用以下许可证状态更改的弹出通知:
‣ 请求许可证
‣ 已获取许可证
‣ 许可证续订失败
(可选:默认为0)
EnableLoggingDWord (REG_DWORD)如果此注册表键不存在,则记录重要的许可事件。如果存在:
0:禁用重要许可事件的记录
1:启用重要许可事件的记录
(可选:默认为1)LicenseHostIdString (REG_SZ)如果此注册表键不存在,许可证服务器将选择找到的第一个有效MAC地址来标识用于许可证签出的VM。
如果存在,此注册表键必须是VM上网络接口控制器(NIC)的MAC地址,许可证服务器将使用该地址来标识用于许可证签出的VM。
只指定地址中的数字和字母,不包含任何空格或标点符号,例如,00005E0053FF。
设置此注册表键可防止单个VM进行两次许可证签出,如果VM突然关闭,然后在更改其网络配置后重新启动。ClientConfigTokenPathString (REG_SZ)要存储客户端配置令牌的文件夹的完整路径。
仅在希望将客户端配置令牌存储在自定义位置时设置此注册表键。ProxyServerAddressString (REG_SZ)代理服务器地址。
仅在您的许可客户端和CLS实例之间配置了非透明代理服务器时设置此注册表键。ProxyServerPortString (REG_SZ)代理服务器端口号。
仅在您的许可客户端和CLS实例之间配置了非透明代理服务器时设置此注册表键。
在NVIDIA控制面板中管理许可控件的注册表键值
NVIDIA控制面板中的许可控件通过Windows注册表中的NvCplDisableManageLicensePage DWord(REG_DWORD)注册表值进行控制,位于以下注册表键中:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvlddmkm
\NVControlPanel2\RegisteredServers\Overrides\{DFA226E7-D28D-407D-95ED-5A79D9745BB5}
如果此注册表键值不存在,则在支持许可的GPU上在NVIDIA控制面板中显示许可控件。
如果存在此注册表键值:
‣ 0:在NVIDIA控制面板中显示许可控件
‣ 1:在NVIDIA控制面板中隐藏许可控件
‣ 所有其他值:保留
第四章、故障排查
这一章节描述了基本的故障排除步骤。
4.1 已知问题
在进行故障排除或提交错误报告之前,请查看随每个驱动程序发布的发布说明,了解当前版本的已知问题和潜在解决方法。
4.2 验证已许可客户端的NVIDIA vGPU软件许可证状态
在配置客户端使用NVIDIA vGPU软件许可证后,通过显示已许可产品的名称和状态来验证许可证状态。 要验证已许可客户端的许可证状态,请使用-nvidia-smi运行-q或--query选项。如果产品已获得许可,许可证状态中将显示到期日期。
nvidia-smi -q
==============NVSMI LOG==============
Timestamp : Wed Nov 23 10:52:59 2022
Driver Version : 525.60.06
CUDA Version : 12.0
Attached GPUs : 2
GPU 00000000:02:03.0
Product Name : NVIDIA A2-8Q
Product Brand : NVIDIA RTX Virtual Workstation
Product Architecture : Ampere
Display Mode : Enabled
Display Active : Disabled
Persistence Mode : Enabled
MIG Mode
Current : Disabled
Pending : Disabled
Accounting Mode : Disabled
Accounting Mode Buffer Size : 4000
Driver Model
Current : N/A
Pending : N/A
Serial Number : N/A
GPU UUID : GPU-ba5b1e9b-1dd3-11b2-be4f-98ef552f4216
Minor Number : 0
VBIOS Version : 00.00.00.00.00
MultiGPU Board : No
Board ID : 0x203
Board Part Number : N/A
GPU Part Number : 25B6-890-A1
Module ID : N/A
Inforom Version
Image Version : N/A
OEM Object : N/A
ECC Object : N/A
Power Management Object : N/A
GPU Operation Mode
Current : N/A
Pending : N/A
GSP Firmware Version : N/A
GPU Virtualization Mode
Virtualization Mode : VGPU
Host VGPU Mode : N/A
vGPU Software Licensed Product
Product Name : NVIDIA RTX Virtual Workstation
License Status : Licensed (Expiry: 2022-11-23 10:41:16
GMT)
…
…
4.3 许可事件日志
重要的许可事件(例如,获取许可证、归还许可证、许可证到期或无法获取许可证)将被记录,以帮助排除问题。错误事件将记录错误代码,以帮助您确定错误的根本原因。许可证获取事件将记录已许可产品的名称和版本,例如,GRID-Virtual-WS,2.0。
Windows许可事件日志
在Windows上,许可事件记录在纯文本文件%SystemDrive%\Users\Public\Documents\NvidiaLogging\Log.NVDisplay.Container.exe.log中。
当日志文件大小达到16 MB时,日志文件将被轮换。将创建一个新的日志文件,并将旧的日志文件重命名为Log.NVDisplay.Container.exe.log1。每次日志文件轮换时,每个现有旧日志文件的文件名中的数字将增加1。当日志文件数量超过16时,将删除最旧的日志文件。
默认情况下启用日志记录。要禁用日志记录,请在路径HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvlddmkm\Global\GridLicensing中创建名为EnableLogging(DWORD)且值为零的Windows注册表键。
Linux许可事件日志
在Linux上,默认情况下启用日志记录。许可事件记录在/var/log目录中的标准活动日志中。此目录中的日志文件名称取决于Linux发行版,例如:
- 对于Red Hat Enterprise Linux和CentOS发行版,文件名为messages。
- 对于Ubuntu发行版,文件名为syslog。 您可以使用操作系统的标准功能来轮换和清除这些日志。 获取和归还许可证以及瞬时网络故障的日志消息 此示例显示了以下事件序列的日志消息:
- 当启动VM时获取许可证
- 当关闭VM时归还许可证
- 当许可证服务器不可达时,启动VM时无法与许可证服务器通信
- 在与许可证服务器通信恢复后获取许可证
Mon Oct 22 20:53:29 2018:<1>:License acquired successfully. (Info: http://
gridlicense1.example.com:7070/request; GRID-Virtual-WS,2.0)
Mon Oct 22 20:54:22 2018:<1>:End Logging
Mon Oct 22 20:54:24 2018:<0>:License returned successfully
Mon Oct 22 20:54:24 2018:<0>:End Logging
Mon Oct 22 20:55:36 2018:<1>:Failed server communication. Please ensure your system
has network connectivity to the license server
Mon Oct 22 20:55:49 2018:<1>:Failed server communication. Please ensure your system
has network connectivity to the license server
Mon Oct 22 20:56:01 2018:<1>:Failed server communication. Please ensure your system
has network connectivity to the license server
Mon Oct 22 20:56:19 2018:<1>:Failed server communication. Please ensure your system
has network connectivity to the license server
Mon Oct 22 20:56:31 2018:<1>:Failed server communication. Please ensure your system
has network connectivity to the license server
Mon Oct 22 20:56:44 2018:<1>:Failed server communication. Please ensure your system
has network connectivity to the license server
Mon Oct 22 20:56:47 2018:<1>:License acquired successfully. (Info: http://
gridlicense1.example.com:7070/request; GRID-Virtual-WS,2.0)
Mon Oct 22 21:36:11 2018:<1>:End Logging
Mon Oct 22 21:36:12 2018:<0>:License returned successfully
Mon Oct 22 21:36:12 2018:<0>:End Logging
获取许可证失败的日志消息
此示例显示了由于请求类型的许可证不可用而无法获取许可证的日志消息。
Mon Oct 22 22:26:36 2018:<1>:Error : Server URL : http://
gridlicense1.example.com:7070/request -
[1,7E2,2,0[70000030,0,702C3]]
Insufficient count for the requested feature.
Mon Oct 22 22:28:15 2018:<1>:Error : Server URL : http://
gridlicense1.example.com:7070/request -
[1,7E2,2,0[70000030,0,702C3]]
Insufficient count for the requested feature.
Mon Oct 22 22:29:55 2018:<1>:Error : Server URL : http://
gridlicense1.example.com:7070/request -
[1,7E2,2,0[70000030,0,702C3]]
Insufficient count for the requested feature.
Mon Oct 22 22:31:34 2018:<1>:Error : Server URL : http://
gridlicense1.example.com:7070/request -
[1,7E2,2,0[70000030,0,702C3]]
Insufficient count for the requested feature.
4.4 故障排除步骤
如果NVIDIA vGPU软件系统无法获取许可证,请按以下步骤排除故障:
- 检查重要许可事件日志,了解故障原因。有关详细信息,请参阅许可事件日志。
- 检查许可证服务器地址和端口号是否正确配置。
- 从NVIDIA vGPU软件系统到许可证服务器地址运行网络ping测试,以验证系统与许可证服务器的网络连接性。
- 验证NVIDIA vGPU软件系统上的日期和时间是否正确配置。如果时间设置不准确或向后调整了大量时间,则系统可能无法获取许可证。
- 验证正在使用的许可证服务器是否具有NVIDIA vGPU软件系统配置为使用的NVIDIA vGPU软件功能所需的可用许可证类型
版权归原作者 技术瘾君子1573 所有, 如有侵权,请联系我们删除。