概述
本文介绍如何配置 LSF 与 Andrew File System (AFS) 集成,使作业能够访问 AFS 卷中的用户数据。
TGT 转发机制
什么是 TGT 转发
TGT(Ticket Granting Ticket)转发的目的是将用户的 TGT 文件从作业提交主机转发到作业执行主机。

工作流程
- TGT 文件随作业提交从
bsub命令传送到mbatchd守护进程 - 然后传送到执行主机
- 在用户作业进程启动前,TGT 文件已设置好
KRB5CCNAME环境变量指向此文件
配置 TGT 转发
步骤一:启用 TGT 转发
在 lsf.conf 中配置:
1
LSB_KRB_TGT_FWD=Y
步骤二:配置 TGT 续期参数(可选)
如果作业运行时间(PEND + RUN)超过 TGT 生命周期(通常8小时),需要配置自动续期:
| 参数 | 说明 | 推荐值 |
|---|---|---|
LSB_KRB_CHECK_INTERVAL |
LSF 检查 TGT 文件的间隔(分钟) | 15 |
LSB_KRB_RENEW_MARGIN |
TGT 过期前多久续期(分钟) | 30 |
1
2
LSB_KRB_CHECK_INTERVAL=15
LSB_KRB_RENEW_MARGIN=30
步骤三:提交前获取 TGT
使用 Kerberos 5 客户端命令获取有效的 TGT 文件:
1
2
3
4
5
6
7
8
9
10
$ kinit -r 10d -f -l 30m
Password for user1@EXAMPLE.COM:
$ klist
Ticket cache: FILE:/tmp/krb5cc_34252
Default principal: user1@EXAMPLE.COM
Valid starting Expires Service principal
05/01/22 10:29:34 05/01/22 10:59:31 krbtgt/EXAMPLE.COM@EXAMPLE.COM
renew until 05/11/22 10:29:31
步骤四:提交作业
1
2
$ bsub -m host3 <some program that will read NFSv4>
Job <109> is submitted to default queue <normal>.
在执行主机上验证 TGT:
1
2
3
4
5
6
7
$ klist lsf_krb5cc_j109_0
Ticket cache: FILE:lsf_krb5cc_j109_0
Default principal: user1@EXAMPLE.COM
Valid starting Expires Service principal
05/01/22 10:33:36 05/01/14 11:03:33 krbtgt/EXAMPLE.COM@EXAMPLE.COM
renew until 05/11/22 10:29:31
LSF AFS 集成
LSF 与 AFS 的集成是 TGT 转发的扩展应用,但提供了额外的 AFS 令牌管理功能。
AFS 集成需求
| 场景 | 需求 |
|---|---|
| 作业访问 AFS 卷中的用户数据 | 作业需要有效的 TGT 文件并获取 AFS 令牌 |
| JOB_SPOOL_DIR 在 AFS 卷中 | 子 sbatchd 和 RES 需要有效的 TGT 和 AFS 令牌 |
说明:LSF 为用户作业、子 sbatchd 和作业 RES 创建独立的 PAG(进程认证组),最大化用户令牌的安全性。
配置 AFS 集成
步骤一:启用 TGT 转发
1
LSB_KRB_TGT_FWD=Y
步骤二:启用 AFS 作业支持
1
LSB_AFS_JOB_SUPPORT=Y
此配置确保 LSF 为作业和子 sbatchd 守护进程创建和续期 AFS 令牌。
步骤三:配置 Kerberos 相关参数(可选)
1
2
LSB_KRB_CHECK_INTERVAL=15
LSB_KRB_RENEW_MARGIN=30
步骤四:配置 AFS 相关参数(可选)
TGT 文件续期后,LSF 使用 aklog 命令续期 AFS 令牌:
1
LSB_AFS_BIN_DIR=/usr/local/bin
如果未定义,LSF 默认在以下位置查找:/bin、/usr/bin、/usr/local/bin
步骤五:提交作业验证
1
2
3
4
5
6
7
8
9
10
11
12
13
$ kinit -r 10d -f -l 30m
Password for user1@EXAMPLE.COM:
$ bsub -m host3 -I "id;tokens"
Job <212> is submitted to default queue <interactive>.
<<Waiting for dispatch ...>>
<<Starting on host3>>
uid=34252(user1) gid=10007(lsf) groups=666(glsf),10007(lsf),100001(pcl)
Tokens held by the Cache Manager:
User's (AFS ID 34252) tokens for afs@example.com [Expires May 1 11:33]
--End of list--
作业可以像访问普通目录一样自由读写 AFS 卷,所有令牌申请和续期操作由 LSF 自动处理。
配置参数汇总
| 参数 | 配置文件 | 说明 |
|---|---|---|
LSB_KRB_TGT_FWD |
lsf.conf | 启用 TGT 转发 |
LSB_AFS_JOB_SUPPORT |
lsf.conf | 启用 AFS 作业支持 |
LSB_KRB_CHECK_INTERVAL |
lsf.conf | TGT 检查间隔(分钟) |
LSB_KRB_RENEW_MARGIN |
lsf.conf | TGT 续期提前时间(分钟) |
LSB_AFS_BIN_DIR |
lsf.conf | aklog 命令路径 |