본문 바로가기
소프트웨어

FlexLM (Software License Management)

by yororing 2024. 3. 21.

00 개요: 용어 정의

0. Software License Management (SLM) 란

  • 모든 기관은 어느 특정한 세트의 소프트웨어를 필요로 함
  • 이 소프트웨어들은 하나 또는 여러개로 된 번들로 되어있을 수 있으며 또한 무료 또는 유료로 있을 수 있음
  • 유료 소프트웨어를 사용 및 실행하기 위해서는 Software License Managers을 필요로 함
  • Software License Management (SLM): 단일 콘솔에서 유료 소프트웨어의 모든 권한과 제약들을 관리하는 과정
  • 기능적인 정의: 소프트웨어를
    • 1) 어떻게 사용하고
    • 2) 누가 사용 가능하고
    • 3) 언제 사용 가능하고
    • 4) 어디에 사용 가능한지를 제어 및 규제하는 역할을 하는 합법적인 과정

1. FlexLM이란 (= FlexNet Publisher)

  • 전자 라이센싱 기반의 License Management의 한 방식
  • Flexera라는 회사의 대표적인 License Management Solution (소프트웨어 앱 제품)
  • FlexNet Publisher이라는 이름으로 변경됨 (2000년도 부터 2009년도 까지: 소유주가 바뀌면서 여러번 이름이 바뀌었다가 결국에는 FlexNet Publisher로 정착)

2. FlexNet Publisher이란 (= FlexLM)

  • License Management(라이선스 관리)를 위한 FlexNet Licensing®의  대표적인 소프트웨어 앱 제품
  • 소프트웨어 밴더들이 perpetual, node-locked, and pay-per-use한 License들을 관리하는데 사용 가능
  • 많은 고객들에게는 아직 "FlexLM"이라는 이름으로 더 알려져 있음

3. Flexera란

  • FlexLM (aka FlexNet Publisher) License Management 제품을 파는 회사
  • 미국 Chicago-based 사기업으로서 1300 이상의 직원과 50,000 이상의 고객, 30 million devices를 관리하고 있음
  • Known as the world’s leading software license management provider and second only to Gemalto in license management because of Gemalto’s large base of hardware license management

01 FlexLM 유틸리티

0. 개요

  • FlexLM은 License Manager를 모니터링하는데 사용할 수 있는 License Management 유틸리티를 제공
  • 모든 FLEXnet Licensing 유틸리티들은 단일 실행파일인 lmutil로 패키지 되어있음
    • lmutil은 개별 명령어 또는  wrapper 로 설치될 수 있음
      • 개별 명령어로 설치: 개별 명령어 이름에 대한 링크를 생성하거나 lmutil을 개별 명령어 이름으로 복사하여 설치
      • wrapper로 설치: 개별 명령을 lmutil 명령어로 실행하는 래퍼(wrapper)로 설치 (예: lmutil lmstat 또는 lmutil lmdown)

1. lmutil 유틸리티 사용하기

lmutil 명령어:

  • lmutil을 통해 FlexLM License Management 유틸리티에 접근 가능
  • Command Prompt (Terminal)에서 flexlm 디렉토리로 가 lmutil 입력시 lmutil.exe 유틸리티의 모든 기능 목록 조회 가능
    • 출력 예)
      # lmutil 출력값
      lmutil - Copyright (c) 1989-2018 Flexera. All Rights Reserved.
      usage:  lmutil lmborrow | lmborrowl -status
              lmutil lmborrow | lmborrowl -purge
              lmutil lmborrow | lmborrowl -purge -status
              lmutil lmborrow | lmborrowl -clear
              lmutil lmborrow | lmborrowl {all|vendor} dd-mmm-yyyy:[time]
              lmutil lmborrow -return [-c licfile] [-d display_name]  [-u username] [-h hostname] [-fqdn] [-vendor name] feature [-bv version]
              lmutil lmborrowl -return [-c licfile] [-d display_name]  [-u username] [-h hostname] [-fqdn] [-vendor name] feature
              lmutil lmdiag [-c licfile] [-n]
              lmutil lmdown [-c licfile] [-q] [-all] [-vendor name] [-force] [-help]
              lmutil lmhostid [-ptype (PHY|AMZN|VM)] [-ether|-internet (v4|v6)|-user|-n|
                        -display|-hostname|-hostdomain|-string|-long|-uuid
                        -eip|-ami|-iid|-genid|-flexid]
              lmutil lminstall [-i infile] [-o outfile]
                      [-overfmt {2, 3, 4, 5, 5.1, 6, 7.1, 8}]
                      [-odecimal] [-maxlen n]
              lmutil lmnewlog [-c licfile] vendor new-file [-secondary], or
              lmutil lmnewlog [-c licfile] feature new-file [-secondary]
              lmutil lmpath -status
              lmutil lmpath -override {all | vendor } path
              lmutil lmpath -add {all | vendor } path
              lmutil lmremove [-c licfile] feature user host display
              lmutil lmremove [-c licfile] -h feature host port handle
              lmutil lmremove [-c licfile] [-tsborrow <client_host>] | [-tsborrowstat]
              lmutil lmreread [-c licfile] [-vendor name] [-all]
              lmutil lmswitchr [-c licfile] vendor new-file, or
              lmutil lmswitchr [-c licfile] feature new-file
              lmutil lmstat [-c licfile] [lmstat-args]
              lmutil lmswitch [-c licfile] vendor new-file, or
              lmutil lmswitch [-c licfile] feature new-file
              lmutil lmver { flexlm_binary | -fnls }
              lmutil lmvminfo [-long]
              lmutil lmtpminfo [-long]
              lmutil -help (prints this message)
              lmutil utility_name -help  (display detailed usage information)
  • Arguments
    • -c license_file_path
      • Most lmutil utilities need to know the path to the license file
      • This is specified with a -c license_file_path argument, or by setting the LM_LICENSE_FILE environment variable
      • Otherwise, the default location is used
      • The utilities also honor all VENDOR_LICENSE_FILE environment variables
      • Some utilities take more than one license file path in a licensefile list separated by colons on UNIX and semi-colons on Windows
      • Pathnames which include spaces have to be enclosed in double quotes
    • -help: Displays usage information and exits.
    • -v: Displays the FLEXnet Licensing version of the utility and exits.
    • -verbose: Displays longer description for all errors found

