9. License Management System¶
9.1. xGT Licensing¶
xGT licensed products use a licensing scheme based on core or socket counts. There are two types of licenses supported by xGT: floating licenses and node-locked licenses. A floating license requires a license server. With a floating license when a node requires access to resource, it checks them out from the license server. A node-locked license in contrast, is tied to a specific machine and doesn’t require a license server. The following page describes in detail node-locked license management. For information about floating licenses see: Floating License Management System.
Unless otherwise specified, all instructions and file locations described on this page are on the machine that runs the xGT server.
For node-locked licenses, users will receive a license file tailored for their specific platform requirements and need to place this file at a specific location on their system.
The default location is /etc/xgtd/licenses/xgtd.lic
.
This section explains how the xGT Licensing Model works.
9.1.1. Socket and Core Based Licensing¶
Sockets or compute cores are the unit of the xGT licensing system. Each license contains a number of licensed sockets or cores that can be used by the xGT server for both floating and node-locked licenses.
When the xGT server launches, and it has a core limit, it will use the smallest of the following numbers of threads:
The total number of cores on the system times the threads per core
The licensed number of cores times the threads per core
The configured number of worker threads (
system.worker_threads
)
When the xGT server launches, and it has a socket limit, it will use the smallest of the following numbers of threads:
The total number of sockets on the system times the cores per socket times the threads per core
The licensed number of sockets times the cores per socket times threads per core
The configured number of worker threads (
system.worker_threads
)
Note that generally the OS of the platform running the xGT server will have hyperthreading turned on. In which case, there will be two threads per core.
The following sections explain details about the node-locked license. For information about floating licenses see: Floating License Management System.
9.2. License Management System Components¶
The license management system for xGT products is X-Formation’s LM-X license manager suite.
The main components of this system are:
License file (xgtd.lic)
Supplied utilities (lmxendutil)
9.2.1. License File¶
The license file contains license information.
The two main readable fields in the license file are the date of expiration (END=2025-02-10
) and the limit on the number of sockets or cores to use (i.e., the options SocketLimit=value
or CoreLimit=value
).
The default name that xGT products use for this license file is xgtd.lic
.
Detailed information on the license file contents is provided in License File Format.
9.2.2. License Location Configuration¶
In order for a running instance of xGT to use a license, the application configuration value license.location
must be set to an appropriate license location.
For more information on setting xGT configuration values, please see Configuring the Server.
The configuration value license.location
should contain one or more file paths that will be used by the xGT server to find a valid license file.
Multiple license paths are allowed and should be separated by a colon (:). If multiple paths are given, local licenses will be preferred over network licenses. Local license paths will contain the exact location of the license file, whereas network license paths will contain just the port and URL.
A few examples of node-locked license paths:
/etc/xgtd/licenses/xgtd.lic
/etc/xgtd/licenses/xgtd.lic:/etc/xgtd/licenses/xgtd-alt.lic
A few examples of network license paths:
Information about the license such as the expiration date, sockets, cores and threads is always logged and can be used to determine which license is being used. This information is written in the general log (see Logging and Auditing).
9.3. Preparing to Install¶
This section summarizes the procedures needed to install and successfully run the xGT license system.
The general procedures for installing and activating the license management system are:
Determine the machines for the xGT server
Download the license tool package
Obtain a valid license file for the machine
Requirements:
Access to xGT website
A valid HostID of the server machine
License file (generally received via email)
Supported platform
9.3.1. HostID¶
Trovares provides the utility lmxendutil in the RPM to obtain a HostID from the xGT server machine. Only ETHERNET values are valid for licensing.
9.4. Installing¶
In order to install you will need this RPM package provided by Trovares.
9.4.1. Install Software¶
Installing the package is fairly straight forward. On the machine intended to be used for the xgtd:
Download the packages
Install the packages
These can be summarized as:
Download the license tool package from the link provided by Trovares (typically provided by email). Then install it:
sudo dnf install xgt-license-tools-X.Y.Z-1.x86_64.rpmThe package will install to
/opt/xgtd/
.Download the xGT server package provided as link by Trovares (typically provided by email). Then install it:
sudo dnf install xgt-server-X.Y.Z-1.x86_64.rpm
9.4.2. Install a License File¶
You will need a license supplied by Trovares, to complete the licensing process. If you do not have a license, contact gettingstarted@trovares.com with your request and provide a HostID value of the xGT server machine.
On the xGT server machine do the following steps:
To obtain the HostID run
/opt/xgtd/bin/lmxendutil -hostid
. This will list all the hostids of the machine. You should choose one listed as Ethernet that is a permanent interface. Some interfaces will be for VPNs. Do not use VPNs.A sample output from such a run:
/opt/xgtd/bin/lmxendutil -hostid LM-X End-user Utility v5.0 Copyright (C) 2002-2021 X-Formation. All rights reserved. ETHERNET: ens3 HostID: 000C2BC32G83 ETHERNET: ens4 HostID: 0A42F8D4C3F0 HOSTNAME: wyvern HostID: wyvern USERNAME: jacob HostID: jacob IPADDRESS: 192.128.121.148 HostID: 192.128.121.148 IPADDRESS: 192.138.111.* HostID: 192.138.111.* IPADDRESS: 192.118.*.* HostID: 192.118.*.*
When you receive your license file place it in
/etc/xgtd/licenses/
. By default, it should be namedxgtd.lic
.Change the setting in
xgtd.conf
to point to your new license file, if necessary.
Once the license is installed, you should be able to run xGT:
systemctl start xgtd
More information about interaction with xGT server can be found in Licensing.
9.5. License File Format¶
This section describes the basic format of the license file. The license file will look similar to below:
FEATURE xgtd
{
VENDOR=TROVARES VERSION=1.6 END=2010-02-28 OPTIONS="CoreLimit=4"
COMMENT="HOSTID=000AB2FC62785"
KEY=5UgwnMBQLeLPii1ZVIMKAnU4MA8iEa1F8n]x8yp8gI8vzepVmYAN0BzxL7WhpKTWYhM1X25SIwEqELECf8ScPwdVnhwm2]fxII2f \
coR8febhKKAwLv5R3r52cnMWYHJkad]bU1gIWzLv7uCHZDP78mBX6kLU4yIv]ShgQCa]wixHU61LBtLBBbr6EQKq90IK08A3mUM6 \
sJPj5O]LGIJE5eaQpsotAPZE[1wddNqoYbOeQ0RKdDdMM]icS02SHZqUpJijyZquw1imAtfB1Dm4HA1w8d9DhWL8CEgT2XWCaKSS \
e65xtGwybpq9c37BdeAIxMzTVk[HUQDjgy80wAJ86nAy4WxxpRuZmDqN[r[lUlw5dTPvja0Tb2[A88UOlWXhGoq9jcAJd]p1iSk8 \
NpdnQGXJ3D7nBVsuAUERoQkzIJO3CEkTn]0KtOf3Wtxx610KjYeXzc7Guy6T0uy8Ri7CKMPR25E85FluI[7LrlgO42nMEnyxzUe[ \
ABSwahyvfy7yalvFQrs8H6hH1NC1Z7jXYmR8Zd0icEM2obzGI6qNAUOk[VdEEVdxhQIXPblG
}
In this file CoreLimit is the number of cores this license contains. Version is the version of xGT that this license is for. End is the expiration date of license. A comment may be preset to indicate other information such as MAC address.
9.6. LM-X Error Messages¶
The table below lists the most common licensing error codes and their meanings.
For an exhaustive list see: Exhaustive List of LM-X Error Messages
Return Code # |
Return Code |
Description |
---|---|---|
0 |
LMX_SUCCESS |
Operation successful. |
9 |
LMX_FEATURE_NOT_FOUND |
Feature not found. |
12 |
LMX_TOO_LATE_DATE |
Software expired. |
13 |
LMX_BAD_VERSION |
Software version does not match license. |
20 |
LMX_VIRTUAL_DENY |
Feature not allowed to run on a virtual machine. |