布局
那条关键的约束
这个根目录在控制台、每个节点、每个容器里必须解析成同一个绝对路径。 共享文件系统、RWX PVC 或同路径 bind mount 都能满足。 相对路径会在启动时被拒绝,而不是拿进程恰好启动的那个目录去解析。什么可以安全回收
缓存跨 run 共用是有意的。没有共享的 HF 缓存,每个作业都要重新下载几十 GB 权重——
在内网链路上这比训练本身还贵。
数据库为什么不在里面
FORGE_DB_PATH 有意不放在存储根下。那个根通常是共享文件系统,
而 SQLite 跑在 NFS 上有众所周知的锁问题——台账会有损坏风险,而且每个控制台副本都会争抢同一个文件。
数据库是控制平面状态,不是作业存储,所以它留在进程本地。
团队部署把 FORGE_DB_URL 指向 Postgres,这个问题就不存在了。
语料在外面
FORGE_CORPUS_ROOT 必须位于存储根之外,配错时启动会被拒绝。
语料是受治理的只读材料,访问规则和平台自己写的东西不同;
嵌套进去会让同一套回收策略同时作用在两者身上。
记账与压力
这个水位值得配。磁盘写满会一次性搞垮所有运行中的作业,不只是下一个要启动的——
而它搞垮的恰恰是跑得最久、损失最大的那些。
存储配额是「测量」而不是「预留」,所以它是最终一致的——用户可能在两次扫描之间短暂超出。
GPU 那道闸是精确的,因为分配是平台自己做的决定;存储是它观察到的事实。