跳到主要内容

配置License调度

前提条件

网络连接要求

  • 集群head节点与license服务器之间网络连通性正常
  • 确保防火墙允许相关端口通信(如FlexLM默认端口27000)

权限要求

  • ⚠️ 重要:需要管理员权限操作
  • license调度配置修改会直接影响作业调度,请谨慎操作

管理工具介绍

Fsched提供两个核心配置工具:

工具名称功能描述类比工具
License 服务器管理监控外部license服务器的配置和状态类似于系统监控工具
License 分配管理管理集群内license分配策略直接使用sacctmgr 的 resource 命令

说明:license服务器的客户端查询工具由管理员上传到集群head节点,并在添加license服务器时通过--command-path参数设置工具的绝对路径

License服务器管理

功能说明

用于配置和监控外部license服务器,当外部license服务器发生变化时,自动调整集群license可使用的数量,支持FlexLM、RLM等主流license管理系统。

添加license服务器

命令示例

./stateclient add-lic-server \
--addr flex_host:27000 \
--command-path /usr/local/bin/lmstat \
--tracked-lics matlab,nastran,ansys \
--type flexlm \
--name matlab_server

参数详细说明

参数说明是否必需默认值
--addrlicense服务器地址,格式:主机名:端口号✅ 必需
--command-pathlicense查询命令的完整路径(如lmstat)✅ 必需
--tracked-lics要监控的license名称列表,逗号分隔✅ 必需
--typelicense服务器类型❌ 可选"flexlm"
--name服务器标识名称,用于管理❌ 可选"host_port"格式

说明:

  • license服务器名称必须唯一,并且与服务器地址host:port一一对应,默认使用host_port
  • 由于fsched处理license名和server名时都转化成小写,用户提交作业时license名和server名都需要用小写提交

实际应用场景

  • 新增一个license服务器到监控系统
  • 扩展监控的license特性列表

删除license服务器

命令示例

./stateclient remove-lic-server --addr flex_host:27000

参数说明

参数说明是否必需
--addr要删除的服务器地址✅ 必需

注意事项

  • 删除服务器会同时移除该服务器上所有license的监控
  • 确保没有作业正在使用该服务器的license

查看license服务器状态

命令示例

./stateclient list-lic-servers

输出信息包括

  • 服务器地址和名称
  • 服务器类型和状态
  • 监控的license列表
  • 连接状态(OK/ERROR)

License分配管理

功能说明

管理集群内license的分配策略,控制各集群可使用的license数量和比例。

获取当前集群名

scontrol show config | grep ClusterName

添加license分配

  1. 查看该license是否已存在
sacctmgr show resource name=test8 server=server3
  1. 如果不存在,可以一步添加完成:
sacctmgr add resource name=test8 server=server3 servertype=flexlm type=license count=60 cluster=fastone-1 percentallowed=70
  1. 如果已经存在:

如果该license已经存在,不能设置新的count, 如果需要修改可以使用sacctmgr modify resource命令。

3.1 查看是否有当前集群的分配:

sacctmgr show resource withclusters name=test8 server=server3 cluster=fastone-1

3.2 如果不存在当前集群的分配,可以为当前集群设置license分配的percentallowed

sacctmgr add resource name=test8 server=server3 cluster=fastone-1 percentallowed=70

3.3 如果存在当前集群的分配,不能设置,如果需要修改可以使用sacctmgr modify resource命令。

参数说明

  • name: license名称
  • cluster: fsched集群名称
  • count: license总数量,包括集群外部和集群内部可使用的总量
  • percentallowed: 当前集群允许使用的百分比
  • server: license服务器名称
  • servertype: license服务器类型
  • type: 资源名称,在本流程中应填license

修改license分配

  • 如果需要修改license分配总量:
sacctmgr modify resource name=matlab server=server2 set count=200
  • 如果需要修改为当前集群分配的percentallowed
sacctmgr modify resource name=matlab server=server2 cluster=fastone-1 set percentallowed=30

参数说明

  • name: license名称
  • server: 服务器名称
  • cluster: fsched集群名称
  • count: 新的license总数量
  • percentallowed: 新的百分比

删除license分配

  • 如果只有一个集群,或者有多个集群并且需要删除所有集群的license分配:
sacctmgr delete resource where name=matlab server=server2
  • 如果有多个集群,需要删除当前集群的license分配:
sacctmgr delete resource where name=matlab server=server2 cluster=fastone-1

参数说明

  • name: license名称
  • server: 服务器名称
  • cluster: fsched集群名称

查询license分配

  • 查询当前集群的license分配情况:
# 查询所有license分配
sacctmgr show resource withclusters cluster=fastone-1

# 按名称过滤
sacctmgr show resource withclusters cluster=fastone-1 name=nastran

# 按服务器过滤
sacctmgr show resource withclusters cluster=fastone-1 server=flex_host

