跳转至

BASELINE — lustre_ins 稳定层

承载不随每次交接受化的内容:环境事实、机制性陷阱、命令速查、文档地图。 2026-10-06 由 docs/HANDOFF.md 拆分而来——HANDOFF 只描述「现在」(状态 / 待办 / 红线), 本文件描述「长期成立」。修改方式:定点修订,只改受影响行。 红线(不可逆操作 / 不可删数据)仍留在 HANDOFF 第 4 节,此处不重复。

1. 环境事实

项 值
版本 / 设备 Lustre 2.17.0(el9.7 仓库段);MDT/OST 均 /dev/vdb(virtio 整盘)【已确认】
拓扑 MGS+MDT combined 192.168.31.21;OSS .22;客户端 .21(管理/验证)+ .18/.19/.20(2026-09-24)+ .25~.28(2026-09-29 新增)【已确认】;HA 未启用
客户端环境 .18~.20、.25~.28:Rocky 9.8、内核 5.14.0-611.13.1_lustre.el9、网卡 ens2、NID <ip>@tcp、挂 /mnt/lustre【已确认】
端口 / 服务 / 挂载点 988/tcp;服务 lnet(/etc/lnet.conf 须 tcp-only YAML;含 net type: lo 会让 import 失败、重启即瘫痪);/mnt/{mdt0,ost0,lustre}
客户端 fstab 口径 192.168.31.21@tcp:/edafs /mnt/lustre lustre defaults,noatime,nofail 0 0(与 slurm_ins storage_layout.tier0_mount_options 对齐,2026-10-07 起);同机兼服务端的 .21 额外带 x-systemd.requires-mounts-for=/mnt/mdt0;必须带 nofail;挂载/恢复一律用 systemctl start mnt-lustre.mount(手工 mount -t lustre 会因 nofail 报 rc=-22)【已确认 2026-10-07】
调优持久化 /etc/systemd/system/lustre-tune.service(oneshot,已 enabled);服务端 mdt.*=32、客户端 mdc.*=31【已确认】
容量与条带 单 MDT 11.1 G / 单 OST 294.4 G(各 1 个);/mnt/lustre/scratch 默认 stripe_count=1, stripe_size=4M——无第二个 OST 可条带,EDA 常见 -c 3 现架构下无法实现;MDS/OSS 均无 HA(enable-ha 为 stub)【已确认 2026-10-07】
用户身份源 客户端用户来自 SSSD + LDAP(域 rainchen,ldap://192.168.31.10:389,dc=rainchen,dc=com,schema=rfc2307,ldap_id_mapping=false);UID 示例 rain01=2001、组 design=2000。服务端原未接入,2026-10-06 起在 .21/.22 补本地同名同 UID/GID 条目【已确认】
远程备份落点 /var/backups/lustre-ins/<原路径>.bak.<时间戳>
工程根 / 入口 /home/rain/Documents/lustre_ins;入口 main.py(子命令以 --help 为准)
版本管理 已入 Git【已确认】,分支 main,远程 git@github.com:raincheny/lustre_ins.git;不入库 config/deploy.yaml、logs/、reports/*.md、skill-*/、.trae/、backup/ 内备份
实现体 / 配置 deployer.py + modules/*.py + utils/*.py;配置真源 config/deploy.yaml(样例 .example),直接改远程文件会被覆盖
共享库 / 日志 /home/rain/py_public_modules(.pth 挂载);日志 logs/lustre_deploy.log
凭据 仅 root 免密 SSH(密钥在操作机 ~/.ssh/);Lustre 无独立口令,靠 UID/GID 与 POSIX ACL

2. 常用命令

.venv/bin/python3 main.py precheck ...          # 变更类子命令执行前自动跑配置校验 + precheck
.venv/bin/python3 main.py <子命令> --dry-run     # 变更先预演;dry-run 下 BLOCK 降级为告警
.venv/bin/python3 main.py inspect               # 巡检,报告落 reports/inspect-*.md
systemctl restart lustre-tune.service           # 重放调优(oneshot+RemainAfterExit,须 restart)
lctl ping <NID>                                 # 验 LNet 连通,不通记 WARN

3. 门禁阈值

非 root → BLOCK;SELinux Enforcing → WARN;系统盘可用 < precheck.min_disk_free_gb(10 G)→ BLOCK; LNet 不通 → WARN。阈值与 skip_checks 在 config/deploy.yaml 的 precheck 段。

4. 文档地图

文档 / 目录 管什么
docs/SOP.md 变更实施手册(八章,累积):首次部署与全部增量扩展(5.1~5.9 步骤)
docs/RUNBOOK.md 值班运行手册(11 章):速查、日常操作、配置、备份恢复、监控、故障处置
docs/troubleshoot.md 排障手册:12 个场景,各按「症状 → 诊断 → 处置 → 验证」
reports/ inspect-*.md 巡检、precheck-*.md 预检查报告
backup/README.md 备份台账(文件 / 原路径 / 时间 / 回滚对象 / 可删时点)
fix-lustre-write-perm/ 服务端身份解析(LDAP/UID)修复档案:SOP.md、backup/README.md
add-clients-25-28/、add-clients-18-20/ 近期两轮客户端扩展档案:SOP.md、backup/README.md
probe_batch_20261008/ 只读探测批量化档案:SOP.md、selftest.py、compare_onhost.sh、onhost/(原始对照数据)、backup/README.md
tuning-fix-and-rollout-plan/、precheck-hardening/、py-skill-hardening/、git-init/ 历史变更档案:SOP.md / batch-rollout-plan.md / backup/README.md

5. 架构边界与不做清单(学习环境)

本环境为学习环境,以下架构性限制有意不实施,不再列为待办(2026-10-09 由 HANDOFF 移入)。 相关环境事实另见 §1「拓扑」「容量与条带」。

边界 现状 为何不做
服务端 HA enable-ha 为 stub(仅装 pacemaker/corosync 并初始化集群,cib XML 需人工写);MDS/OSS 均无 HA 学习环境单机即可,双机 HA 无收益
条带 单 MDT 11.1 G + 单 OST 294.4 G,无第二个 OST 可条带,EDA 常见 -c 3 无法实现 需增物理 OST,学习环境不扩硬件
数据面变更分批 deployer.py:_run_steps 未按主机分批;mkfs 不可逆 学习环境单机变更,分批无必要
变更计划模型 无 plan.yaml,模块不覆盖 sync_status(),backup() 只能全量 同上
漂移检测入口 漂移比对内嵌 inspect,无独立只读子命令与三态退出码 学习环境用 inspect 足够

来源:/home/rain/Documents/lustre_ins/docs/BASELINE.md | 最后更新:2026-10-09 03:09(由 build/sync.py 同步,请勿在站点侧修改)