LPS:Správa licencí

Z HelpDesk

Licence

Moho komerčních systémů se snaží předcházet neoprávněnému užívání SW mechanismem založenýmm na kontrole vlastněných licencí k danému produktu. Námi užívaný licenční SW lze tedy rozdělit na

  • FLEXlm - většina SW na ZČU využíva současný "standard" v technologii správy licencí - FLEXlm (www.macrovision.com, dříve www.globetrotter.com). Tento produkt je nezávislý na platformě a nabízí mnoho možností pro realizaci konkrétního licenčního modelu. Naše prostředí zahrnuje instalaci na UNIXové i Windowsové platformě.
  • iFOR/LS - toto řešení je využíváno produktem CATIA (IBM), a je nainstalováno na jediném stroji ody.zcu.cz a užívá port 1515
  • Autodesk License Manager - licenční SW pro produkty Autodesk. Tento SW je nainstalován na jediném stroji bootes.zcu.cz
  • Ansa License Manager - licenční manažer k balíku ANSA. Nainstalováno na stroji lm1.zcu.cz.
  • Math License Manager - licenční server pro SW Grid Mathematica. Nainstalováno na stroji lm1.zcu.cz.


FLEXlm servery

Z různých (historických i technických) důvodů máme následující FLEXlm servery.

Jméno OS
lm1, lm3, lm3 Debian Linux
ody IRIX 6.5.18m
bootes Windows NT


Licenční server je reprezentován hlavním procesem lmgrd, jenž na základě informací z licenčního souboru spouští vendor démony jednotlivých produktů (např. FluentLm, ansyslmd, MLM, sgifd, ...). Klientský SW kontaktuje lmgrd na definovaném portu, který mu sdělí, jak komunikovat s patřičným démonem, jenž je odpovědný za licence konkrétního produktu. Licenční soubor vypadá přibližně následovně:

# FLEXlm servery (redundantni konfigurace)
#
#
# MATLAB license passcode file for use with FLEXlm.
# LicenseNo: 84911 HostID: 000bcdfdbc8d
# HostID: 00105a2fe8e6
# HostID: 0040339fd30e
# win PLP 14-62458-23450-51678-51328-53268-58564-40446-09868-10443-39782
SERVER skirit.ics.muni.cz 000bcdfdbc8d 1712
SERVER lm.zcu.cz 00105a2fe8e6 1712
SERVER tom.ruk.cuni.cz 0040339fd30e 1712

USE_SERVER

DAEMON MLM /var/software/flexlm/vendor/lm_matlab port=1713

INCREMENT TMW_Archive MLM 14 01-jan-0000 0 0D304B3E9F875DCDE2D0 \
VENDOR_STRING=1000008000000840c5c8ef HOSTID=DEMO SN=84911
INCREMENT MATLAB MLM 14 01-jan-0000 150 2DF0EB1EBB213463BEFB \
DUP_GROUP=UH SN=84911
INCREMENT SIMULINK MLM 14 01-jan-0000 150 AD30AB2E8F79E14B5B24

Klíčové slovo SERVER označuje stroj, na kterém je licenční SW spuštěn. Řádka obsahuje jméno, HW adresu a port, na kterém komunikuje. Jméno stroje a port lze modifikovat, klíče jsou vázány na HW adresu. Následují licece jednotlivých produktů, které tento licenční server obhospodařuje. Vendor démon je specifikován klíčovým sloven DAEMON nebo VENDOR, jménem procesu a cestou k spouštěnému souboru. Navíc zde může být uvedena cesta k souboru (options), který obsahuje např. rezervaci licence pro daného uživatele, skupinu, stroj apod. Na dalších řádkách jsou jednotlivé klíče pro aktivaci různých SW modulů produktu. Zde je obvykle čitelná platnost klíče (datum), počet licencí a typ (plovoucí - pro libovolný stroj, pevná - vázaná na konkrétní stroj (HOSTID=0000f871ae40)) Znovu je třeba připomenout, že licenční soubor může obsahovat licence několika produktů.

Licenční software je umístěn na AFS v adresáři /afs/zcu.cz/software/flexlm

drwx------ 6 root root 2048 2003-03-27 11:29 Globetrotter/
lrwxr-xr-x 1 root root 3 2004-02-13 08:32 latest -> 9.2/
drwxr-xr-x 6 root root 6144 2004-07-01 11:43 licenses/
drwxr-xr-x 2 root root 2048 2004-01-22 10:41 options/
drwxr-xr-x 3 root root 2048 1996-10-24 11:57 share/
drwxr-xr-x 5 root root 2048 2003-02-18 10:40 vendor/
drwx------ 4 root root 2048 2000-01-10 15:57 2.4/
drwxr-xr-x 6 root root 2048 2004-02-13 08:29 9.2/

