背景
LSF的配置管理相对比较原始,通过配置文件设置集群中的各种参数。管理员在修改LSF参数时需要很多的手工操作:先通过编辑器修改配置文件,然后还要运行一个或两个命令才能激活配置,而且配置也不是立即生效,还有几秒中的延迟,因此深受用户的诟病。
后来为了缓解用户的痛点,引入了 live reconfiguration, 即通过 bconf 命令行改变集群参数。但也仅针对 lsb.* 配置中的部分参数,只能说是部分解决了问题。
Live reconfiguration 机制简介
管理员通过 bconf 命令行参数确定要修改的集群参数,命令成功后将修改集群中的参数,同时将系统中的参数缓存到单独的目录中,以便重启后能够恢复配置。
需要注意的是:1)默认缓存目录与安装时默认的配置文件目录不同;安装时默认的配置文件目录为 $LSF_ENVDIR/lsbatch/<cluster name>/configdir/,而默认的缓存目录为 $LSF_ENVDIR/../work/<cluster name>/live_confdir/;2)如果激活了 live reconfiguration,并通过 bconf 修改了相关配置,比如用户组,则手工修改默认配置文件目录下的lsb.users 会引发配置冲突;
要解决以上问题,可行的办法就是将缓存目录设置为默认的配置文件目录。
使用简介
bconf 的语法如下
bconf 操作 对象类型=对象名称 参数
常见操作包括以下几类:
操作 | 说明 |
create | 创建对象 |
delete | 删除对象 |
addmember | 增加成员 |
rmmember | 删除成员 |
常见对象包括以下几种:
对象类型 | 说明 |
usergroup | 修改用户组参数 |
hostgroup | 修改主机组参数 |
limit | 修改资源限额参数 |
下面给出常见操作的示例
用户组管理
创建用户组 ug_a, 并设置三个初始成员 u1 u2 u3
bconf create usergroup=ug_a "GROUP_MEMBER=u1 u2 u3"
在用户组 ug_a 中增加成员 u4 u5
bconf addmember usergroup=ug_a "GROUP_MEMBER=u4 u5"
从用户组 ug_a 中移除成员 u1 和 u5
bconf rmmember usergroup=ug_a "GROUP_MEMBER=u1 u5"
删除用户组 ug_a
bconf delete usergroup=ug_a
主机组管理
创建主机组 hg_a, 并设置三个初始成员 h1 h2 h3
bconf create hostgroup=hg_a "GROUP_MEMBER=h1 h2 h3"
在主机组 hg_a 中增加成员 h4 h5
bconf addmember hostgroup=ug_a "GROUP_MEMBER=h4 h5"
从主机组 hg_a 中移除成员 h1 和 h5
bconf rmmember hostgroup=ug_a "GROUP_MEMBER=h1 h5"
删除主机组 hg_a
bconf delete hostgroup=hg_a
资源配额管理
创建资源配额
创建资源限制,限制队列 normal 上最多同时运行 100 个作业
bconf create limit=normal_limit "PER_QUEUE=normal;JOBS=100;"
修改资源限制,限制队列 normal 上最多同时运行 200 个作业
bconf update limit=normal_limit "PER_QUEUE=normal;JOBS=200;"
修改资源限制,限制用户 lsfadmin 在队列 normal 上最多同时运行 100 个作业
bconf update limit=normal_limit "PER_QUEUE=normal;JOBS=100;PER_USER=lsfadmin"
删除资源限制
bconf delete limit=normal_limit
详细的使用说明请参见LSF手册
Live reconfiguration 介绍
bconf 使用说明