用心打造
VPS知识分享网站

ZeroFS将S3存储桶转换为Linux文件系统和块设备

大多数人都知道,S3兼容存储(一种遵循Amazon S3 API模型的对象存储)可以用来存放备份、归档、镜像、日志或应用程序数据。这包括AWS S3、商业S3兼容云服务以及Garage、SeaweedFS和RustFS等自托管平台。

ZeroFS将S3存储桶转换为Linux文件系统和块设备

它价格低廉、随处可得,并且在大规模部署中表现出色,但它的行为通常与 Linux 用户日常使用的存储方式截然不同。ZeroFS 试图改变这种现状

这是一个全新的开源存储项目,它将与 S3 兼容的对象存储以 Linux 可访问的文件系统和块设备的形式呈现。这种方法使得对象存储的应用范围超越了备份、归档或特定应用程序的工作流程,实现了更广泛的应用。

简而言之,ZeroFS 运行于存储后端和操作系统之间。它可以通过 NFS 或 9P 协议以 POSIX 风格的文件系统形式提供数据,也可以通过 NBD(Linux 网络块设备协议)以原始块存储形式提供数据。这使得同一个与 S3 兼容的后端既可以作为文件和目录访问,也可以作为块设备访问,后者可以使用 ext4 等文件系统进行格式化,或供 ZFS 等存储堆栈使用。

该项目的主要目标很简单:让对象存储能够在 Linux 系统需要文件系统或块设备访问的环境中正常使用。ZeroFS 没有依赖 FUSE 挂载或自定义 S3 API 应用程序,而是使用操作系统已支持的协议。根据文档,这包括通过 NFS 和 9P 进行文件级访问,以及通过 NBD 进行块级访问。

以下是关于它们的更多信息。NFS 为 ZeroFS 提供了广泛的兼容性,因为几乎所有类 Unix 操作系统都支持 NFS 客户端。9P 选项专门针对 Linux 环境,提供更强的 POSIX 兼容性和高级缓存功能。NBD(网络块设备协议)的独特之处在于,它使 S3 兼容的存储能够以原始块设备的形式存在。

根据项目文档,ZeroFS 创建的 NBD 设备可用于 ext4 文件系统、ZFS 池、数据库和虚拟机启动盘。换句话说,ZeroFS 不仅限于呈现对象存储中的文件,它还支持在 S3 兼容后端之上构建 Linux 存储层。

在安全性方面,ZeroFS 强制执行加密。数据在上传前使用 XChaCha20-Poly1305 加密,密钥由 Argon2id 生成的密码派生而来。不存在未加密模式,确保对象存储提供商只能收到加密数据。

此外,文件数据在加密前会进行压缩,默认使用 zstd 压缩算法,LZ4 则是一种速度更快的替代方案。而且,无需迁移现有数据即可更改压缩方法,先前写入的数据块仍然可以访问。

在性能方面,特别是缓存方面,ZeroFS 支持内存和本地磁盘缓存,以缓解对象存储延迟——这是将 S3 兼容存储用作传统文件系统时一个众所周知的限制。其他功能包括检查点、只读副本、TRIM 支持、可选的 WAL 存储、独立的压缩器以及包含文件管理器、仪表板和浏览器终端的 Web 用户界面。

不过,ZeroFS仍需谨慎评估。对象存储与本地磁盘或传统网络存储相比,在延迟和一致性方面存在显著差异,将其用作文件系统或块设备会带来一些操作上的权衡。

即便如此,ZeroFS 仍然是测试云端文件系统、自托管存储、加密远程存储以及对象存储上实验性块设备工作流程的理想选择。该项目使用 Rust 编写,并以 AGPL-3.0 许可证发布为免费开源软件。

赞(0)
未经允许不得转载;国外VPS测评网 » ZeroFS将S3存储桶转换为Linux文件系统和块设备
分享到