科技Bestblogs·Pierre Barre··AI 生成
ZeroFS 与 Amazon S3 Files 对比
本文深度对比了 ZeroFS 和 Amazon S3 Files 两种基于对象存储的 POSIX 文件系统实现,核心差异在于是否维持文件与 S3 对象的一一映射。S3 Files 优先保证 S3 API 互操作性,但引入了异步导出延迟和高性能存储成本;ZeroFS 则放弃直接对应关系,通过 LSM 树和打包 segment 实现即时持久化、压缩加密和更低的小文件存储成本。文章提供了详细的成本模型、冷访问、fsync 和重命名行为对比,结论清晰:选择取决于该存储桶是否需要作为普通 S3 对象直接访问,还是仅作为私有文件系统的底层。适合对云存储架构、文件系统设计有深入了解需求的技术决策者。原文 ↗原文 ↗
核心观点
- ▍S3 Files 与 ZeroFS 的根本架构差异在于是否维持文件与 S3 对象的一一映射,这决定了它们的互操作性、性能、成本模型和使用场景,不存在绝对优劣,而是各有所依的权衡。
- 01S3 Files 维持文件与对象的一一映射,确保 S3 API 互操作性,但写入操作需经过 60 秒空闲导出周期才能通过 S3 API 可见,且小文件会产生高性能存储费用。
- 02ZeroFS 使用 LSM 树管理元数据,将压缩和加密后的文件数据块打包进不可变的 segment 对象,放弃了 S3 对象的一一对应关系,但实现了即时 fsync 持久性,并显著减少了 S3 对象数量和小文件存储成本。
- 03成本对比示例显示,在存储并读取一次 10,000 GiB 数据的场景下,S3 Files 的常驻读取成本为 3,530 美元,而 ZeroFS 在 2:1 压缩比下仅约为 230 美元,但大文件流式处理场景可能更倾向于 S3 Files。
- 04两者在重命名语义上存在根本差异:S3 Files 在重命名时复制对象,而 ZeroFS 原子性地更新 LSM 树条目。
- 05S3 Files 的持久性和 S3 可见性是两个独立的事件,而 ZeroFS 在 fsync 时提供即时的对象存储持久性。
反方 / 局限
- — 文章未提及 ZeroFS 的加密密码管理、客户端故障、以及在高并发场景下无锁 LSM 树的性能表现等潜在风险。
- — 成本分析基于一个特定示例场景,未涵盖零压缩比、随机小文件读写或高频重命名等极端工作负载,这些场景下的成本对比结论可能不同。
前置背景
技术原理
平行视角
未来推演
延伸追问