跳转至

INCIDENT — LSF 集群部署期故障与排障台账(2026-09-24 起)

本文件由「交付文档复核」(2026-10-08)从 SOP.md 附录 A 单列而来。 定位:事故与排障记录的独立台账;后续同类记录按 INCIDENT-YYYYMMDD-<主题>.md 追加, 不再塞回 SOP 正文。变更本身的实施 / 验证 / 回滚仍在 SOP。

1. 概要

项 内容
时间 2026-09-24 ~ 2026-10-07(部署与接入期)
等级 部署期缺陷与故障,无生产业务受影响(集群处于交付建设阶段)
影响面 LSF Suite CE 10.2.0.12 集群 6 台(3 执行节点 + 2 master + 1 submit)
当前状态 除「cgroup 资源限制不可用」外全部闭环;该项受 FP15 介质外部阻断

2. 影响范围

  • 受影响对象:部署过程本身(依赖、认证、启停、调度配置),无用户业务数据,无数据损坏或丢失。
  • 停机:仅限变更窗口内(failover 演练、节点滚动重启);窗口外集群正常服务。
  • 遗留影响:作业级 cpu/mem 硬限制不可用(唯一解法=FP15+ 二进制),见第 8 章行动项。

3. 时间线

时间 事件
2026-09-24 首轮部署(13 阶段)暴露依赖 / 认证 / 启动类缺陷 → 第 4 章 1–16 条
2026-09-24 第二轮:failover 演练失败 → 第 4 章 17–20 条(SOP 第九章)
2026-09-24 第三轮:root 执行 b* 报 User permission denied → 第 4 章 21–23 条(SOP 第十章)
2026-09-24 第四轮:cgroup v1 切换执行成功但业务目标未达成 → 第 4 章 24 条(SOP 第十一章)
2026-09-25 submit 节点接入(SOP 第十二章),修复 2 处既有缺陷 → submit_node/SOP.md 附录 A
2026-10-06 两台 master 排除计算(MXJ=0)并部署器化 → master_noexec/SOP.md
2026-10-07 /projects、/local_scratch 纳管,暴露 2 处坑 → SOP 第十三 / 十四章

4. 根因(附证据)

以下每条均含「症状 → 根因 → 修复」;证据为实机命令输出或日志,明细见 SOP 附录 A 与 各专题 SOP。按发现顺序编号。

# 症状 根因 修复
1 节点间 ssh Host key verification failed 仅有操作机→节点免密,节点互信未配 阶段0 keyscan known_hosts + 公钥互写 authorized_keys
2 挂载 rc=32 bad option 节点缺 nfs-utils(mount.nfs helper) 依赖清单补 nfs-utils(挪入阶段0)
3 res/lshosts 报 libnsl.so.1: cannot open glibc 2.34 移除 libnsl.so.1,libnsl2 只提供 .so.3 dnf 装 libnsl(baseos 提供 .so.1)
4 lsfinstall 预检 Cannot find UNIX command "ed" minimal 系统缺 ed 等工具 依赖一次备齐 17 个包
5 hostsetup 不生成启动脚本 Rocky9 无 /etc/init.d(initscripts 未装);产物实为 lsfd.service 而非 sysv 脚本 装 initscripts;判据改 systemctl cat lsfd.service
6 hostsetup lsf.entitlement does not exist 缺 entitlement 文件 用 lsf_license.dat 落地 conf/lsf.entitlement
7 全部 b* 命令 User permission denied(ldapadmin 可用) 认证三件套缺失:setuid、/etc/lsf.sudoers(LSF_EAUTH_KEY)、bin/eauth 软链 hostsetup --setuid + sudoers 分发 + eauth 软链;b* 统一经 LDAP 管理员
8 lsfstartup 无限 Error(s) found ... continue? LSF_TOP/log/Install.err 历史残留触发循环(固定 4 个 y 应答不够) 启动前清理 Install.*;改逐台 lsf_daemons start
9 bhosts 节点全 unavail 而 lshosts 显示 5 台 lshosts 是静态列表,判据用它会假 done 判据改 bhosts STATUS=ok 计数(经管理员),轮询中自动 hopen
10 lsb.params(23): missing '=' lsb.params 语法必须 KEY = value 写入格式加等号;ckconfig 过后 reconfig
11 lsb.users Default 行进了三个段 sed /^End User/i 前缀误匹配 End UserGroup 匹配改全行 ^End User[[:space:]]*$;手工重写文件
12 LDAP 同步 syntax error near '(' ldapsearch filter 未 shell 引用 模板全参数 shlex.quote
13 bhist -m <host> 报 No matching job bhist 的 -m 是「显示执行主机列」,主机名被当 jobID 验证查询改全量输出 + grep
14 authselect 执行后 profile 仍无 features q() 把 sssd with-mkhomedir 引为单参数 拆为两个参数逐个引用
15 冒烟标记写入 Permission denied LSF_TOP 为 root 属主,操作机 rain 用户不能直写 标记经节点 root mv 落地
16 演练后 4 台 closed_LIM 停启过程中 LIM 状态标记 badmin hopen <hosts> 恢复(经管理员)
17 failover 报「未接管」而备 mbatchd 其实被拉起过 lsid 输出为 My master name is <host>,脚本却匹配 Master host(永不命中),且 2>/dev/null 丢弃诊断 改解析串并保留 lsid 原始输出(SOP 第九章根因 1)
18 停主 master 后 57s 主 master 自行复活 lsf-health.timer 巡检 missing-daemon 自愈执行 systemctl start lsfd(周期 15min,停服窗口必被覆盖) 演练期间暂停 timer(SOP 第九章根因 2)
19 90s 判「未接管」 备机接管属分钟级(实测 109~148s),窗口不足 窗口放宽至 600s 并打印中间态(SOP 第九章根因 3)
20 接管后 bqueues 30s 超时被判失败且不恢复主 master 新 mbatchd 接管后仍在初始化;失败路径「留给人工」使集群留在半状态 轮询 180s,失败自动恢复主 master(SOP 第九章根因 5)
21 root 执行 b* 报 User permission denied(其他用户正常、mbatchd 无记录) conf/lsf.conf 未设 LSF_ROOT_USER,LSF 安全默认禁止 root 从命令行执行 LSF 命令 加 LSF_ROOT_USER=Y 放行(SOP 第十章根因 1)
22 加了 LSF_ROOT_USER=Y 且 reconfig 后仍被拒 该参数由 mbatchd 启动时读取,reconfig 不生效 改 badmin mbdrestart 后立即生效(SOP 第十章根因 2)
23 4 台节点上 ldapadmin 也不能执行 b* /etc/lsf.sudoers 只在 master-01 存在:部署器幂等判断只看 primary,其余节点永不补发 改逐台比对 LSF_EAUTH_KEY 摘要并补齐 5 台;部署器同步修正(SOP 第十章根因 3)
24 cgroup v1 切换后 LSF 仍报 cgroup v2 不支持 FP12 二进制以「系统是否存在 cgroup2」判定环境;RHEL9 systemd 在 legacy 模式仍保留 cgroup2 on /sys/fs/cgroup/unified 且 /proc/self/cgroup 保留 0::;systemd.legacy_systemd_cgroup_controller 在 systemd 252 已被移除 结论:FP12 + Rocky 9 组合下 cgroup 资源限制无法启用,唯一解法=FP15+ 二进制(SOP 第十一章)
25 排查教训:strace 下普通用户也报同一错误 ptrace 阻止 setuid 程序(eauth)提权,签名随之无效 排查 setuid 程序时不用 strace 做行为对比;服务端有 userok: eauth authentication failed 记录

