<h2>Migration Information</h2>
<p>Current (legacy) NVIDA license service reaches end of support on July 31st, 2023. Therefore a new NVIDIA license service was prepared. The new NVIDIA license service is based on DLS version 3.1 (Delegated License Service 3.1 - <a href="https://docs.nvidia.com/license-system/dls/3.1.0/index.html">https://docs.nvidia.com/license-system/dls/3.1.0/index.html</a>).</p>
<p>The new NVIDA license service uses the same DNS names and IPs, but different port (443) and requires new client configuration with a token file.</p>
<p><strong>All existing Windows GPU instances require new client configuration or reinstallation.</strong> All public Windows GPU images from public Image Management Service already uses the new NVIDIA license service.</p>
<p>Linux GPU instances created from our public images are not effected, as unlicensed NVIDIA open source driver is used.</p>
<p><strong>DNS change in eu-nl to new IPs and new license server is scheduled for 4. March 2024. Old license server is only reachable via old IPs afterwards</strong></p>
<p><strong>Run down of all old license servers is scheduled for 11. March 2024.</strong></p>
<table>
<thead>
<tr>
<th>affected region:</th>
<th>eu-de</th>
<th>eu-nl</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>affected DNS names:</strong></td>
<td>gpulicence01.eu-de.otc-service.com <br> gpulicence02.eu-de.otc-service.com <br> <del>gpulicence1.eu-de.otc-service.com</del> <br> <del>gpulicence2.eu-de.otc-service.com</del> <br> <del>gpulicence1.otc-service.com</del> <br> <del>gpulicence2.otc-service.com</del></td>
<td>gpulicence01.eu-nl.otc-service.com <br> gpulicence02.eu-nl.otc-service.com</td>
</tr>
<tr>
<td><strong>IP addresses:</strong></td>
<td>198.19.34.77 <br> 198.19.44.221</td>
<td>198.19.44.140 <br> 198.19.54.123</td>
</tr>
<tr>
<td><strong>old IP addresses:</strong></td>
<td>no IP address change</td>
<td>100.125.1.27 <br> 100.125.1.28</td>
</tr>
<tr>
<td><strong>old port:</strong></td>
<td>7070</td>
<td>7070</td>
</tr>
<tr>
<td><strong>new port:</strong></td>
<td>443</td>
<td>443</td>
</tr>
</tbody>
</table>
<h3>How to check connection to new NVIDIA license servers</h3>
<p>start PowerShell and run commands:</p>
<pre><code>Test-NetConnection gpulicence01.eu-de.otc-service.com -port 443
Test-NetConnection gpulicence02.eu-de.otc-service.com -port 443
Test-NetConnection 198.19.34.77 -port 443
Test-NetConnection 198.19.44.221 -port 443 </code></pre>
<p>test result should be: </p>
<pre><code>TcpTestSucceeded : True</code></pre>
<p>example:</p>
<pre><code>PS C:\Users\Administrator\Desktop> Test-NetConnection gpulicence01.eu-de.otc-service.com -port 443
ComputerName : gpulicence01.eu-de.otc-service.com
RemoteAddress : 198.19.34.77
RemotePort : 443
InterfaceAlias : Ethernet
SourceAddress : 192.168.1.117
TcpTestSucceeded : True
PS C:\Users\Administrator\Desktop> Test-NetConnection 198.19.34.77 -port 443
ComputerName : 198.19.34.77
RemoteAddress : 198.19.34.77
RemotePort : 443
InterfaceAlias : Ethernet
SourceAddress : 192.168.1.117
TcpTestSucceeded : True</code></pre>
<h3>How to reconfigure NVIDIA license server client on Windows Servers</h3>
<h4>Reconfiguration with Chocolatey (eu-de only)</h4>
<ul>
<li>Install Chocolatey client if not already done</li>
</ul>
<pre><code># define chocolatey server - choose the right one for your region
$ChocoServer = 'chocolatey.eu-de.otc-service.com'
# $ChocoServer = 'chocolatey.eu-nl.otc-service.com'
# download and install the client
Set-ExecutionPolicy Bypass -Scope Process -Force
iex ((New-Object System.Net.WebClient).DownloadString("http://$ChocoServer/install.ps1"))</code></pre>
<ul>
<li>Install Chocolatey Package OTCnvidialicense (set ChocoServer with server of region and choose install, upgrade or upgrade all command)</li>
</ul>
<pre><code># define chocolatey server - choose the right one for your region
$ChocoServer = 'chocolatey.eu-de.otc-service.com'
# $ChocoServer = 'chocolatey.eu-nl.otc-service.com'
# install chocolatey package
choco install OTCnvidialicense --source="http://$ChocoServer/chocolatey"
# force reinstallation chocolatey package and confirm all messages automatically
choco install OTCnvidialicense -y --force --source="http://$ChocoServer/chocolatey"
# upgrade specific chocolatey package (if already installed)
choco upgrade OTCnvidialicense -y --source="http://$ChocoServer/chocolatey"
# upgrade all chocolatey packages
choco upgrade all -y --source="http://$ChocoServer/chocolatey"</code></pre>
<h4>Manual Reconfiguration</h4>
<ul>
<li>
<p>Download NVIDIA client token file (eu-de):
<a href="/user/pages/01.home/new-nvidia-license-server-dls-3-1/eu-de_client_configuration_token.tok">eu-de_client_configuration_token.tok</a></p>
</li>
<li>
<p>Download NVIDIA client token file (eu-nl):
<a href="/user/pages/01.home/new-nvidia-license-server-dls-3-1/eu-nl_client_configuration_token.tok">eu-nl_client_configuration_token.tok</a></p>
</li>
<li>
<p>Copy eu-de_client_configuration_token.tok to clients in folder:</p>
</li>
</ul>
<p><code>C:\Program Files\NVIDIA Corporation\vGPU Licensing\ClientConfigToken</code></p>
<ul>
<li>
<p>verify if the license file location is configured in registry:</p>
<pre><code>if (-not(get-Item -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\nvlddmkm\Global\GridLicensing' -ErrorAction SilentlyContinue)) {
New-Item -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\nvlddmkm\Global\GridLicensing' -Force -ErrorAction SilentlyContinue
}
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\nvlddmkm\Global\GridLicensing' -name 'ClientConfigTokenPath' -value 'C:\Program Files\NVIDIA Corporation\vGPU Licensing\ClientConfigToken' -Force -ErrorAction SilentlyContinue
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\nvlddmkm\Global\GridLicensing' -name 'ClientConfigTokenPath' -value 'C:\Program Files\NVIDIA Corporation\vGPU Licensing\ClientConfigToken' -Force -ErrorAction SilentlyContinue</code></pre>
</li>
<li>
<p>set the correct feature type in registry:</p>
</li>
</ul>
<pre><code># NVIDIA RTX Virtual Workstation (graphic mode)
$FeatureType = 2
# NVIDIA Virtual Compute Server (compute mode e.g. for p3 (A100) flavvor)
# $FeatureType = 4
# values for older driver versions <= 474.xx (Windows Server 2012R2 and 2016)
New-ItemProperty -Path 'HKLM:\Software\NVIDIA Corporation\Global\GridLicensing' -name 'FeatureType' -value $FeatureType -Force -PropertyType DWORD -ErrorAction SilentlyContinue
Set-ItemProperty -Path 'HKLM:\Software\NVIDIA Corporation\Global\GridLicensing' -name 'FeatureType' -value $FeatureType -Force -ErrorAction SilentlyContinue
# value for newer driver version > 474.xx (Windows Server 2019 and 2022)
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\nvlddmkm\Global\GridLicensing' -name 'FeatureType' -value $FeatureType -Force -PropertyType DWORD -ErrorAction SilentlyContinue
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\nvlddmkm\Global\GridLicensing' -name 'FeatureType' -value $FeatureType -Force -ErrorAction SilentlyContinue</code></pre>
<ul>
<li>Restart the "NVIDIA Display Container LS" service</li>
</ul>
<pre><code>Restart-Service NVDisplay.ContainerLocalSystem</code></pre>
<h3>How to check NVIDIA license server client</h3>
<ul>
<li>after Restart of "NVIDIA Display Container LS" service wait 60 seconds, then run this powershell command:</li>
</ul>
<pre><code>if (Test-Path 'C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe') {$nvidia_smi = 'C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe'}
if (Test-Path 'C:\windows\system32\nvidia-smi.exe') {$nvidia_smi = 'C:\windows\system32\nvidia-smi.exe'}
if ($nvidia_smi) {
& $nvidia_smi -a | Select-String 'License Status' | out-string;
} else {
Write-Output 'nvidia-smi.exe not found'
}</code></pre>
<ul>
<li>verifiy if a license expiry date is shown</li>
</ul>
<p>successfull licensed:</p>
<pre><code> License Status : Licensed (Expiry: 2023-7-15 5:17:44 GMT)</code></pre>
<p>unsuccessfull:</p>
<pre><code> License Status : Licensed (Expiry: N/A)</code></pre>
<p>unsuccessfull:</p>
<pre><code> License Status : Unlicensed</code></pre>