# 精确查询
sacctmgr show resource withclusters cluster=fastone-1 name=matlab server=rlm_host
  • 查询所有license分配
sacctmgr show resource

参数说明

  • name: 按license名称过滤
  • server: 按服务器名称过滤
  • cluster: fsched集群名称

完整配置示例

场景描述

配置Synopsys APEX20K和primesim license的监控和分配。

步骤1:检查现有配置

  • 查看当前集群名
[root@centos7-16c-1 ~]# scontrol show config | grep ClusterName
ClusterName = fastone-1
  • 查看已分配的license
[root@centos7-16c-1 ~]# sacctmgr show resource
Name Server Type Count % Allocated ServerType
---------- ---------- -------- ------ ----------- ----------

输出显示当前没有任何license分配配置

步骤2:确定license总量

使用lmstat命令查看实际license数量

[root@centos7-16c-1 ~]# ./lmstat -f APEX20K -c 27000@10.106.32.69
lmstat - Copyright (c) 1989-2016 Flexera Software LLC. All Rights Reserved.
Flexible License Manager status on Mon 9/8/2025 11:43

License server status: 27000@centos7-64c-9
License file(s) on centos7-64c-9: /fastone/software/lic/Synopsys.dat:

centos7-64c-9: license server UP (MASTER) v11.14.0

Vendor daemon status (on centos7-64c-9):

snpslmd: UP v11.14.0
Feature usage info:

Users of APEX20K: (Total of 999 licenses issued; Total of 0 licenses in use)

关键信息:Total of 999 licenses issued - 说明总共有999个许可证

步骤3:配置license分配

为集群分配license使用权限

[root@centos7-16c-1 ~]# sacctmgr add resource name=APEX20K server=10.106.32.69_27000 servertype=flexlm type=license count=999 cluster=fastone-1 percentallowed=100
Adding Resource(s)
apex20k@10.106.32.69_27000
Cluster - fastone-1 100%
Settings
Name = apex20k
Server = 10.106.32.69_27000
Description = apex20k
ServerType = flexlm
Count = 999
Type = License
Would you like to commit changes? (You have 30 seconds to decide)
(N/y): y
[root@centos7-16c-1 ~]# sacctmgr add resource name=primesim server=10.106.32.69_27000 servertype=flexlm type=license count=999 cluster=fastone-1 percentallowed=100
Adding Resource(s)
primesim@10.106.32.69_27000
Cluster - fastone-1 100%
Settings
Name = primesim
Server = 10.106.32.69_27000
Description = primesim
ServerType = flexlm
Count = 999
Type = License
Would you like to commit changes? (You have 30 seconds to decide)
(N/y): y

查看分配结果

[root@centos7-16c-1 ~]# sacctmgr show resource
Name Server Type Count % Allocated ServerType
---------- ---------- -------- ------ ----------- ----------
apex20k 10.106.32+ License 999 100 flexlm
primesim 10.106.32+ License 999 100 flexlm

步骤4:配置license监控

检查现有监控配置

[root@centos7-16c-1 ~]# /opt/fsched/wrappers/statesvc/bin/stateclient list-lic-servers
Sending requests to server localhost:20051
License Servers (0):
========================================

添加license服务器监控

[root@centos7-16c-1 ~]# /opt/fsched/wrappers/statesvc/bin/stateclient add-lic-server --addr 10.106.32.69:27000 --command-path /root/lmstat --tracked-lics APEX20K,primesim
Sending requests to server localhost:20051
Successfully added license server: 10.106.32.69:27000 (auto-generated-name) with 2 tracked licenses

验证监控配置

[root@centos7-16c-1 ~]# /opt/fsched/wrappers/statesvc/bin/stateclient list-lic-servers
Sending requests to server localhost:20051
License Servers (1):
========================================
Server: 10.106.32.69:27000
Name: 10.106.32.69_27000
Type: flexlm
Command Path: /root/lmstat
Tracked Licenses (2): apex20k, primesim
Status: OK
----------------------------------------

故障排除指南

Q: 添加服务器时连接失败

  • 检查网络连通性:ping license_server
  • 验证端口访问:telnet license_server 27000
  • 确认lmstat命令路径正确

Q: license监控状态异常

  • 检查license服务器是否正常运行
  • 验证tracked-lics名称与实际license特性名称一致
  • 确认有足够的权限执行监控命令

Q: 作业无法获取license

  • 检查license分配配置是否存在
  • 验证license数量是否充足
  • 查看license监控状态是否正常

最佳实践

  1. 命名规范:为license服务器使用有意义的名称
  2. 容量规划:合理设置percentage参数,避免资源争用
  3. 监控覆盖:确保所有重要license特性都在监控范围内
  4. 定期检查:定期验证license分配与实际情况的一致性