跨轮根因索引(不重复搬运,原文见对应章节):

主题 位置
failover 四条根因的完整叙述与验证 SOP.md 第九章
root 权限三条根因与部署器固化 SOP.md 第十章
cgroup v1 结论与后续处置 SOP.md 第十一章;cgroup_v1/SOP.md 第九章
submit 接入暴露的 2 处既有缺陷(keyscan 注释行、known_hosts 前缀比对) submit_node/SOP.md 附录 A
挂载选项等价判定(actimeo 被内核展开)与 /tmp 输出不可见 SOP.md 第十三章
本地 scratch 安全判据(三态 unknown 中止)与 TMPDIR 未注入 SOP.md 第十四章;local_scratch/SOP.md 第八章

5. 处置过程

  • 每条根因的修复动作见第 4 章「修复」列,均已固化进部署器(同一变更第二次复跑零变更、 全阶段跳过),非一次性手工修补。
  • 涉及共享配置的修复(lsf.conf / lsb.params / lsb.users / lsb.hosts)一律先 cp -a 备份再改,生效方式按归属区分:lsadmin reconfig(LIM 类)与 badmin mbdrestart(batch 类)。
  • 回滚路径见各专题 SOP 第 7 章与对应 backup/README.md 台账。

6. 恢复验证

判据 命令 预期
无漂移 .venv/bin/python main.py -c config/lsf_deploy.yaml --drift 退出码 0,全阶段「无漂移」
幂等复跑 .venv/bin/python main.py -c config/lsf_deploy.yaml 全阶段「零变更跳过」
集群状态 bhosts -w(经管理员) 3 台 work ok + 2 master 与 hpc-submit closed_Full/MAX=0
作业链路 从 hpc-submit 提交作业 终态 DONE,EXEC_HOST 落在 lsf-work-0x
巡检 timer systemctl is-active lsf-health.timer lsf-user-sync.timer active active

7. 复盘

有效的做法

  • 部署器幂等 + 独立只读漂移检测:每次修复后可复跑验证,避免「修完不知道是否留了半状态」。
  • 停机 / 重启前置门禁(bjobs -u all 无 RUN 才动):failover 与升级类高危动作未造成作业损失。
  • 判据改用系统真实标识形态(bhosts STATUS=ok 而非 lshosts;systemctl cat 而非 sysv 脚本 存在性):第 9、5 条正是「判据选错导致假 done」。

拖慢恢复的做法

  • 幂等判断只看 primary:/etc/lsf.sudoers 只补了 master-01,其余 4 台长期缺失(第 23 条)。
  • 2>/dev/null 丢弃诊断输出,使 failover 首次误报「未接管」(第 17 条)。
  • 把 reconfig 当成万能生效手段:LSF_ROOT_USER 必须 mbatchd restart(第 22 条)。
  • 早期逐项探测未合并,单次 --dry-run 达 382–433 条远端命令(2026-10-07 批量化后降至个位数量级)。

8. 行动项

# 行动项 责任人 期限 状态
1 cgroup 作业级 cpu/mem 限制改用 FP15+ 二进制(介质受 IBM 侧阻断) 项目负责人(等 IBM 放行) 介质到位后 阻塞(外部)
2 升级 FP15 时一并移除 5 台 cgroup v1 内核参数 项目负责人 同 1 待办
3 作业级 TMPDIR 指向本地 scratch 项目负责人 2026-10-08 已闭环:LSB_JOB_TMPDIR=/local_scratch/users + LSB_SET_TMPDIR=Y,实测 TMPDIR=/local_scratch/users/<jobID>.tmpdir(0700,作业结束自动清理),见 tmpdir_inject_20261008/SOP.md

来源:/home/rain/Documents/LSF/lsf_ins/docs/INCIDENT-20260924-部署期故障排障台账.md | 最后更新:2026-10-08 03:49(由 build/sync.py 同步,请勿在站点侧修改)