Podstatné jsou adresáře Globetrotter (původní verze) nebo latest - démon lmgrd a licenční utility pro jednotlivé platformy, licenses - licenční soubory, vendor - vendor démoni jednotlivých produktů.

Aby byla zajištěna větší dostupnost, jsou některé licence spravovány trojicí redundantních serverů.

Jednotlivé licenční servery/soubory.

Jméno Licenční soubor Vendor
lm1.zcu.cz, skirit.ics.muni.cz, tom.ruk.cuni.cz matlab.lic, license.opts MLM
lm1.zcu.cz, lm2.zcu.cz, lm3.zcu.cz adams.lic, ansys.lic,
fluent.lic, msc.lic
ansyslmd, FluentLm, MSC
lm1.zcu.cz, lm2.zcu.cz, lm3.zcu.cz msc_master_key.lic MSC
ody license-sgi.dat (license-zcu.dat) uglmd, MLM, FEMLAB, SRAC, BRNI, sdrc_ms9, eds_id11, sgifd, pam_lmd
bootes adresář bootes/ adskflex, BRNI, SRAC, pam_lmd
bootes adresář bootes/ ptc_d

Kontrola

Stav licenčního serveru je možné zjistit prostřednictvím příkazu lmstat (popř. univerzálním příkazem lmutil, tedy lmutil lmstat). Pro úplnost je třeba připomenout, že příkazy lm* lze používat vzdáleně, tedy z libovolného počítače.

hypnos> /zcu/software/flexlm/latest/lmutil lmstat -c /zcu/software/flexlm/licenses/license-matlab.dat
lmutil - Copyright (c) 1989-2003 by Macrovision Corporation. All rights reserved.
Flexible License Manager status on Mon 7/12/2004 10:42

License server status: 1712@skirit.ics.muni.cz,1712@lm.zcu.cz,1712@tom.ruk.cuni.cz
License file(s) on skirit.ics.muni.cz: /var/tmp/lm_TMW.dat:

skirit.ics.muni.cz: license server UP (MASTER) v9.2
lm.zcu.cz: license server UP v9.2
tom.ruk.cuni.cz: license server UP v9.2

Vendor daemon status (on skirit.ics.muni.cz):

MLM: UP v9.2


Specifikace serveru/licence je možná i číslem portu a jménem stroje, nikoliv jen souborem.

> lmutil lmstat -c 1986@bootes.zcu.cz
lmutil - Copyright (C) 1989-2002 Globetrotter Software, Inc.
Flexible License Manager status on Sun 4/27/2003 16:26
 
License server status: 1986@bootes.zcu.cz
License file(s) on bootes.zcu.cz:
C:\FlexLm\licenses\acad.lic:C:\FlexLm\licenses\cosmos-flowplus.lic:C:\FlexLm\licenses\cosmos.lic:C:\FlexLm\licenses\pam2001.lic:
 
bootes.zcu.cz: license server UP (MASTER) v8.4

Vendor daemon status (on bootes.zcu.cz):

adskflex: UP v7.2
BRNI: UP v6.0
SRAC: UP v8.1
pam_lmd: UP v7.0


Běžet by měl jak licenční server na určeném portu, tak všechny vendor démoni (stav UP). V případě redundantní konfigurace by u jednoho z procesů měl být příznak MASTER. Pro vynucení načtení nové konfigurace slouží příkaz lmreread (lmutil lmreread). Někdy jej lze použít i v případech, kdy některý z vendor daemonů neběží. Přesto je vhodné se podívat zda nevypršela licence, popř. nahlédnout v adresáři /var/adm/flexlm do logu na příčiny.

> lmreread -c /zcu/software/license/license-sgi.dat

Je-li pořeba ukončit (přestartovat) veškeré licenční procesy, jsou na UNIXech k dispozici standardní startovací skripty (/etc/init.d, /sbin/init.d), nebo příkaz lmdown (parametr -c obdobně jako u lmreread, lmstat, ...). Před opětovným spuštěním zkontrolujte, zda procesy již neběží a zda jsou uvolněny porty (ps, netstat). Někdy je nutné ukončit procesy příkazem kill a vyčkat na vypršení timeoutů síťových spojení.


