[HPC] 사용자 및 계산 서버별 FLEXLM 가용 라이센스 제한 방법

작성일 : 2009년 6월 17일
작성자 : 서 진우

1. 개요
flexlm으로 중앙에 모든 라이센스를 집중해서 관리할 경우 모든 라이센스가 중앙의 라이센스 서버에
보관되기 때문에 특정 사용자나 특정 서버에서 라이센스를 많이 사용해 버리면, 다른 사용자들이 사용할
라이센스가 없게 된다.
그러므로 특정 사용자나 특정 서버에서 라이센스를 점유하지 못하게 제한을 걸거나 특정사용자나 특정서버
가 고정적으로 가용 라이센스를 보장받을 수 있게 예약하는 기능이 필요하다.
본 문서는 위와 같은 요구를 해결 하기 위한 기술적인 방법을 설명하는 것이다.

2. 구현 방법
flexlm 으로 라이센스를 관리하는 S/W의 라이센스 파일을 열어서 flexlm option을 적용하도록 구성하고
flexlm option 에서 특정 사용자와 특정 서버에 대해 자원을 예약하는 설정을 하면 된다.
flexlm 방식의 license.dat 파일을 열어 보면 아래와 같은 형태로 구성되어 있다.
# vi license.dat
————————————————————————————————
SERVER this_host ID=07071982 27000
VENDOR ABAQUSLM
FEATURE adams ABAQUSLM 6.8 07-jul-2012 99 VENDOR_STRING=commercial \
        ISSUER=ODT ISSUED=03-jun-2006 NOTICE=”Team oDDiTy” ck=165 \
        SN=305419896 START=03-jun-2006 SIGN=E38E30CC922C
————————————————————————————————
VENDOR 항목 뒤에 “options” 설정을 아래와 같이 추가 하면 된다.
————————————————————————————————
SERVER this_host ID=07071982 27000
VENDOR ABAQUSLM options=/engrid/ensge/enlic/etc/abaquslm.opt
FEATURE adams ABAQUSLM 6.8 07-jul-2012 99 VENDOR_STRING=commercial \
        ISSUER=ODT ISSUED=03-jun-2006 NOTICE=”Team oDDiTy” ck=165 \
        SN=305419896 START=03-jun-2006 SIGN=E38E30CC922C
————————————————————————————————
options에 flexlm 옵션 파일 위치 정보를 적어 놓고, 해당 위치에 /engrid/ensge/enlic/etc/abaquslm.opt
파일을 생성한 후 관련 설정을 추가하면 된다.
flexlm 의 option 설정으로 가능한 기능은 아래와 같다.
* user,hostname,user_group,host_group,display_name 을 통해 라이센스 사용을 허가하거나 제한할 수 있다.
* user,hostname,user_group,host_group,display_name 을 통해 고정적으로 필요 라이센스를 예약할수 있다.
* 라이센스 사용량에 대한 정보를 로그로 남길 수 있다.
다음은 주요 설정 항목이다.
EXCLUDE -> 특정 라이센스 사용을 제한한다.
EXCLUDEALL -> 해당 vendor의 모든 라이센스 사용을 제한한다.
GROUP -> 다수의 사용자 계정을 하나의 그룹명으로 정의한다.
HOST_GROUP -> 다수의 접근 hostname을 하나의 host_group으로 정의한다.
INCLUDE -> 특정 라이센스 사용을 허가한다.
INCLUDEALL -> 해당 vendor의 모든 라이센스 사용을 허가한다.
LINGER ->
    causes licenses to be held by the vendor daemon for a period after the application checks them in or exits.
MAX_OVERDRAFT ->
    Limits overdraft usage below the amount enabled in the license.
NOLOG ->
    turn off logging certain items.
REPORTLOG ->
    specifies that a logfile be written suitable for use by the FLEXadmin End-User Administration Tool.
RESERVE -> 특정 대상에게 특정수만큼의 라이센스를 예약해 둔다.
TIMEOUT ->
    specify idle timeout for a feature, returning it to the free pool for use by another user.
MAX_BORROW_HOURS -> 라이센스 임차 시간을 정의한다.

아래는 각 항목의 설정 방법이다.
EXCLUDE <license_name> {USER|HOST|DISPLAY|PROJECT|GROUP|HOST_GROUP|INTERNET} name
EXCLUDEALL <license_name> {USER|HOST|DISPLAY|PROJECT|GROUP|HOST_GROUP|INTERNET} name
INCLUDE <license_name> {USER|HOST|DISPLAY|PROJECT|GROUP|HOST_GROUP|INTERNET} name
INCLUDEALL <license_name> {USER|HOST|DISPLAY|PROJECT|GROUP|HOST_GROUP|INTERNET} name
GROUP <name> <list_of_users>  -> GROUP cae_grp1 user01 user02 user03
HOST_GROUP <name> <list_of_hosts>  -> HOST_GROUP cluster_hosts1 gc001 gc002 gc003 gc004
RESERVE <number> <license_name> {USER|HOST|DISPLAY|PROJECT|GROUP|HOST_GROUP|INTERNET} name

아래는 flexlm 옵션 파일 설정 예제 이다.
# cat /engrid/ensge/enlic/etc/abaquslm.opt
——————————————————————————–
GROUP group1 root admin
GROUP group2 alang
HOST_GROUP hosts1 gc001 gc002
HOST_GROUP hosts2 gc003 gc004
RESERVE 50 explicit GROUP group1
RESERVE 49 explicit HOST_GROUP hosts2
——————————————————————————–
즉 group1 에 소속된 root 와 admin 계정은 50개의 explicit 라이센스를 고정적으로 사용할 수 있다.
hosts2 에 소속된 gc003 서버와 gc004 서버에서는  49개의 explicit 라이센스를 고정적으로 사용할 수 있다.

해당 옵션 파일을 추가 혹은 수정하면, flexlm 에서 관련 설정을 적용해야 한다.
적용시키는 방법은 lmdown 으로 flexlm 데몬을 내린 후 다시 lmgrd 로 데몬을 재 시작해 주던지..
lmreread 로 변경된 설정을 다시 loading 하게 하면 된다. 가급적 lmreread 를 이용하는 것을 권장한다.

– lmgrd 로 flexlm 데몬 재시작 하기
# ./lmdown -c license.dat
# ./lmgrd -c license.dat -l license.log
– lmreread 로 수정내용만 적용 시기키
# ./lmreread -c license.dat -all

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

2 Responses

  1. 2022년 6월 21일

    2fractional

  2. 2023년 1월 27일

    2vibration

페이스북/트위트/구글 계정으로 댓글 가능합니다.