返回

文章详情

ZeroFS与亚马逊S3文件

Hacker News2026年7月11日 18:15

亚马逊S3文件与ZeroFS都暴露以对象存储为基础的POSIX文件系统,但共享接口隐藏了相反的桶布局。选择取决于桶的角色:如果文件必须保持普通的S3对象,S3文件将保持该身份;如果桶可以是内部持久化层,ZeroFS则用打包、压缩和客户端加密来替代直接的S3访问。存储布局 S3文件的定义属性是,它是使用亚马逊EFS构建的,挂载上的images/cat.jpg对应于桶中的相同键,变更双向流动。活动数据和元数据存在于AWS称之为“高性能存储”的低延迟层中。ZeroFS存储格式故意缺失了一文件一对象的身份。元数据存在于LSM树中;文件内容被拆分成范围,压缩和加密,然后打包成不可变的段对象。S3客户端看到的是一个不透明的内部布局,而不是已挂载的文件。流水线图 TB 子图 CLIENTS["客户端层"] NFS["NFS客户端"] P9["9P客户端"] NBD["NBD客户端"] WEB["网页浏览器"] 结束 子图 CORE["ZeroFS核心"] NFSD["NFS服务器"] P9D["9P服务器"] NBDD["NBD服务器"] WEBUI["网络用户界面"] VFS["虚拟文件系统"] SEG["段存储:压缩、加密的文件数据帧"] SLATE["LSM树:元数据和32字节范围指针"] CACHE["本地缓存"] NFSD --> VFS P9D --> VFS NBDD --> VFS WEBUI --> VFS VFS --> SEG VFS --> SLATE SEG --> CACHE SLATE --> CACHE 结束 子图 BACKEND["存储后端"] SEGOBJ["不可变段对象"] SSTS["元数据SST和清单"] S3["S3对象存储"] CACHE --> SEGOBJ CACHE --> SSTS SEGOBJ --> S3 SSTS --> S3 结束 NFS --> NFSD P9 --> P9D NBD --> NBDD WEB --> WEBUI ZeroFS在到达对象存储之前将文件数据和文件系统元数据保持在不同的路径中。这两个挂载使用客户端页缓存。下面的写路径行在客户端向服务器发送写入后开始。亚马逊S3文件 ZeroFS 存储模型 AWS管理的高性能存储与桶同步;内部布局未记录 LSM树和不可变数据段在对象存储上 对象布局 一个文件映射到一个S3对象 元数据在LSM树中;文件数据帧打包到段中 写路径 在客户端缓存后进行NFS写入高性能存储,立即持久化;在写入不活动后进行异步S3导出 通过9P,fsync上传数据段并在返回成功前刷新LSM元数据到对象存储 冷读和预读 Linux NFS预读,目录元数据导入,选项小文件导入或直接S3读取 LSM查找,然后自适应对象和跨段帧预取 S3 API访问文件 是的;文件系统更改在异步导出后出现 否;读取文件需要ZeroFS和加密密码 客户端接口 NFS 4.1/4.2 9P或NFS用于文件;NBD用于块 对象存储的选择 亚马逊S3 亚马逊S3、S3兼容存储、Azure Blob或谷歌云存储 成本模型 S3加高性能存储、文件访问和同步费用 对象存储和请求,再加上运行ZeroFS的计算和缓存 对象互操作性 保持一一映射意味着通过挂载写入的文件最终成为普通S3对象。导出在60秒内没有写入后开始,因此持续写入推迟了S3的可见性。一旦导出完成,现有工具可以用GetObject读取该对象,S3侧的更改流回文件系统。如果在同步之前两侧修改相同文件,S3获胜,文件侧版本将移到lost+found。无法通过S3 API获取ZeroFS路径名,段也无法作为Parquet扫描。作为交换,小文件既不需要一个数据对象,也不需要每个一个PUT:它们的范围被压缩、加密并捆绑在一起。桶和原始本地缓存包含密文,因此挂载或恢复需要ZeroFS及其加密密码。加密文档列出了仍然可见的结构元数据。如果其他应用程序在文件系统写入后需要立即的S3可见性,则两个模型都无法提供:S3文件异步导出,而ZeroFS从不通过S3 API暴露挂载的文件。冷访问 第一次访问S3文件可触发导入:列出目录加载每个对象的元数据,并异步将低于导入阈值(默认128 KiB)的文件复制到高性能存储。AWS表示,第一次列出1,000个对象可能需要几秒钟。较大的文件保留在S3中,至少1 MiB的读取直接从S3获取。ZeroFS则从读取和上传填充本地RAM和磁盘缓存。新密封的段根据已经手头的字节进入缓存,因此写后读取无需GET;缓存不是写回的,写入在段被密封和元数据被刷新时仍然达到对象存储。冷未命中通过LSM树解决请求的范围,并将相邻帧合并。

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