# ps -ef | grep flex
root 69361 69078 0 08:45:57 pts/0 0:00 grep flex
nobodyV 1295 1 0 Apr 11 ? 6:49 /var/software/flexlm/Globetrotter/@sys/lmgrd -2 -p -c /var/software/flexlm/lice
nobodyV 1305 1295 0 Apr 11 ? 1:15 ptc_d -T ody.zcu.cz 8.0 3 -c /var/software/flexlm/licenses/license-ptc.dat -p -
nobodyV 1350 1 0 Apr 11 ? 144:01 /var/software/flexlm/Globetrotter/@sys/lmgrd -2 -p -c /var/software/flexlm/lice
nobodyV 1365 1350 0 Apr 11 ? 5:25 ansyslmd -T ody.zcu.cz 8.0 3 -c /var/software/flexlm/licenses/license-sgi.dat -
nobodyV 1366 1350 0 Apr 11 ? 1:27 adamsd -T ody.zcu.cz 8.0 3 -c /var/software/flexlm/licenses/license-sgi.dat -p
nobodyV 1367 1350 0 Apr 11 ? 1:13 MLM -T ody.zcu.cz 8.0 3 -c /var/software/flexlm/licenses/license-sgi.dat -p --l
nobodyV 1371 1350 0 Apr 11 ? 1:18 FEMLAB -T ody.zcu.cz 8.0 3 -c /var/software/flexlm/licenses/license-sgi.dat -p
nobodyV 1374 1350 0 Apr 11 ? 1:15 SRAC -T ody.zcu.cz 8.0 3 -c /var/software/flexlm/licenses/license-sgi.dat -p --
nobodyV 1375 1350 0 Apr 11 ? 1:08 BRNI -T ody.zcu.cz 8.0 3 -c /var/software/flexlm/licenses/license-sgi.dat -p --
nobodyV 1377 1350 0 Apr 11 ? 12:51 FluentLm -T ody.zcu.cz 8.0 3 -c /var/software/flexlm/licenses/license-sgi.dat -
nobodyV 1378 1350 0 Apr 11 ? 5:06 Fluentd -T ody.zcu.cz 8.0 3 -c /var/software/flexlm/licenses/license-sgi.dat -p
nobodyV 1379 1350 0 Apr 11 ? 1:02 ADBED -T ody.zcu.cz 8.0 3 -c /var/software/flexlm/licenses/license-sgi.dat -p -
nobodyV 1380 1350 0 Apr 11 ? 2:39 sdrc_ms8 -T ody.zcu.cz 8.0 3 -c /var/software/flexlm/licenses/license-sgi.dat -
nobodyV 1381 1350 0 Apr 11 ? 1:08 sdrc_ms7 -T ody.zcu.cz 8.0 3 -c /var/software/flexlm/licenses/license-sgi.dat -
nobodyV 1382 1350 0 Apr 11 ? 6:45 sdrc_ms9 -T ody.zcu.cz 8.0 3 -c /var/software/flexlm/licenses/license-sgi.dat -
nobodyV 1384 1350 0 Apr 11 ? 0:40 sgifd -T ody.zcu.cz 8.0 3 -c /var/software/flexlm/licenses/license-sgi.dat -p -
 
