Linux 文件系统是否具有 ACID 保证?

Linux 文件系统是否具有 ACID 保证?

我该怎么做才能获得一个具有与数据库 ACID 保证相同的保证的 Linux 文件系统?

看来文件系统还没有发展到我原以为会成为所有事物的行业标准的地步。
至少我找不到任何搜索结果。

我能找到的最好的是他们设法保持他们的结构数据完好无损。但实际文件内容却不是。(虽然我对 ZFS 了解不多,更不用说 Lustre 了。)

我的做法是否错误?文件系统是错误的层吗?(也许块层是正确的?)

我并不真的想通过 FUSE 或者其他类似的不可能的 Lovecraftian 式的憎恶之物在 PostgreSQL 上运行 ext4。;)

编辑:作为管理员,我计划设置一个高可靠性的业务服务器(用于文件、不是数据库)。显然,在这种情况下,企业希望其服务器上有一个具有 ACID 保证的文件系统。我想不出比 serverfault 更适合此用途的 StackExchange 网站了。

答案1

我很确定你的方法不对,除非你有非常特殊的要求。一些学术研究已经围绕 ACID 文件系统进行了研究(请参阅这张纸),包括 Amino FS(使用 Berkeley DB 作为存储),但是:

日志文件系统是事务性的,因此至少包括有点包括原子性;隔离在 FS 级别并不是一个真正的问题,因为文件锁(通常)由内核(Windows)或应用程序代码(类 Unix,参见讨论)强制执行。这里了解一些细节);而耐久性和一致性目标任何文件系统,尽管所有文件系统都有一些权衡(尽管如此,ZFS 恰好非常强调数据完整性,即使出现硬件问题)。

我自己从未编写过 FS,因此本段的部分内容是推测。你的方法最大的问题是,完全 ACID 通常在 DBMS 或应用程序级别处理,而我怀疑这是有充分理由的,因为在文件系统级别提供文​​件顺序事务的完全隔离是非常低效的。在第一个链接中的论文中,他们的基准测试表明,与 ext3 相比,他们的原型文件系统速度明显较慢,而且几乎每个操作的开销都较高。

相关内容