面向 OpenBSD 的 GEFS(足够好的文件系统)开发工作取得进展

Lobsters Hottest 新闻

摘要

面向 OpenBSD 的 GEFS(Good Enough File System,够用的文件系统)开发工作持续推进,Ori Bernstein 在 openbsd-tech 邮件列表上发布了有关错误处理、已移植的错误修复、用户空间工具以及尚待解决的一致性协议挑战的最新进展。

<p><a href="https://lobste.rs/s/zjjvbo/work_on_gefs_good_enough_file_system_for">评论</a></p>
查看原文
查看缓存全文

缓存时间: 2026/11/01 21:40

# OpenBSD 上的 GEFS(够用就好文件系统)开发取得进展 来源:https://www.undeadly.org/cgi?action=article;sid=20261101115637 由Peter N\. M\. Hansteen (https://nxdomain.no/~peter/blogposts/)于2026\-11\-01投稿,来自超棒的文件粉碎机部门\. 正如*此前 (https://www.undeadly.org/cgi?action=article;sid=20260918115729)*报道的那样,Ori Bernstein 正在开发已引入*OpenBSD (https://www.openbsd.org/)*的 GEFS,即“够用就好文件系统”,而他在*EuroBSDCon 2026 (https://2026.eurobsdcon.org/)上的演讲 (https://events.eurobsdcon.org/2026/talk/NVMSCJ/)*广受好评\. 事实上,这段视频是本次大会播放次数最多的视频之一\. 现在,Ori 又推出了进一步完善的代码,其中包含几项重要进展,旨在使这一新文件系统适合普遍使用\. 在发给`tech@`的一封邮件 (https://marc.info/?l=openbsd-tech&m=179346643071941&w=2)中,Ori 写道: > `` 邮件列表:openbsd-tech 主题:回复:OpenBSD 上的 GEFS:一个非常早期的预览版 发件人:ori () eigenstate ! org 日期:2026-10-31 17:08:42 那么,大概是时候介绍一些最新进展了。首先,感谢 Martijn,以及所有试用并发送补丁的人。所有内容都已更新并完成变基,差异补丁也已重新生成,包含了全部最新改动。 `` > `` 我已经检查了一遍错误处理代码。理论上,文件系统能够基本正确地处理错误。不过,可能仍有一些地方理论与实际不符。我还从 9front 向前移植了大部分重要的错误修复。现在,文件系统默认不使用第一个文件系统块——我们可以把磁盘标签放在那里,这就很难再把超级块也放在那里了。一些用户空间工具已经完成(现在可以在 OpenBSD 上运行 mkfs 了!),但快照控制还没有实现。我在考虑提供一个用户空间的 'gefs' 程序来处理这些操作,并尽量让接口与 9front 的 ctl 文件保持相似。以下命令应该就足够了:gefs debug [0|1] gefs usereserve gefs retain snap timespec gefs snap name newname gefs fork name newname 一致性协议仍然是最大的缺失部分;我一直在阅读旧的 softupdates 代码,因为它面临的问题与此类似。在理想情况下,gefs 需要一种在提交阶段插入顺序屏障、同时仍然接受新的块 I/O 的方法,大致按以下步骤进行:0) 正常使用,产生脏块并以任意顺序回写。持有 mutlk { 1) barrier(),确保提交之前写入的所有块都会在提交完成之前落盘 2) 将空闲列表/死亡列表数据加入队列 3) 准备 arena 头部/尾部以及超级块 } 4) 将 arena 头部加入队列 5) barrier() 6) 将超级块加入队列 7) 将 arena 尾部加入队列 8) 等待已入队的块落盘 9) 释放上一代已不再使用的块 在 9front 上,我有一个按 (gen, addr) 元组排序的块优先队列,这意味着同一代内的写入会尽可能按顺序刷入磁盘,同时不会跨越代际边界。目前我打算在 OpenBSD 中实现同样的机制——启动执行同步 I/O、向块设备写入的 syncer 内核进程。如果我们提前将内容逐出缓存并回写磁盘,通常应该是安全的——缓冲区缓存唯一不能重排的是 arena 头部和超级块,因此,这里可能只需要一个标志,将它们固定为尚未写入的状态。不过,我也欢迎其他想法。[email protected] 写道: `` 随后引用了上一封邮件 (https://marc.info/?l=openbsd-tech&m=178948744271633&w=2)中的一部分,其中包含代码和文档的链接\. 如果你和我们一样,对这个新文件系统的开发感到兴奋,而且具备测试条件,请动手试试\.

相似文章

GEFS on OpenBSD: 早期预览版

Hacker News Top

GEFS,一个安全可靠且支持快照的文件系统,其早期预览版已移植到 OpenBSD。该移植版本是实验性的,存在若干问题,但已开放供社区测试。

NetBSD GSoC 2026:测试兼容性 Linux 系统调用

Lobsters Hottest

一份 Google Summer of Code 2026 项目报告详细介绍了使用 Linux Test Project 改进 NetBSD 的 Linux 兼容层测试的努力,包括编译测试、创建包和记录系统调用模拟。

OpenBSD 8.0 正式发布,安全纪录依旧保持完好

Ars Technica

OpenBSD 8.0 作为该项目的第 61 个版本正式发布,新增 Intel Arc 显卡支持、AMD64 上 512GB 的内核虚拟地址空间、ARM64 休眠功能、RISC-V 改进,以及 LibreSSL 和 OpenSSH 的更新,同时继续保持其长期以来的安全纪录。

GNU Hurd 2026年第二季度新闻

Hacker News Top

GNU Hurd的2026年第二季度报告重点介绍了9pfs写入支持、AArch64内核补丁、POSIX msync验证以及各种错误修复的进展。

NetBSD GSoC 2026 改进 RAIDframe

Hacker News Top

这篇文章报道了Google Summer of Code 2026年在NetBSD中改进RAIDframe的工作,包括实现用于多磁盘镜像的N-way RAID 1和添加RAID scrubbing支持。