OpenBSD 的 GEFS 走上正轨:mkfs 能用了,一致性协议仍是缺口
来源:undeadly.org — 2026-11-01
📋 概述
Ori Bernstein 在 tech@ 列表更新了 GEFS(Good Enough File System)的进展。代码已整体 rebase、diff 重新生成,错误处理代码过了一遍,他还把 9front 上重要的 bug 修复前向移植了过来。文件系统现在默认让第一个 FS 块留空,方便放 disklabel。用户态工具已经能 mkfs(可以在 OpenBSD 上建 GEFS 了),但快照控制还没做;他设想做一个 gefs 命令,接口向 9front 的 ctl 文件靠拢,先给 debug、usereserve、retain、snap、fork 五个子命令。最大的一块缺口仍是一致性协议:他正在读 softupdates 的旧代码,希望在提交阶段插入排序屏障,同时不阻塞新的块 I/O,并贴出了从 barrier 到释放上一代块的九步流程草案。
🔑 核心要点
- diff 已 rebase 重生成,错误处理整体过了一遍,9front 的重要 bug 修复已前向移植。
- 默认把第一个 FS 块留空以便放 disklabel,代价是不能同时把超级块放在那里。
- mkfs 已经可用,但快照控制尚未实现,计划用用户态 gefs 命令、接口模仿 9front 的 ctl 文件。
- 一致性协议是最大缺口:思路是在 commit 阶段加 barrier(),并用按 (gen, addr) 排序的优先队列保证同代写入尽量顺序、不跨代。
- 作者公开征集其它方案,并请有条件的人装上去实测。
💡 金句
一致性协议仍然是最大的一块缺口;我一直在读 softupdates 的旧代码,因为它有同一类问题。
👍 0
👎 0
← 返回 Lobsters 首页