LPS:Správa licencí
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ářilm/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ářilm/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.