使用 Rust 语言编写,思科发布 PuzzleFS 文件系统内核驱动
IT之家 10 月 11 日消息,PuzzleFS 号称是“下一代 Linux 容器文件系统”,其采用 Rust 语言编写,具有“快速镜像构建”、“直接挂载支持”、“内存安全保证”等功能。
思科开发者 Ariel Miculas 今日在内核邮件列表中,发布了用 Rust 写的 PuzzleFS 文件系统驱动,以征求其他开发者的意见,目前这一驱动程序处于“概念验证”阶段。
IT之家转录 Ariel Miculas 介绍 PuzzleFS 特性如下:
PuzzleFS 是一种“只读”的文件系统,与 Open Container Initiative (OCI) v2 image specification 的设计目标相符,它使用内容定义进行分块,并且使用内容寻址的数据存储,旨在解决现有 OCI 格式的限制。
OCI 镜像规范的第一个版本存在许多问题,这些问题的根源都是来自依赖 tar 存档来保存文件系统中的层,事实上 tar 不适合解决容器文件系统问题。
PuzzleFS 旨在解决 tar 的问题。文件系统镜像本身由一组放置在底层文件系统上的文件组成。与 OCI 镜像格式一样,存在一个顶级
index.json
文件,其中包含一组标签,每个标签代表某一个版本的文件系统,并指向一个清单文件(manifest file)。清单文件又指向镜像配置和存储在实际镜像层中的数据。其他所有内容都存储为blobs/sha256
目录中的一组 blob。文件系统中的大多数数据都被分成可变大小的块(chunk),以内容的 SHA256 哈希作为文件名来存储为 blob。这个分块动作本身是使用 FastCDC 算法进行的,该算法查找 "切割点(cut points)",把数据流分为不同大小的 blob。任何一个特定的流(例如文件的内容)都可以分成五个或五十个块,这取决于如何确定这些切割点;然后,每个块都以不同的 blob 方式落在
blobs/sha256
下,并将其哈希添加到清单中。
参考
广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。