跳转至

RUNBOOK — EDA 工具链(IC617 / MMSIM151 / ASSURA41 / Calibre2015)

交付对象:接手日常运维与值班的人。所有命令可直接粘贴执行(占位符用 <尖括号> 标注取值来源)。 安装档案见同目录 SOP.md;备份台账见 ../backup/README.md。

目录

  1. 服务概览
  2. 接入与凭据
  3. 日常速查表
  4. 日常操作
  5. 配置管理
  6. 备份与恢复
  7. 监控与告警
  8. 故障处置
  9. 安全与权限
  10. 容量与性能
  11. 附录

1. 服务概览

一套装在 NFS 共享(宿主 dell-R620)上的模拟 IC 设计工具链,六台计算节点经只读挂载使用:

组件 版本 安装路径(客户端视角) 用途
Cadence Virtuoso IC 6.1.7-64b(IC617,Base 06.17.700) /tools/cadence/virtuoso/IC617 原理图/版图/ADE
MMSIM 15.10.284(Hotfix 独立安装) /tools/cadence/mmsim/MMSIM151 Spectre / UltraSim / RelXpert
ASSURA 04.15.001-617 /tools/cadence/assura/ASSURA41 DRC / LVS / QRC
Calibre 2015.2_36.27 /tools/mentor/calibre/aoi_cal_2015.2_36.27/aoi_cal_2015.2_36.27 DRC / LVS(业界标准)
  • 依赖的 license 服务:Cadence floating license 服务位于 192.168.31.29(lmgrd 5280 + cdslmd 5281)。 该服务中断会影响 Virtuoso/Spectre/Assura 启动(Calibre 不受影响,见下)。
  • Calibre license:/tools/mentor/calibre/license.dat,HOSTID=ANY、无 SERVER 行,客户端直读文件,不依赖任何服务。
  • 重要性等级:中高。工具不可用时,六台计算节点上的设计作业无法启动;不影响调度系统与节点本身。
  • 环境变量下发:Lmod modulefile,不在 shell rc 里散落 export。

2. 接入与凭据

项 值 / 位置
NFS 宿主 dell-R620(192.168.31.249 = br0、192.168.31.250 = eno2),Ubuntu 24.04
共享导出 /data/nfs/tools → 客户端 /tools(ro,noatime);/data/nfs/modulefiles → 客户端 /opt/modulefiles(rw)
license 服务 192.168.31.29,端口 5280/5281
客户端 slurm-work-01/02/03(.18/.19/.20)、lsf-work-01/02/03(.25/.26/.27),Rocky Linux 9.8
凭据 本方案不使用文件内凭据;管理通道为 root SSH 免密(密钥由运维保管,不入库、不入文档)

客户端加载工具:

module avail cadence                       # 预期列出 virtuoso/IC06.17.700、IC25.10.000(历史)
module load cadence/virtuoso/IC06.17.700   # IC617 + MMSIM + ASSURA 一并生效
module load siemens/calibre/2015.2_36.27   # Calibre

3. 日常速查表

目的 命令
看工具是否加载 module list
IC617 版本 virtuoso -version
Spectre 版本 spectre -W
Assura 版本 assura -version
Calibre 版本 calibre -version
license 服务状态 ssh root@192.168.31.29 'pgrep -ax lmgrd; pgrep -ax cdslmd; ss -lnt \| grep -E ":5280\|:5281"'
某 feature 可用性 /tools/cadence/virtuoso/IC617/tools/bin/lmutil lmstat -c 5280@192.168.31.29 -f 111
工具挂载是否正常 findmnt -no SOURCE,OPTIONS /tools(预期 ro,noatime)
共享目录可见性 ls /tools/cadence/virtuoso/

4. 日常操作

加载/切换工具(每个会话独立):

module load cadence/virtuoso/IC06.17.700
virtuoso &                                 # 图形界面;无头环境用 virtuoso -nograph

在无显示器环境做 license 自检(不启动 GUI):

source /etc/profile.d/modules.sh 2>/dev/null || true
module load cadence/virtuoso/IC06.17.700
cd /tmp && echo "exit" | virtuoso -nograph 2>&1 | tail -5
# 预期末行含:Virtuoso Framework License (111) was checked out successfully

NFS 宿主侧维护(仅在 dell-R620):