License Administration Utilities

  • lmborrow: supports license borrowing
  • lmdiag: diagnoses license checkout problems
  • lmdown: gracefully shuts down selected license daemons (both lmgrd and all vendor daemons) on the license server machine (or on all three machines in the case of three-server redundant servers)
  • lmhostid: reports the hostid of a system
  • lminstall: converts license files b/w different formats
  • lmnewlog: moves existing report log info to a new file name and starts a new report log file with existing file name
  • lmpath: allows users direct control over license file path settings 
  • lmremove: releases a hung license to the pool of free licenses
  • lmreread: causes the license daemon to reread the license file and start any new vendor daemons
  • lmstat: displays the status of a license server system
    • The lmstat utility helps you monitor the status of all network licensing activities, including:
      • 실행중인 daemon들
      • License 파일들
      • 각 feature들의 사용자들
      • 특정한 vendor daemon들이 serve하는 feature들의 사용자들
      • 빌려진 BORROW license들
    • 문법: lmstat [-a] [-c license_file_list] [-f [feature]] [-i [feature] [-s[server] [-S [vendor]] [-t timeout_value]
      • -a: 모든 정보 반환
      • -c license_file_list: 지정된 license 파일(들) 사용
      • -f [feature]: 지정된 feature의 사용자들 반환, 지정안되어있을 경우 모든 feature들의 usage info 반환
      • -i [feature]: Displays information from the FEATURE/INCREMENT line for the specified feature, or all features if feature is not specified
      • -s [server]: Displays status of all license files listed in $VENDOR_LICENSE_FILE or $LM_LICENSE_FILE on server, or on all servers if server is not specified
      • -S [vendor]: Lists all users of vendor’s features
      • -t timeout_value: Sets connection timeout to timeout_value. This limits the amount of time lmstat spends attempting to connect to server
    • 출력 예
      # lmstat -a 출력값
      lmstat - Copyright (c) 1989-2018 Flexera. All Rights Reserved.
      Flexible License Manager status on Thu 3/21/2024 17:27
      License server status: 27000@sidya
          License file(s) on sidya: /opt/FLEXLM_INSTALL/flexlm_license_file_example.dat:
           sidya: license server UP (MASTER) v11.5
      Vendor daemon status (on sidya):
         ibmratl: The desired vendor daemon is down. (-97,121)
        rational: No socket connection to license server manager. (-7,96)
  • lmswitch: controls debug log location and size
  • lswitchr: switches the report log to a new file name
  • lmver: reports the FlexNet Licensing version of a library or binary file

02 FlexLM License Server Manager (= lmgrd)

0. License Server Manager이란 (= lmgrd)

  • License Server Manager = lmgrd
  • License Server 시스템을 이루는 2개의 FlexNet Licensing 요소 중 하나 - 다른 하나는 vendor daemon
  • 역할: 적합한 vendor daemon으로 connection을 보내어 Flex 기능들이 활성화된 앱들과의 초기 contact을 처리
  • 목적:
    • Start and maintain all the vendor daemons listed in the VENDOR lines of the license file
    • Refer application checkout (or other) requests to the correct vendor daemon

1. lmgrd 사용하기

  • lmgrd은 FlexNet Licensing의 main daemon
  • Command Prompt (Terminal)에 입력시 vendor들과 feature들의 info를 담은 License 파일들을 찾고 그 verndor daemon들을 시작함
    • 문법: lmgrd [-c license_file_list] [-l [+]debug_log_path] [-2 -p] [-local] [-x lmdown] [-x lmremove] [-z ] [-v] [-help]
      • -c: license_file_list Use the specified license file(s).
      • -l [+]debug_log_path: Write debugging information to file debug_log_path. This option uses the letter l, not the numeral 1. Prepending debug_log_path with the + character appends logging entries. 
      • -v: Displays lmgrd version number and copyright and exits
      • -help: Displays usage information and exits

참조

  1. https://www.openlm.com/software-license-management/
  2. https://www.openlm.com/knowledge-base/flexera-flexlm-flexnet-publisher/ 
  3. Macrovision Europe Ltd., FLEXnet Licensing End User Guide, 2005. (2018-05-16b1_WF_5.0_flex_strana_69.pdf)
  4.  

'소프트웨어' 카테고리의 다른 글

GLX (OpenGL과 X 사이 API)  (0) 2024.04.24
XDummy Driver  (0) 2024.04.24