Files
calculet-npu-research-archive/reports/Calculet-NPU-远端恢复原状计划-20260801.md
T

130 lines
6.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Calculet NPU 远端恢复原状计划
制定时间:2026-08-01
状态:已于 2026-08-02 00:54 执行完成并通过独立验收。本文件保留为清理前计划和基线;实际结果见 `Calculet-NPU-远端与本机清理完成记录-20260802.md`
## 恢复目标
1. 删除本次在样机生成的全部归档、分片、清单和分析源码。
2. 删除本次环境盘点写入的 Shell 历史,同时保留对方原有历史和后续新增历史。
3. 确认没有遗留下载、模型服务、测试程序、端口监听或 NPU 设备占用。
4. 不修改对方原有容器、镜像、驱动、系统服务和用户配置。
5. 回收约 90 GiB 磁盘空间,并给出清理前后审计记录。
## 当前恢复基线
- 远端归档目录:`/home/user2/calculet-analysis-export`
- 精确占用:`96,590,271,861` 字节,共 4,883 个文件
- 根文件系统:总计 `982,240,026,624` 字节,已用 `246,533,816,320` 字节,可用 `685,735,694,336` 字节
- Shell 历史:`/home/user2/.bash_history`
- Shell 历史当前状态:69 行、权限 `600`、所有者 `user2:user2`
- 本次新增历史范围:第 53-69 行
- 第 53-69 行 SHA-256`a5cc09c89ea56d8c79a1be6da9f402d13d9d74ecace8f25918f19601cac4eb36`
- 对方原有历史范围:第 1-52 行
- 历史文件 mtime`2026-08-01 16:26:26 +0800`
- 当前没有 NPU 设备占用、8031 监听或模型服务进程
- 原有命名容器 `calculet-llama-v0.4.8_Qwen` 仍为 `created` 状态
## 清理前置条件
以下条件必须全部满足:
1. 项目负责人明确确认可以开始删除远端暂存资料并处理 shell 历史;全部资料已取回不等于自动授权删除。
2. 已批准范围内的所有归档都存在本地完成标志,并通过分片、整包和必要的逐文件 SHA-256 校验。
3. 当前已批准的优先第 1-4 步完成标志存在:`remote-export/PRIORITY-1-4-ASSEMBLY-AND-VERIFICATION-COMPLETE.txt`
4. 当前四个优先归档已按 `LOCAL-PRIORITY-1-4-ARCHIVES.sha256` 复核通过。
5. `llama.cpp` 已通过 `git fsck --full`HEAD 为 `fd9bd632f346085920d523dd307a3e4c11cc0a05`
6. 容器 `/home` 完成标志 `remote-export/STEP-5-CONTAINER-HOME-ASSEMBLY-AND-VERIFICATION-COMPLETE.txt` 存在,整包校验通过。
7. OCI 完成标志 `remote-export/STEP-6-CONTAINER-OCI-ASSEMBLY-AND-VERIFICATION-COMPLETE.txt` 存在,整包、25 个 blob 和所有描述符引用通过。
8. 完整模型完成标志 `remote-export/STEP-8-COMPLETE-MODEL-ASSEMBLY-AND-VERIFICATION-COMPLETE.txt` 存在,68 个文件已按 `MODEL-FILES.sha256` 自动和独立复核两次。
9. 本地输出目录已有至少一份额外备份,或者项目负责人明确接受单副本风险。
10. 已通知后续测试同事清理时间窗,避免清理时仍有人使用相同账号。
任一条件不满足时,不删除远端归档。
## 执行阶段
### 阶段 1:停止传输并固定状态
- 暂停并结束本地 detached screen 下载任务。
- 确认远端不存在指向 `calculet-analysis-export` 的 rsync sender。
- 保存清理前 `df`、进程、端口、Podman、驱动参数和 NPU 设备占用快照。
- 再次记录待删除路径的大小、所有者、权限和文件数。
### 阶段 2:安全处理 Shell 历史
不能直接截断 `.bash_history`,因为后续同事可能已经追加新命令。应执行以下保护逻辑:
1. 重新计算当前第 53-69 行 SHA-256。
2. 只有指纹仍为 `a5cc09c89ea56d8c79a1be6da9f402d13d9d74ecace8f25918f19601cac4eb36` 时才自动处理。
3. 原样保留第 1-52 行。
4. 删除第 53-69 行。
5. 原样保留第 70 行及之后由其他同事新增的历史。
6. 通过同目录临时文件和原子重命名更新,恢复 `600``user2:user2`
7. 如果行号或指纹不匹配,立即中止并人工比对,不做猜测性修改。
### 阶段 3:删除本次远端持久文件
精确清理范围:
- `/home/user2/calculet-analysis-export`
- `/home/user2/llama.cpp-src-fd9bd632.tar.gz`
- `/home/user2/calrt-focused-src-fd9bd632.tar.gz`
- `/home/user2/calbin_inspect.cpp`
不得使用 `/home/user2``/home` 或包含通配符的宽范围删除命令。删除前必须逐项 `stat` 并确认所有者为 `user2`
### 阶段 4:远端恢复验证
- 上述四个目标均不存在。
- 归档相关 rsync、tar、zstd、split 和 sha256sum 进程为 0。
- `llama-server``calrt_smoke``calbin_inspect` 进程为 0。
- 8031 端口未监听。
- `/dev/calculet0` 无进程占用。
- 原有命名容器仍为 `created`,镜像 ID 未变化。
- 驱动参数保持:`poll_mode=0``dma_timeout_ms=30000``strict_validation=Y``calculet_log_level=6``max_boards=16`
- 用户 crontab 仍为空,系统包数据库未因清理发生变化。
- 对比清理前后磁盘空间,预期回收约 90 GiB。
### 阶段 5:测试方本地凭据与网络清理
远端验收完成后,再处理测试方 Mac:
- 正常停止 OpenVPN,确认 `utun` 路由消失。
- 删除临时 VPN 配置、认证文件和日志。
- 删除包含 SSH 明文密码的本地 Expect 包装器。
- 删除样机 SSH `known_hosts` 记录前先确认后续不再需要连接。
- 仅在确认 OpenVPN 是本次专用安装且没有其他项目依赖时,才卸载本地 OpenVPN。
- 保留已验证的本地分析包、报告和校验记录。
## 清理完成记录模板
执行时应补充:
- 执行人和时间
- 本地归档验证标志及 SHA-256 结果
- Shell 历史处理前后行数和指纹
- 删除的四个精确路径
- 清理前后磁盘使用量
- 远端进程、端口、NPU、容器、镜像和驱动参数复核结果
- VPN 和本地凭据清理结果
- 对方环境负责人确认结果
## 当前下载快照
快照时间:2026-08-02 00:35。第 1-8 步已全部完成,8 个本地归档合计 `21,078,519,107` 字节。
| 优先步骤 | 本地结果 |
| --- | ---: |
| 关键上下文 | 8,942,525 B,整包及 115 个文件通过 |
| 基线分析归档 | 436,398,080 B53/53 分片及整包通过 |
| 无权重模型运行时 | 11,253,912 B,整包及 66 个文件通过,权重计数为 0 |
| 完整 `llama.cpp` | 264,921,801 B32/32 分片、整包、HEAD 和 `git fsck --full` 通过 |
| 容器完整 `/home` | 740,994,223 B89/89 分片、整包、gzip/tar 结构和解包通过 |
| 完整 OCI 镜像 | 1,646,166,016 B197/197 分片、整包、25 个 blob 和描述符引用通过 |
| 完整 `/home/user2` | 1,684,911,580 B201/201 分片、整包、结构和查看副本通过 |
| 完整模型归档 | 16,284,930,970 B1,942/1,942 分片、整包及 68 个模型文件两轮通过 |
最终总标志 `remote-export/ALL-REQUESTED-DATA-ASSEMBLY-AND-VERIFICATION-COMPLETE.txt` 已生成,8 个归档统一清单 `LOCAL-ALL-DOWNLOADED-ARCHIVES.sha256` 全部匹配。当前远端没有 rsync sender 或运行容器,VPN、远端暂存目录和本地凭据继续保留,尚未进入清理阶段。