Chapter 10. Licensing

SGI products are licensed by the FLEXlm application. To set up and maintain the licensing scheme for these products at your site, use the FLEXlm End User Manual (available online through IRIS InSight) as your primary source of license administration information. The InSight version of the FLEXlm guide contains icons that identify information that either does not apply to the SGI implementation of FLEXlm or requires additional explanation. This chapter of IRIX Admin: Software Installation and Licensing provides the alternative and additional information that is marked by the icons.

This chapter contains these sections:

About License Manager

Users license their applications with License Manager, a graphical tool that can be accessed from the System toolchest. The License Manager dialog is shown in Figure 10-1. Whenever a user installs, updates, or removes a floating licence with this dialog, License Manager restarts (or stops, for license removals) the local license manager daemon to put the user's change into effect.

Figure 10-1. License Manager Dialog

License Manager Dialog

Starting with IRIX 6.5, the License Manager dialog contains an Options button. This button allows users to manage licenses for Alias/Wavefront applications in addition to the group of applications that are normally licensed on SGI systems.

See the LicenseManager(1M) reference page for more information on the user interface to licensing.

License Types

The FLEXlm implementation on SGI systems supports these license types:

  • A node-locked license permits a particular system to run an application. The number of users is not restricted with this type of license.

  • Floating licenses permit a fixed number of users on a network to use an application simultaneously.

  • Incremental licenses permit the number of users on a floating license to be increased. The total number of users permitted to use an application is the sum of users specified on the INCREMENT lines for an application listed in the floating license file (see “FLEXlm Files and Utilities on SGI Systems”).

  • Package licenses permit several applications to use a single license. The license is listed in a PACKAGE line in the floating license file. This line contains a COMPONENTS attribute that identifies the applications that the package licenses (see “FLEXlm Files and Utilities on SGI Systems”).

The License Request Process Illustrated

Figure 10-2 illustrates the events in the license request process.

Figure 10-2. License Request Process

License Request Process

The license request process consists of this sequence of events:

  1. When it starts, the master license daemon (lmgrd) reads the server copy of the license file and starts the vendor daemons listed in the file.

  2. When it starts, the user application searches the client copy of the license file for the address of the license server, which includes the port number for lmgrd.

  3. The user application requests the vendor daemon's address from the master daemon.

  4. The master daemon sends the address of the vendor daemon to the user application.

  5. The user application requests a license from the vendor daemon, using the address it received.

  6. The vendor daemon checks its memory for available licenses and grants or denies a license.

Software Licensing and Partitioned Environments

SGI Origin3000 and Onyx3000 systems give you the flexibility to distribute and manage a partitioned system environment on a large CPU server system. In most cases, software licensing behaves in the same manner on a single system image as in a partitioned environment. However, there are some differences as discussed in this section.

Partitions

In a partitioned system, you can divide a single distributed shared memory (DSM) system image into smaller system images. Each partition is logically separated from other partitions in the same shared memory system, with each partition having its own memory, IRIX operating system, IP address and I/O.

For example, a 128 CPU system can be partitioned into four partitions as:

Table 10-1. System Partition Example

Partition 1 = 64 CPUs

Partition 3 = 32 CPUs

Partition 2 = 16 CPUs

Partition 4 = 16 CPUs



Note: The number and size of the partitions are reconfigurable.


Licenses Per CPU

Unlike most SGI software products which use GLOBEtrotter FLEXlm as the standard software license manager for node-locked and floating software licenses, partitioned systems are licensed by CPU count. Depending on your system, therefore, you must purchase licenses to support N CPUs. Products that are licensed per-CPU include, for example, SGI MIPSPro compilers and CXFS, the clustered XFS file system.

How Software Licensing Works in Partitioned Systems

The following table explains how software licenses work in a partitioned system environment.


Note: lmhostid returns the identical value for each partition on a system. See the lmhostid(1) reference page for more information.


Table 10-2. How Software Licenses Work in Partitioned Environments

Type of Software License

Behavior on Partitioned System

Demo license

No restrictions - can be run on any number of copies of IRIX on a partitioned system.

FLEXlm node-locked uncounted concurrent license

If you purchase a node-locked license, you will be able to use it concurrently on any of the partitions.

FLEXlm node-locked counted concurrent license

A license for N concurrent use can only be used on a specific partition since the license manager is tied to the hostid/hostname of the partition.

FLEXlm floating licenses over a network

If you purchase a set number of concurrent licenses to be used over a network, N licenses will be available from your license server. These can can be installed either on the partitioned system or somewhere else in the network.

Licensed for number of CPUs

In most cases, this type of license is purchased for the total number of CPUs on a system, not for the number of CPUs in a partition. This license can then be used on any subset of CPUs in any partition.

Depending on the policy from the company selling the software license, you may be able to purchase a license to run on a single partition only. There are some limitations for this type of licensing, however. If the partition is reconfigured to support a larger number of CPUs than allowed by the license, the license may cease to work. If the partition is likewise reconfigured to support a smaller number of CPUs, the license will most likely continue to work. Furthermore, this license can be used on other partitions if it is not tied to a unique identifier on the partition. A unique identifier could be the hostid or partition number.

To enable all partitions to use the software license without restrictions, the license should support the total number of CPUs on the system, not the number of CPUs in the partition.

Proprietary software license

The software vendor is responsible to modify the license code as necessary. There are some OS commands that behave in the following manner on a partitioned environment:

lmhostid(1) - returns the same value for each partition.

hostid(1) - returns a unique value for each partition. hostid is based upon the internet address that is unique for each partition.