# /usr/etc/netstat 
Active Internet connections
Proto Recv-Q Send-Q Local Address Foreign Address (state)
tcp 0 0 localhost.sunrpc *.* CLOSED
tcp 0 0 ody.zcu.cz.1025 ui203p08-new.civ.2494 ESTABLISHED
tcp 0 0 ody.zcu.cz.7200 ui203p08-new.civ.2488 ESTABLISHED
tcp 0 0 ody.zcu.cz.7200 ui505p03-mbs.ntc.33750 ESTABLISHED
tcp 0 0 ody.zcu.cz.7200 ui203p07-new.civ.1557 ESTABLISHED
tcp 0 0 ody.zcu.cz.7200 notebook05-mis..3008 ESTABLISHED
tcp 0 0 ody.zcu.cz.7200 ui505p08-mbs.ntc.1115 ESTABLISHED
tcp 0 0 ody.zcu.cz.7200 ui505p12-mbs.ntc.32929 ESTABLISHED
tcp 0 0 ody.zcu.cz.7200 minos16.zcu.cz.33781 ESTABLISHED
tcp 0 0 ody.zcu.cz.1025 ui203p10-new.civ.2978 ESTABLISHED
tcp 0 0 ody.zcu.cz.1035 uk109p02-kks.fst.1096 ESTABLISHED
tcp 0 0 ody.zcu.cz.7200 skirit5.ics.muni.36304 ESTABLISHED
tcp 0 0 ody.zcu.cz.1035 ui203p01-new.civ.1070 ESTABLISHED
tcp 0 0 ody.zcu.cz.1025 ui203p09-new.civ.4232 ESTABLISHED
tcp 0 0 ody.zcu.cz.1028 ui202p15-lps.civ.1222 ESTABLISHED
tcp 0 0 ody.zcu.cz.7200 ul110p03-kks.fst.2234 ESTABLISHED
tcp 0 0 ody.zcu.cz.1025 ui203p03-new.civ.3374 ESTABLISHED
tcp 0 0 ody.zcu.cz.telnet hypnos.zcu.cz.52590 ESTABLISHED
tcp 0 0 ody.zcu.cz.7200 ul229p13-kke.fst.32787 ESTABLISHED
tcp 0 0 ody.zcu.cz.1028 ui202p14-lps.civ.1420 ESTABLISHED
udp 0 0 localhost.1042 *.*
udp 0 0 localhost.sunrpc *.*
udp 0 0 ody.zcu.cz.ntp *.*
udp 0 0 localhost.ntp *.*

# ps -ef | grep flex | awk '{print $2}' | xargs kill -9

Port, se kterým je lic. server svázán, je uvolněn až po nějaké chvíli. Přesněji jde o porty, které jsou určeny licenčním souborem, tj. port lmgrd (v uvedeném příkladu je to 7200) a případně i porty vendorů, které jsou kvůli firewallu také nadefinovány. Ostatní vendor démoni mají pokaždé jiný port.

Ve Windows by mělo k zastavení činnosti či přestartování lic. SW postačit vypnutí/zapnutí služby FLEXlm Service.

Pro uživatele projektu ORION byl v balíku sysutil připraven skript lmstat, který vyžaduje jako parametr pouze názvy produktů (např. lmstat fluent, ...) Jelikož nemusí být obsah skriptu aktuální, je z pohledu správce lepší používat výše zmíněné postupy.

Konfigurace

Na většině UNIXových serverů je tento SW umístěn v lokálním adresáři /var/software/flexlm. Licence jsou nalinkovány přímo na AFS (obdobně i adresář options). SW je startován z klasických rc-skriptů (IRIX - /etc/init.d, DUX - /sbin/init.d). Ve Windows je lic. server realizován službou FLEXlm Service. Binární soubory jsou umístěny v C:\Flexlm, který obsahuje z UNIXu známe utility (lmstat, ...) a klikací nástroj lmtools.

ody 11# l /var/software/flexlm/
total 0
drwxr-xr-x 3 root sys 92 Jan 21 2003 Globetrotter/
drwx------ 2 root sys 26 Mar 24 11:26 bin/
lrwxr-xr-x 1 root sys 36 Jan 21 2003 licenses -> /afs/zcu.cz/software/flexlm/l icenses/
drwxr-xr-x 2 root sys 50 Jan 21 2003 licenses.local/
lrwxr-xr-x 1 root sys 35 Jan 21 2003 options -> /afs/zcu.cz/software/flexlm/op tions/
drwxr-xr-x 3 root sys 30 Jan 21 2003 vendor/
  • license-zcu.dat - neredundantní konfigurace, dnes link na license-sgi.dat. Předpokládáme postupně přechod na linuxovou platformu a redundantní konfiguraci (lm1, lm2, lm3.zcu.cz).
  • license-msc.dat - v současné době link na license-zcu.dat (vendor MSC byl dříve v odděleném souboru, některé aplikace se na tento soubor mohou odkazovat)
  • matlab.dat - popř. link license-matlab.dat - redundantní konfigurace serverů několika univerzit
SERVER skirit.ics.muni.cz 000bcdfdbc8d 1712
SERVER lm.zcu.cz 00105a2fe8e6 1712
SERVER tom.ruk.cuni.cz 0040339fd30e 1712

Licenční procesy Matlabu vykazovali bohužel vyšší nestabilitu, proto byl v tomto případě na serverech periodicky (každou hodinu) spouštěn kontrolní script, který v případě potřeby zajistí nápravu. V našem případě šlo o server ori.zcu.cz. Pokud by i na nových linuxových strojích nebylo chování lepší, je možné do crontabu přidat položku