# 查看共享状态
sudo exportfs -v | grep tools
df -h /data/nfs/tools
# 查看工具链占用
sudo du -sh /data/nfs/tools/cadence/* /data/nfs/tools/mentor 2>/dev/null

客户端挂载点异常时(先确认宿主导出正常):

findmnt -no SOURCE,OPTIONS /tools                    # 预期 192.168.31.249:/data/nfs/tools ro
sudo mount -o remount /tools 2>/dev/null || echo "需联系宿主侧确认 NFS 服务"

5. 配置管理

配置项 位置 生效方式 易错点
工具环境变量 /data/nfs/modulefiles/cadence/virtuoso/IC06.17.700.lua(宿主视角) 客户端 module load 后生效 改完无需重启;Lmod 有缓存,必要时 module --force purge && module load ...
Calibre 环境变量 /data/nfs/modulefiles/siemens/calibre/2015.2_36.27.lua 同上 MGLS_LICENSE_FILE 必须指向文件(该 license 无 SERVER 行)
LogoutStub/旧环境 /etc/profile.d/、用户 ~/.bashrc — 不要把 EDA 变量写进 shell rc,避免与 module 冲突
license 服务定义 192.168.31.29:/opt/FlexLM/Cadence/cds.license.dat 重启 lmgrd 生效 改 license 前先归档 lmgrd.log(lmgrd -l 会截断重写)
client 解析(历史坑) 旧版用主机名 Flexlm,现 license SERVER 行写 IP — 不要再改回主机名,否则客户端解析失败

IC617 在 Rocky 9 上必须的环境变量(已在 modulefile 中固化,手工排障时注意核对):

变量 值 为什么
OA_UNSUPPORTED_PLAT linux_rhel50_gcc48x Rocky 9 不在 OA 的 sysname 识别列表,不设则报 “OA requires running the Configure phase”
LD_PRELOAD /lib64/libstdc++.so.6 Cadence 自带 libstdc++(GCC 4.8)缺 CXXABI_1.3.8/1.3.9,与系统 libGLU 冲突
CDS_LIC_FILE 5280@192.168.31.29 指向 floating license 服务

系统级适配(一次性,六台客户端 + 安装端均需):

# LSB 解释器链接:Cadence 的 lmutil 等 32 位程序依赖它,缺失时报 "No such file or directory"
ls -l /lib/ld-lsb.so.3 /lib64/ld-lsb-x86-64.so.3
# 缺失时(root):
ln -s /lib/ld-linux.so.2           /lib/ld-lsb.so.3
ln -s /lib64/ld-linux-x86-64.so.2  /lib64/ld-lsb-x86-64.so.3
# libdl:新版 glibc 已并入 libc,Cadence 仍 dlopen("libdl.so")
ls -l /usr/lib64/libdl.so || ln -s libdl.so.2 /usr/lib64/libdl.so

6. 备份与恢复

内容 位置 说明
patch 前工具库备份 /data/nfs/tools/_ic617_media/backup/pre_patch_libs_<时间戳>.tar.gz(356M) cadence 三工具的 tools.lnx86/lib 目录,patch 修改的核心库在此
备份台账 ../backup/README.md 逐条登记(含 IC25 遗留 1patch)
原始安装镜像 客户端 31.18 的 /var/tmp/ic617/(IC617+ASSURA,14G)、/var/tmp/mmsim/(3.3G)、/var/tmp/calibre/(2.2G) 回滚兜底:重跑 iscape 即可回到未 patch 状态。确认工具稳定前不要删
介质总包 /data/nfs/tools/_ic617_media/(12G) 与本地 Cadence安装软件包/ 同源,验收后可删

恢复示例(回滚 IC617 到未 patch 状态):

# 1) 确认镜像仍在
ls /var/tmp/ic617/04.IC06.17.700_Base/ic_index.sdx
# 2) 删除已 patch 的安装目录(高危:确认路径无误后再执行)
sudo rm -rf /tools/cadence/virtuoso/IC617          # 需在 31.18 上以 rw 挂载执行
# 3) 重新安装(详见 SOP 第 5 章步骤 4)
sudo env -u DISPLAY /opt/iscape/iscape.04.23-s010/bin/iscape.sh -batch \
  majorAction=InstallFromArchive \
  archiveDirectory=/var/tmp/ic617/04.IC06.17.700_Base \
  installDirectory=/tools/cadence/virtuoso/IC617

7. 监控与告警

关注点 怎么看 阈值/判据
license 服务存活 pgrep -ax lmgrd; pgrep -ax cdslmd;ss -lnt \| grep :5280 两进程在、5280/5281 LISTEN
license 是否被大量占用 lmutil lmstat -c 5280@192.168.31.29 -a \| head 605 条 feature 中绝大多数为 uncounted(不限席位)
共享盘容量 宿主 df -h /data/nfs/tools 1.8T,当前约 480G 使用;低于 10% 余量时清理历史版本
客户端挂载 六台 findmnt -no OPTIONS /tools 必须含 ro(写权限被意外打开意味着误操作风险)
工具目录权限 find /tools/cadence /tools/mentor -perm /022 \| head 应为空(无 group/other 写位)
日志 宿主 lmgrd.log(license);客户端 $HOME/.vnc-cds/*、cds.log 出现 DENIED 或 Invalid host 需排查

8. 故障处置

场景 A:virtuoso 起不来,报 Unable to obtain the 'Cadence(R) Design Framework II' license

症状:启动即退,提示 DB-320001。

诊断

module list                                             # 确认 IC06.17.700 已加载
echo $CDS_LIC_FILE $OA_UNSUPPORTED_PLAT $LD_PRELOAD     # 三个变量都应非空
ssh root@192.168.31.29 'pgrep -ax cdslmd; ss -lnt | grep :5280'
/tools/cadence/virtuoso/IC617/tools/bin/lmutil lmstat -c 5280@192.168.31.29 -f 111

处置:① 变量未加载 → module load cadence/virtuoso/IC06.17.700;② 服务端进程不在 → 在 31.29 上重启 lmgrd(先归档日志);③ lmstat 报错而服务在 → 检查客户端到 5280 的连通性 timeout 5 bash -c "</dev/tcp/192.168.31.29/5280" && echo ok。

验证:cd /tmp && echo "exit" | virtuoso -nograph 2>&1 | tail -3,末行含 checked out successfully。

场景 B:报 libnsl.so.1: cannot open shared object file

症状:virtuoso/spectre 启动时报缺库。

诊断

ldd /tools/cadence/virtuoso/IC617/tools/dfII/bin/64bit/virtuoso | grep "not found"
rpm -q libnsl libnsl.x86_64 libnsl.i686

处置:dnf -y install libnsl libnsl.i686(64 位给 virtuoso,32 位给 lmutil/老工具)。

验证:ldd ... | grep -c "not found" 为 0。

场景 C:报 libstdc++.so.6: version 'CXXABI_1.3.8' not found

症状:/lib64/libGLU.so.1 需要新 CXXABI,而 Cadence 自带 libstdc++ 较老。

处置:确认 module load 已设 LD_PRELOAD=/lib64/libstdc++.so.6;手工排障时:

LD_PRELOAD=/lib64/libstdc++.so.6 virtuoso -version

(副作用:32 位子进程会打印 wrong ELF class ... ignored 警告,无害。)

验证:能打印 virtuoso version 6.1.7-64b。

场景 D:报 The OA2.2 library directory .../linux_rhel50_gcc44x_64/opt does not seem to exist

症状:OA_UNSUPPORTED_PLAT 值与该安装的 OA 库平台不匹配。

诊断:ls /tools/cadence/virtuoso/IC617/share/oa/lib/(本安装只有 linux_rhel50_gcc48x_32/64)。

处置:设 OA_UNSUPPORTED_PLAT=linux_rhel50_gcc48x(注意是 gcc48x)。

验证:$CDS_ROOT/share/oa/bin/sysname 输出 linux_rhel50_gcc48x。

场景 E:Calibre 启动或运行时 license 报错

症状:Calibre 提示无法获取 license。

诊断

echo $MGLS_LICENSE_FILE                                   # 预期 /tools/mentor/calibre/license.dat
head -3 /tools/mentor/calibre/license.dat                 # 该文件不应有 SERVER 行
/tools/mentor/calibre/aoi_cal_2015.2_36.27/aoi_cal_2015.2_36.27/bin/lmutil lmstat -c $MGLS_LICENSE_FILE
# 报 "No SERVER lines" 属正常(unserved 型);报缺文件才是故障

处置:确认 module load siemens/calibre/2015.2_36.27 已执行;文件缺失时从 192.168.31.29:/opt/FlexLM/Cadence/calibre.license.dat 重新取一份放到共享路径。

验证:calibre -drc 2>&1 | head -12 正常打印版本头且无 license 错误。

场景 F:客户端 lmutil 报 No such file or directory(文件明明存在)

症状:执行 32 位工具时找不到"文件"。

诊断:file <该程序> 看 interpreter;若为 /lib/ld-lsb.so.3 或 /lib64/ld-lsb-x86-64.so.3:

处置:按第 5 章「系统级适配」补 LSB 链接。

验证:<该程序> -v 能输出(如 lmutil v11.13.0.3 ... i86_lsb)。

场景 G:virtuoso 报 Command not found.(bash 则报 No such file or directory)

症状:module load 成功、which virtuoso 也能打印出路径,但直接执行就是找不到命令。

根因:virtuoso 是指向 share/bin/cdnWrapperWithOA2015 的软链,该 wrapper 为 #!/bin/ksh 脚本; 本机未装 ksh 时 execve 返回 ENOENT,外壳上报为"命令找不到"(与"PATH 里没有"是两回事)。

诊断 1. 确认解释器 bash head -1 /tools/cadence/virtuoso/IC617/share/bin/cdnWrapperWithOA2015 # 预期 #!/bin/ksh 2. 确认本机是否缺 ksh bash rpm -q ksh; ls -l /bin/ksh 2>&1 3. 顺带查 32 位运行库是否也缺(新纳管节点常见) bash rpm -qa --qf "%{NAME}.%{ARCH}\n" | grep -c "\.i686$" # 六台预期 ≥139,新节点常为 0

处置:按 hpc_submit_eda_deps_20260927/docs/SOP.md 执行——ksh → glib2 两架构同步 → i686 清单 → libnsl.i686 + mesa-libGLU.x86_64 → 三条 LSB/libdl 链接。

验证:实际启动进程(不是 which)

su - <用户> -s /bin/bash -c 'module load cadence; module load virtuoso/IC06.17.700; \
  printf "exit()\n" | timeout 150 virtuoso -nograph' 2>&1 | tail -6
#    预期:Virtuoso Framework License (111) was checked out successfully

判据提醒:① which 通过 ≠ 能执行;② ldd <Cadence 二进制> 在裸环境下会列出一百多个 "not found"(都是靠模块环境 LD_LIBRARY_PATH 解析的自有库),不可作为缺口依据; ③ 排查时用"与已知可用的节点做对照"最快——环境变量与共享盘因素先排除,差异即为节点本地缺口。

场景 H:启动 Virtuoso 时的两类"看着像报错、其实无害"的提示

提示 含义 处理
ERROR: ld.so: object '/lib64/libstdc++.so.6' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. 32 位启动器继承了 64 位的 LD_PRELOAD,内核直接忽略;随后的 64 位主程序仍会正常预载 无需处理。实测 .18 与 .28 各出现 5–7 次,属集群一贯现象(modulefile 用 LD_PRELOAD 规避 Cadence 自带 libstdc++ 的 CXXABI 缺失)
*WARNING* ... partition '<tool>.<partition>' - it has not been registered. Cadence 读 cdsSetup/cdsenv 时,某工具分区在当前会话未注册(对应工具没启用),这些默认值不生效 无需处理。NCSU CDK 的 cdsenv 用 tool.partition varName type value 语法声明默认值(如 asimenv.plotting width int 900),只有对应工具启用时才应用;缺失只影响那一项默认值

放行判据:只要同时看到 ① Virtuoso Framework License ... was checked out successfully、 ② Done loading NCSU_CDK customizations.、③ Library Manager 能列出 NCSU 库, 上述提示即可放行,不影响设计与仿真流程。

9. 安全与权限

  • 工具目录:root:root,目录/文件 u=rwX,go=rX,客户端经 NFS 只读 访问,无 group/other 写位。
  • 六台客户端与宿主 root 通道为 SSH 免密;密钥不入库、不写文档。
  • license 文件为文件式,含 feature 授权信息但不含账号/口令;共享目录权限 644。
  • 变更 /tools 挂载读写属性、修改 license 服务、动 /data/nfs 下目录均属高危,须走变更流程(SOP)并留备份。

10. 容量与性能

项 当前值 说明
共享盘 1.8T 总,约 480G 用(27%) 工具链本体约 24G;镜像暂存 12G + 解压 20G(验收后可回收)
工具链占用 IC617 9.3G / MMSIM 4.7G / ASSURA 4.6G / Calibre 5.2G —
安装端本地盘 31.18 / 99G,用 7% /var/tmp 下的解压镜像占约 20G,确认稳定后可清理
扩容触发 共享盘余量低于 10%,或新增工具版本 新增版本按 cadence/<类别>/<版本> 三级目录追加,不覆盖旧版
已知瓶颈 NFS 写入小文件慢 安装/升级尽量在安装端本地完成后再同步;大版本安装预留时间窗口

11. 附录

术语:DFII = Design Framework II(Cadence 平台 feature,license 编号 111);ISR/Hotfix = 增量发布包; uncounted = 不限并发席位的 license 计数方式。

相关文档

文件 内容
SOP.md(同目录) 本次安装的完整变更档案(步骤、验证、回滚、风险)
../backup/README.md 备份台账
../../license_srv_20260926/docs/RUNBOOK.md Cadence license 服务运行手册
../../ic25_install_20260924/docs/HANDOFF.md IC25 工程状态与红线(历史,权威)

修订记录

日期 修改人 内容
2026-09-27 rain(配合 Trae) 初版:IC617/MMSIM151/ASSURA41/Calibre2015 安装交付

来源:/home/rain/Documents/eda_tools_ins/Cadence/ic617_install_20260926/docs/RUNBOOK.md | 最后更新:2026-09-27 23:08(由 build/sync.py 同步,请勿在站点侧修改)