hinv(1) - returns the hardware configuration specific to the partition.


FLEXlm Files and Utilities on SGI Systems

When you install FLEXlm software on SGI systems, licensing files and programs are stored in these locations:

/usr/etc/lmgrd  

license manager daemon

/usr/etc/sgifd  

SGI vendor daemon

/var/flexlm/licensefile.db  

database of license files for SGI applications

/var/flexlm/license.dat  

license file for node-locked licenses

/var/flexlm/license_<hostname>.dat  

license file for floating licenses on the hostname server

/usr/sbin (lmdiag, lmdown, and so on)  

FLEXlm license administration tools

/etc/init.d/flexlm  

Startup script for the FLEXlm license daemon

/etc/config/lmgrd.options  

Configuration file containing arguments to the lmgrd command

/etc/config/flexlm  

Text file for enabling or disabling automatic startup of the FLEXlm daemon

Licenses for Alias/Wavefront applications are stored in separate files:

/var/flexlm/aw.dat 

license file for node-locked licenses to Alias/Wavefront applications

/var/flexlm/aw_<hostname>.dat 

license file for floating licenses to Alias/Wavefront applications on the hostname server

The License File Database for SGI Applications

To locate their licenses, SGI applications search the /var/flexlm/licensefile.db file, which is located on the client system and contains a list of license files and directories. These applications search each file listed in licensefile.db whose name ends in .dat; they also search all .dat files stored in licensefile.db directories. The contents of /var/flexlm/licensefile.db are illustrated in Example 10-1, which contains one license directory and two license files:

Example 10-1. Database of License Locations

/var/flexlm
/var/flexlm/license.dat
/usr/lib/SoftWindows/FLEXlm/license.dat

A license file in /var/flexlm/licensefile.db might direct the application to a license server to continue its search for a license (see “The USE_SERVER Feature” for details). If you plan to store licenses in a directory or filename that is different from those specified in /var/flexlm/licensefile.db, or if you create new locations for license files, you must modify /var/flexlm/licensefile.db to reflect your changes.


Note: The license daemon does not search /var/flexlm/licensefile.db to determine license file locations; licensefile.db is used only by SGI applications. See “Specifying License File Locations”, which follows.


Specifying License File Locations

Neither the license manager daemon (lmgrd) nor the vendor daemons use /var/flexlm/licensefile.db to determine license file locations. These daemons locate license files by other methods:

  • On Silicon graphics servers, the master license daemon is started with parameters specified in the /etc/config/lmgrd.options file. The -c argument in this file specifies the location of the license file. If you change the location of the license file, you must modify /etc/config/lmgrd.options to specify the new license file location.

  • Applications whose license files are not listed in /var/flexlm/licensefile.db locate license files by means of the LM_LICENSE_FILE environment variable (also see “The port@host Feature”). To specify the location of license files, enter a line like the sample below in the .cshrc file (.profile or .kcshrc for Bourne or Korn shells) on the client system:

    LM_LICENSE_FILE=<licensefile_path1>:<licensefile_path2>... 
    

New FLEXlm Features

The FLEXlm application contains two new features that can be implemented with applications using FLEXlm version 5 (or later): USE_SERVER and an enhancement to the port@host feature.

The USE_SERVER Feature

Version 5 of the FLEXlm application offers USE_SERVER, which eliminates the need to copy and maintain the server's license file on client systems. With this feature, only two lines are required in the client's license file: a SERVER line and the USE_SERVER line. When an application reads the USE_SERVER line, it reads the license file on the specified server instead of reading the local file.

Example 10-2 illustrates a client license file that implements the USE_SERVER feature. In this example, the application is directed to server sparkplug to read its license file:

Example 10-2. Client License File With the USE_SERVER Feature

SERVER sparkplug 023456 1701
USE_SERVER


Note: The USE_SERVER feature is valid only for applications built with FLEXlm version 5.



The port@host Feature

The version 5 enhancement to the port@host specification provides the same function as the USE_SERVER feature: it directs applications to read their license file from a remote server instead of reading it locally. Like earlier versions of port@host, the enhanced port@host uses the LM_LICENSE_FILE environment variable to specify the server. For example, the specification in Example 10-3 directs applications to read the license from sparkplug by means of a connection to port 1701.

Example 10-3. Specification for the Enhanced port@host Feature

LM_LICENSE_FILE=1701@sparkplug

It is possible to specify unenhanced port@host processing (FLEXlm version 4) for applications built with FLEXlm version 5. To specify unenhanced port@host processing, prepend a minus sign (–) to the LM_LICENSE specifications (shown in Example 10-4).

Example 10-4. Specification for Unenhanced Processing of port@host

LM_LICENSE_FILE=-1701@sparkplug


Starting and Stopping Licensing Daemons

The installation process installs a startup script, /etc/init.d/flexlm, that starts and stops the FLEXlm license daemon. This script executes the lmgrd command to start the license daemon, using the values in the configuration file /etc/config/lmgrd.options.

In its startup sequence, the system reads the file /etc/config/flexlm to determine whether to start the license daemon. By default, this file contains the value off, which prevents the daemon from starting. To enable the lmgrd daemon, change the value in /etc/config/flexlm to on using this commands:

# /etc/chkconfig flexlm on

To start the FLEXlm license daemon, enter this command as superuser:

# /etc/init.d/flexlm start

To stop the FLEXlm license daemon when it is running, enter this command:

# /etc/init.d/flexlm stop


Note: The FLEXlm daemon is started and stopped automatically when a workstation user installs, updates, or removes a license with the License Manager (see “About License Manager”).