30 * * * * /var/software/flexlm/test_MLM >/dev/null 2>&1

Originál scriptu je umístěn v /zcu/software/flexlm/share/bin

  • license-sgi.dat - neredundantní provoz
SERVER ody.zcu.cz 6906ab42 7103

Jelikož je na tomto stroji spuštěn ipfilter a licenci některých SW požadují i stanice z vnějšku univerzity, muselo dojít k svázání vendor daemonů s konkrétními porty, které jsou pak povoleny v konfiguraci ipfilter.

VENDOR ansyslmd /var/software/flexlm/vendor/@sys port=7202
DAEMON FluentLm /zcu/software/flexlm/vendor/@sys/FluentLm port=7200
DAEMON Fluentd /zcu/software/flexlm/vendor/@sys/Fluentd port=7201 

V /etc/ipfilterd.conf pak

# Accept FLEXlm communication
accept tcp.dport == 7103 || tcp.dport == 7200 || tcp.dport == 7201 || tcp.dport == 7202
accept udp.dport == 7103 || udp.dport == 7200 || udp.dport == 7201 || udp.dport == 7202


  • 1986@bootes.zcu.cz - neredundantní konfigurace. Jde o stroj s OS Windows, licence jsou umístěny v C:\FlexLm\licenses (originály v /afs/zcu.cz/software/flexlm/license/bootes). Nové verze FLEXlm (lmgrd + vendor) nevyžadují umisťování licenčních informací do společného souboru (viz např. license-sgi.dat). Pak je možné nechávat jednotlivé licence ve zvoleném adresáři jako samostatné soubory s příponou .lic. Server startuje s parametrem odkazujícím se na tento adresář a sám vyhledá a načte všechny .lic soubory.

Klíče k protuktům PTC (Pro/ENGINEER) používají jinou identifikaci stroje (hostid), z tohoto důvodu nemohla být licence přidána do stejného adresáře. PTC tedy spravuje další instance lmgrd.

  • lm/lm*/*.lic - Nové licence se snažíme migrovat na linuxove stroje lm[123].zcu.cz. Licence určené pouze pro jeden licenční server jsou umístěné v adresáři lm/lm1 a musí mít příponu .lic. Licence určené pro trio licenčních serverů lm[123] jsou umístěné v adresáři lm/lm123 a musí mít příponu .lic. Servery startují s parametrem odkazujícím se na tyto adresáře a vyhledávají a načítají všechny .lic soubory.

V jednom adresáři mohou být pouze licence pro stejné licenční servery (ať se jedná o jeden server nebo o trio) a stejné syntaxe. Momentálně je struktura adresářu následující:

/afs/zcu.cz/software/flexlm/licenses/lm# ls *
lm1.matlab:
license.opts  matlab.lic

lm123:
adams.lic  ansys.lic  fluent.lic  msc.lic

lm123b:
msc_master_key.lic

Z hlediska bezpečnosti je vhodné, aby licenční procesy neběžely pod identitou uživatele root.


IFOR/LS (i4lmd)

Produkt CATIA používá rozdílný licenční mechanismus. Celý balík je nainstalován na stanici ody.zcu.cz v adresáři /opt/lum. SW je bezproblémový a update licencí probíhá podle pokynů, které jsou součástí licenčního souboru. Produkt jsem nikdy nestudoval, nemám tedy žádné další instrukce pro udržování a kontrolu chodu.


Autodesk License Manager

Tento manažer je nainstalován na stroji bootes.zcu.cz a je představován službou Autodesk License Manager (AdLM). Ovládání/konfigurace jsou dostupné z menu, kde je vytvořena skupina Autodesk LIcense Manager.


Ansa

Odlišný lic. manažer. Licence je na lm1.zcu.cz v adresáři /var/software/beta_lm/etc/license.dat . Démon je startován ze skriptu /etc/init.d/beta_lm, vlastní binární soubor je uložen v /var/software/beta_lm/bin/beta_lm. Logy se ukládají do adresáře /var/log/beta_lm/. Dokumentaci k licenčnímu manažeru je možné najít v /var/software/beta_lm/beta_lm_tools_user_guide.pdf.


MathLM

Licenční manažer dodaný spolu se SW Grid Mathematica. Démon je startován na serveru lm1.zcu.cz ze skriptu /etc/init.d/mathlm, vlastní software a lic. soubor jsou uloženy v /var/software/Wolfram/MathLM.