2026-10-06 EDA 集群存储与服务拓扑 巡检报告
类型:只读巡检(B 类)。不改变任何系统状态。
范围:lsf / slurm / lustre / nfs / ldap 五类服务的节点接入、权限与挂载现状,以及对标 EDA 存储标准的符合性核实。
采集时间:2026-10-06(实机只读探测,命令见附录 A);2026-10-07 复核并更新:LSF 两台 master 已改为 MXJ=0(bhosts -w → closed_Full / MAX=0,与 hpc-submit 同款),不再接作业——据此收敛 G1 与撤销 G8;同日再更新:G3(NFS soft)经决策有意保留、G4(/tools /pdk 服务端导出)已改 ro,两项不再计为差距。
采集对象:15 台(slurm .16–.20、lustre .21/.22、lsf .23–.27、hpc .28、license .29、k8s .10)+ NFS 服务端本机 .249
证据档位:【实测】= 本轮命令输出;【档案】= 项目文档记载,本轮未复核。
二、判定基准:EDA 存储标准
本报告采用两段基准:项目内已落地的 EDA 存储标准(eda_storage_standardization),加行业通行做法(Microsoft/Azure NetApp EDA 最佳实践、Lustre 官方架构)。
| # |
标准条目 |
出处 |
| S1 |
三层物理分离:Tier1 持久(NFS /projects//home)/ Tier0 跨节点共享临时(Lustre scratch)/ 本地节点私有临时(/local_scratch、$TMPDIR),IO 特征互不干扰 |
项目内标准 附录 B.5-1(行业同:EDA 三层模型) |
| S2 |
NFS 客户端参数统一:hard,timeo=600,retrans=2,noatime,actimeo=30,去 soft;静态库卷建议再加 nocto,actimeo 提升元数据性能 |
项目内标准 第二章-1;ANF EDA 最佳实践 |
| S3 |
工具/PDK 只读 + 版本化(服务端导出即只读,不只靠客户端 ro) |
项目内标准 附录 B.5-2 |
| S4 |
License 服务化(不挂载,走网络) |
项目内标准 附录 B.5-3 |
| S5 |
客户端全局统一视图:/tools、/pdk、/projects、scratch 在所有跑作业的节点上可见一致 |
项目内标准 附录 B.5-4 |
| S6 |
Lustre 客户端参数统一 noatime,flock,lazystatfs;scratch 条带化 -c 3 -S 1M;元数据/数据分离、MDT/OST 有冗余 |
项目内标准 第二章-2;Lustre 架构 |
| S7 |
统一身份(LDAP)覆盖全部参与作业的节点,含存储服务端(用于 UID/GID 解析与配额) |
项目内 LDAP 改造计划;行业通行 |
| S8 |
临时数据有生命周期兜底:作业 trap + Epilog + 老化清理,且不误删非作业目录 |
hpc-simulation-env.yaml storage 注释 |
三、拓扑与接入矩阵(现状)
3.1 逐节点接入矩阵
| 主机 |
IP |
角色 |
Slurm |
LSF |
NFS 客户端 |
Lustre 客户端 |
LDAP(sssd) |
本地 scratch |
| slurm-master-01 |
.16 |
主控+DBD |
ctld✓ dbd✓ munge✓ |
— |
/home /opt/modulefiles /mnt/slurm-shared |
✗ |
✓ |
✗ |
| slurm-master-02 |
.17 |
备控 |
ctld✓ munge✓(dbd✗) |
— |
同上 |
✗ |
✓ |
✗ |
| slurm-work-01/02/03 |
.18/.19/.20 |
计算 |
slurmd✓ munge✓ |
— |
/home /projects /tools /pdk /opt/modulefiles |
✓ 已挂 |
✓ |
✓ 50G xfs |
| lustre-mgs-01 |
.21 |
MGS/MDS |
— |
— |
✗ |
服务端(/mnt/mdt0) |
✗ |
✗ |
| lustre-oss-01 |
.22 |
OSS |
— |
— |
✗ |
服务端(/mnt/ost0) |
✗ |
✗ |
| lsf-master-01 |
.23 |
LSF 主控(不接作业,2026-10-07 起 MXJ=0) |
— |
mbatchd✓ sbatchd✓ lim✓ |
仅 /home /data/nfs/lsf |
—(不跑作业,无需) |
✓ |
—(无需) |
| lsf-master-02 |
.24 |
LSF 备控(不接作业,同上) |
— |
sbatchd✓ lim✓ |
仅 /home /data/nfs/lsf |
—(不跑作业,无需) |
✓ |
—(无需) |
| lsf-work-01/02/03 |
.25/.26/.27 |
计算 |
— |
sbatchd✓ lim✓ |
/home /tools /pdk /opt/modulefiles /data/nfs/lsf |
✗ 挂载失败(见 §5 G2) |
✓ |
✗ |
| hpc-submit |
.28 |
统一提交节点 |
客户端(munge✓,无 slurmd) |
sbatchd✓ lim✓(不执行作业) |
/home /projects /tools /pdk /opt/modulefiles /data/nfs/lsf |
✓ 已挂 |
✓ |
✗(提交节点,可接受) |
| Flexlm |
.29 |
许可服务器 |
— |
— |
✗ |
✗ |
✗ |
✗ |
| k8s-master-01 |
.10 |
LDAP 服务端(pod 内) |
— |
— |
✗ |
✗ |
宿主未接(服务在 pod 内,正常) |
✗ |
k8s 其余节点(.13/.14/.15)不在本次五类服务的接入范围,未探测。
3.2 服务端清单
| 服务 |
服务端 |
形态 |
客户端 |
| NFS |
dell-R620 本机 192.168.31.249(Ubuntu 24.04,/dev/sdb1 ext4 1.8T,已用 38%) |
内核 NFS server,10 条导出全部 rw,async,no_subtree_check,no_root_squash |
除 lustre/license 外全部节点 |
| Lustre |
.21(MGS/MDS,MDT 11.1G)+ .22(OSS,OST 294.4G) |
Lustre 2.17.0,edafs,单 MDT + 单 OST,@tcp |
.18/.19/.20/.28 已挂 |
| Slurm |
控制 .16 主 / .17 备;记账 slurmdbd 仅 .16 active |
Slurm 26.05.2,auth/munge |
提交 .28,计算 .18–.20 |
| LSF |
.23 主 / .24 备(均 MXJ=0,不接作业)、提交 .28 |
LSF CE 10.1.0.12(lsfce) |
计算 仅 .25–.27 |
| LDAP |
ldap://192.168.31.10:389(OpenLDAP 2.6.10,k8s server 命名空间) |
sssd 客户端 |
11 台(见 §3.4) |
| FlexLM |
.29 |
lmgrd |
两套调度器均未接 license 调度 |
3.3 NFS 挂载矩阵(含参数,标准要求去 soft)
| 挂载点 |
服务端导出 |
已挂节点 |
挂载参数现状 |
对标 S2 |
/projects |
/data/nfs/projects |
.18–.20、.28 |
rw,hard,timeo=600,retrans=2,noatime,actimeo=30 |
✓ 达标 |
/tools |
/data/nfs/tools |
.18–.20、.25–.27、.28 |
ro,hard,timeo=600,...,actimeo=30 |
✓ 达标(客户端侧) |
/pdk |
/data/nfs/pdk |
同上 |
ro,hard,...,actimeo=30 |
✓ 达标(客户端侧) |
/home |
/data/nfs/home |
全部 11 台 |
rw,soft,timeo=600,retrans=2 |
✗ 仍 soft |
/opt/modulefiles |
/data/nfs/modulefiles |
.16/.17/.18–.20/.25–.27/.28 |
rw,soft |
✗ 仍 soft |
/data/nfs/lsf |
/data/nfs/lsf |
.23–.28 |
rw,soft |
✗ 仍 soft |
/mnt/slurm-shared |
/data/nfs/slurm-state |
.16/.17 |
rw,hard,intr |
部分(无 actimeo) |
3.4 统一身份(LDAP)
- 已接入(sssd active)11 台:.16、.17、.18、.19、.20、.23、.24、.25、.26、.27、.28
- 未接入:.21、.22(Lustre 服务端,
sssd inactive,走本地 /etc/passwd)、.29(FlexLM)、.10/.13/.14/.15(k8s)
- 身份实况【实测】:
.18 上 id rain01 → uid=2001(rain01) gid=2000(design) groups=2000(design)
- 职能组(GID 复用后):design 2000 / dv 3000 / custom 4000 / layout 5000 / cad 6000 / sre 6100 / pnr 6200 / signoff 6220
3.5 目录与权限现状
| 路径 |
权限 |
属主/属组 |
对标 |
/data/nfs/projects/{design,dv,custom,layout,cad,sre,pnr,signoff} |
2775(drwxrwsr-x,setgid) |
root / 对应职能 GID |
✓ 符合"按 LDAP 组 2775" |
/mnt/lustre/scratch/{users,projects,tmp} |
755 / 755 / 1777 |
root root |
✓ 公共暂存 1777 合规 |
/local_scratch/users |
1777 |
root root |
✓ |
/tools(84G) |
755 |
root root |
内容:cadence(assura/mmsim/virtuoso)、synopsys(icc/icc2/hspice/fm/fpga/…)、mentor/calibre;siemens 为空 |
/pdk(19G) |
755 |
root root |
FreePDK15/45、ncsu-cdk、SAED32_EDK、templates |
Lustre edafs |
MDT 11.1G(用 1.6M)/ OST 294.4G(用 1.4M) |
— |
scratch 默认 stripe_count=1, stripe_size=4M |
四、标准符合性核对
| # |
核查项 |
当前值(实测) |
阈值(标准) |
结论 |
| 1 |
Tier1/Tier0/本地 三层在跑作业节点齐备 |
slurm 计算 3 台齐备;LSF 执行 3 台(.25–.27)不齐(.23/.24 已不接作业,不计) |
三层层层可见 |
异常 |
| 2 |
/projects 在 LSF 执行节点可见 |
.25–.27 均无 /projects |
跑作业节点应有 |
异常 |
| 3 |
Lustre scratch 在 LSF 执行节点可见 |
.25/.26/.27 mnt-lustre.mount 仍 failed(2026-10-07 复核未变) |
已挂载可用 |
异常 |
| 4 |
NFS 客户端参数去 soft |
/home、/opt/modulefiles、/data/nfs/lsf 为 soft;/projects//tools//pdk 为 hard,...,actimeo=30 |
hard,...,actimeo=30 |
正常(2026-10-07 决策有意保留 soft) |
| 5 |
/tools、/pdk 服务端导出只读 |
服务端已 ro(2026-10-07 改),客户端亦 ro |
服务端 ro |
正常 |
| 6 |
Lustre scratch 条带化 |
stripe_count=1(单 OST 物理上无法条带) |
-c 3 -S 1M |
异常(受容量约束) |
| 7 |
Lustre MDT/OST 冗余 |
单 MDT + 单 OST,无 HA |
建议 HA |
异常(架构级) |
| 8 |
LDAP 覆盖存储服务端 |
.21/.22 lustre 服务器未接 sssd |
存储服务端接统一身份 |
异常 |
| 9 |
LDAP 覆盖计算/控制/提交节点 |
11 台 sssd active |
全覆盖 |
正常 |
| 10 |
/projects/* 按职能组 2775 |
drwxrwsr-x + 职能 GID |
2775 |
正常 |
| 11 |
scratch 公共目录 1777 |
/mnt/lustre/scratch/tmp = 1777 |
1777 |
正常 |
| 12 |
License 服务化 |
FlexLM 独立主机,网络服务 |
不挂载 |
正常 |
| 13 |
License 接入调度 |
Slurm/LSF 均未接 |
建议接入 |
异常(已知设计选择) |
| 14 |
scratch 老化清理不误删非作业目录 |
按 -mtime +30 清 depth=3,非 jobid 目录(EDA users/<user>/virtuoso/...)会被整棵删 |
需排除能力 |
异常(HANDOFF #15 挂账) |
| 15 |
客户端全局统一视图(含控制节点) |
.16/.17(及改造后的 .23/.24)无 /projects /tools /pdk |
统一视图 |
正常(控制节点不跑作业,按 BASELINE.md §2「节点接入判据」本就不需要) |
五、差距清单(按风险排序)
G1【高】LSF 三台执行节点(.25–.27)缺共享三层存储
- 证据【实测 2026-10-06 + 2026-10-07 复核】:
.25–.27 无 /projects、无 /local_scratch,/mnt/lustre 挂载失败(见 G2)。
- 影响:从统一提交节点
.28 提交、脚本内引用 /projects 或 /mnt/lustre 的作业,落到 LSF 执行节点即路径不存在而失败。
- 原 master 部分已消解:
.23/.24 已于 2026-10-07 改为 MXJ=0(bhosts -w → closed_Full / MAX=0),不再接作业,故无需补 /tools /pdk /opt/modulefiles /projects /mnt/lustre;LSF 调度池由 30 槽收为 24 槽。
- 注:LSF 契约
references/lsf-simulation-env.yaml 原注「master 节点同(exec_node_mounts)」与实测不符(该条仅探测过 .25),已按新事实同步。
G2【高】Lustre 挂载在 LSF 执行节点长期失败且无自愈
- 证据【实测】:
.25/.26/.27 的 mnt-lustre.mount 状态 failed (Result: timeout),起始时间 2026-09-29 18:45(失败已 6 天无人察觉);日志 Mounting timed out. Terminating.,mount.lustre 进程被 TERM。lnet/lustre 内核模块已加载,fstab 条目为 192.168.31.21@tcp:/edafs /mnt/lustre lustre defaults,nofail 0 0。
- 根因(判据):与
env_facts_sync_20261004/SOP.md 附录 A 的 mnt-lustre.mount 无自动重试属同一类——启动期竞态/超时后即置 failed,nofail 使失败被静默吞掉,无重试、无告警。slurm 计算节点同源配置却已挂上,说明非 Lustre 服务端本身不可用。
- 影响:LSF 多节点作业无跨节点共享工作区;若手工挂载后重启仍会复发。
G3【已定论·撤销】NFS 客户端参数保留 soft(有意为之)
- 证据【实测】:
/home、/opt/modulefiles、/data/nfs/lsf 的 fstab 与运行时均为 soft(全节点);/projects、/tools、/pdk 为 hard,timeo=600,retrans=2,noatime,actimeo=30。
- 判定(2026-10-07 用户决策):有意保留
soft —— 实测 hard 延迟偏高,本环境为测试 / 学习用途,接受 soft 在服务端抖动时静默 EIO 的风险。不再作为差距;决策已入 BASELINE.md §2。
- 原证据【实测 2026-10-06】:
exportfs -v 中 /data/nfs/tools、/data/nfs/pdk 与其它导出同为 rw,no_subtree_check,no_root_squash,只读仅靠客户端兜底。
- 处置【实测 2026-10-07】:
/etc/exports 两行改为 ro 并 exportfs -ra;exportfs -v 与内核导出表 /var/lib/nfs/etab 双证 ro;客户端读不受影响(本就 ro 挂载);幂等复跑零变更。详见 nfs_export_ro_20261007/SOP.md。
G5【中】Lustre 单 MDT + 单 OST,无条带、无 HA、容量小
- 证据【实测】:MDT 11.1G、OST 294.4G、
stripe_count=1。
- 影响:无法按标准做
-c 3 -S 1M 条带;MDS/OSS 任一故障即全不可用;容量不适合大规模波形库。
G6【中】LDAP 未覆盖存储服务端与许可服务器
- 证据【实测】:
.21/.22 sssd inactive、/etc/sssd/sssd.conf 无 domain(SSSDCONF=0),getent group design 返回本地 design:x:2000:;.29 同样未接。
- 影响:Lustre 服务端无法按统一身份做按用户/组配额,文件属主在服务端只能以数字呈现;身份源出现两套(files + LDAP),长期有 UID/GID 漂移风险。
G7【中】scratch 老化清理无排除能力,会误删非 jobid 目录
- 证据【档案】:HANDOFF §3 #15 —— Lustre 段按
-mindepth 3 -maxdepth 3 -mtime +30 清理,EDA 仿真的 users/<user>/virtuoso/... 等非 jobid 命名目录 30 天后被整棵删除。
- 影响:违反 S8「不误删非作业目录」;对 30 天以上的长周期仿真工程有直接数据损失风险。
G8【已撤销】控制器缺统一视图;hpc-submit 无本地 scratch
- 证据【实测】:
.16/.17(及改造后的 .23/.24)无 /projects /tools /pdk;.28 无 /local_scratch。
- 判定:不作为差距。控制节点不跑作业、不加载工具,按接入判据(详
BASELINE.md §2「节点接入判据」)本就不需要这三层;.28 作为提交节点无本地临时层亦属正常。
G9【低】License 未接入调度(两套调度器)
- 证据【实测+档案】:
scontrol show lic 无配置;LSF 侧同样未接。
- 影响:排队不等于许可可用,长作业到运行期才失败。属已知设计选择,非缺陷。
六、处置建议(按风险从高到低)
| 优先级 |
动作 |
类型 |
验收判据 |
| P0 |
修通 .25/.26/.27 的 Lustre 挂载并加自愈(与 HANDOFF #9 的 mnt-lustre.mount 无重试合并解决):先 systemctl restart mnt-lustre.mount 验证可挂,再加 systemd 重试/健康检查覆盖 |
C 类变更 |
三台 mnt-lustre.mount = active,重启后仍 active;lfs df 可见 edafs |
| P0 |
给 LSF 三台执行节点 .25–.27 补 /projects 与 /local_scratch(.23/.24 已不接作业,无需补) |
C 类变更 |
执行节点与 slurm 计算节点挂载视图一致;幂等复跑零变更 |
| ~~P1~~ |
~~NFS 参数去 soft~~ 已定论:有意保留 soft(2026-10-07,实测 hard 延迟高) |
已定论 |
见 BASELINE.md §2 |
| ~~P1~~ |
~~/tools、/pdk 服务端导出改 ro~~ 已办 2026-10-07 |
已完成 |
exportfs -v + /var/lib/nfs/etab 双证 ro;客户端读正常;幂等零变更 |
| P2 |
LDAP 接入 .21/.22(sssd),打通存储服务端统一身份与配额能力 |
C 类变更 |
getent passwd rain01、lfs quota -u rain01 在服务端可用 |
| ~~P2~~ |
~~scratch 老化清理加排除能力(HANDOFF #15)~~ 已办 2026-10-07:find -not -path 排除已参数化进 scratch_gc.exclude_patterns;离线自测 17/17、3 台下发、幂等零变更 |
已完成 |
scratch_gc_exclude_20261007/SOP.md |
| P3 |
~~更正 LSF 契约 yaml「master 节点同」表述~~ 已办:2026-10-07 同步 exec_nodes / total_slots / critical_gap / gaps / slurm_vs_lsf 五处 |
文档 |
已完成 |
| P3 |
Lustre 容量/冗余方案(增 OST、双 MDS)评估 |
待决策 |
评估报告 |
以上均为 C 类变更,本次仅作评估,未执行任何修改。
附录 A:取证命令与时间窗
- 时间窗:2026-10-06 下午(一次性并行采集)
- 采集脚本(留存于本目录):
probe_eda_topo.py → probe_out.txt(15 台:服务/进程/挂载/目录/LDAP)
probe_eda_topo2.py → probe2_out.txt(NFS 服务端导出与权限、/projects 子目录、Lustre 树、LDAP 实况)
probe_eda_topo3.py → probe3_out.txt(mnt-lustre.mount 失败根因、/tools 家族、fstab 全文)
- 关键过滤/命令:
- 挂载:
awk '$3 ~ /^(nfs|nfs4|lustre)$/' /proc/mounts
- 服务:
systemctl is-active <unit>、pgrep -x <proc>
- 身份:
getent passwd rain01、id rain01、getent group <g>
- Lustre:
lfs df -h、lfs getstripe -d /mnt/lustre/scratch
- 挂载失败:
systemctl status mnt-lustre.mount、journalctl -u mnt-lustre.mount
- NFS 服务端:
exportfs -v、grep -vE '^\s*#' /etc/exports
- 脱敏:本报告不含任何凭据值;
/etc/exports 仅保留导出路径与选项。
附录 B:本轮未能确认项
- ~~LSF
.23/.24 是否确实可接作业~~ 已确认并已变更:2026-10-06 实测二者 MAX=4/2、ok(接作业);2026-10-07 复核,用户已改为 MXJ=0,bhosts -w → closed_Full / MAX=0,不再接作业。
/tools/siemens 为空是"未装"还是"符号链接悬空",未展开(与 HANDOFF #3「四家族 tools 为空」的表述存在口径差异,待核对)。
- Lustre 挂载失败是否为"启动期竞态"还是"
mount.lustre 参数缺 _netdev/noatime",未做挂载复现实验(属变更动作,未执行)。
来源:/home/rain/Documents/slurm/slurm_ins/eda_topo_audit_20261006/20261006-EDA集群存储与服务拓扑-巡检报告.md | 最后更新:2026-10-07 03:02(由 build/sync.py 同步,请勿在站点侧修改)