答案1
不幸的是,即使忽略了 FUSE 模块的问题(这会严重影响某些工作负载的性能),Linux 上的 ZFS 仍然不是一个可行的解决方案。它根本不够完整。另外,我认为没有调试文件系统对于 Linux 上的 ZFS 来说,这是一个严重的负面影响。
调试文件系统是 unices 上低级文件系统修复工具的传统名称。e2fsprogs 包括 Ext2/3/4 的工具,XFS 工具有 xfs_db 和其他工具。其他文件系统,尤其是 FFS 和 JFS 等存在时间较长的文件系统也有这样的工具。它基本上是一个允许您在低级级别读取和操作卷上数据的工具,非常有用尤其正在恢复中。
至于 ext4,我怀疑它在生产中相当有用,但我建议实际模拟一下你的工作量。要警惕各种应用程序中的各种不安全的代码路径,这些路径可能会根据 ext4 的设置损坏数据(请注意,据我所知,这些问题也可能发生在 XFS 和 JFS 中)。
XFS 仍然是一个很好的、稳定的解决方案,尽管我承认我从 XFS 转到了 ext4,因为 XFS 的创建/取消链接性能不佳。如果您没有很多不断创建和删除的小文件,它仍然是一个非常好的选择。可以从网上的大多数基准测试中获取确切的数字。速度变慢与 XFS 的特定优化有关,这导致某些日志操作非常慢(创建/取消链接)。但它在元数据访问和读/写方面非常快。在我看来,对于大文件来说,这是一个不错的选择(多媒体编辑?)。
还没有真正测试过 JFS,尽管我听到过关于它的相当好的评价——先检查一下它是否有调试文件系统您认为可以可靠使用的工具。
答案2
Linux 上的 ZFS 现在已可以在本机级别实现:
ZFS 包含许多系统来确保文件系统的完整性,其中最重要的是 zpool scrub,它对每个文件进行校验和检查并重建(如果需要)。
对于当今的生产系统,我不会在 Linux 上使用 ZFS。但如果几年后我必须存储 40+TB 的数据,我会选择 ZFS。