Fly.io 弃自研文件系统:SBD 用块设备+ext4 修复智能体磁盘可靠性
Fly.io Blog · rss · 2026-10-22
Fly.io 为其面向 AI agent 的 Sprites 产品重写存储层,详细复盘了架构演进的完整过程:
- 旧方案(JuiceFS 改造):对象存储为根,重度魔改 JuiceFS,自写 SQLite 元数据后端 + Litestream 持久化,挂载 100GB 磁盘镜像跑 ext4。但 chunk 数据、元数据数据库、checkpoint 数据库三套账本各自独立持久化,一旦不同步就出灾难。
- 踩坑:writeback 模式下元数据先记、字节后传,机器被杀就会指向不存在的 chunk,ext4 校验失败转只读;而 checkpoint 是共享 chunk 的 COW 克隆,恢复也救不回来。
- Dogfooding:他们搭建了驱动成群 Sprites 反复执行写/checkpoint/睡眠/唤醒/恢复并逐字节校验的测试框架,对 400 个 JuiceFS Sprite 跑约 5000 轮,确有部分永久失去 checkpoint 能力。
- 新方案 SBD:把 bucket 经 NBD 直接呈现为块设备,元数据与数据块同存于 bucket,单一事实源;checkpoint 变成带版本号的整卷块快照,恢复成本约等于一次重启;读回的每个块都做校验,SBD 自身挂掉就整 Sprite 干净重启。
结论:在对象存储上直接跑 ext4 这种「够笨」的方案,实测比自制文件系统可靠多个数量级,10 月 6 日前创建的 Sprite 可按官方指引迁移。
「编程与Agent」频道最新
- Vercel 上线 vercel deploy --temporary,可临时部署后自动清理 — cramforce · 2026-10-23
- 用同一个 Notion 工作区让多个 Agent 互相沟通分工,实测有效 — nbaschez · 2026-10-23
- 实测 12 个 AI 分类器后,作者直言「分类器新热是cosplay」 — KlausCodes · 2026-10-23
- 用 ESP32 小屏给 Claude Code 做 status 卡片,Go 本地检测状态 — tonylook · 2026-10-23
- Agent 调试新玩法:把 agent 指向 AgentsView CLI 让它自己查 trace 找病因 — dbreunig · 2026-10-23
- YC 系 Mireye 推出土地数据 API+MCP,覆盖 1.6 亿地块 — ycombinator · 2026-10-23