7 个版本
0.3.2 | 2023年8月8日 |
---|---|
0.3.1 | 2023年6月17日 |
0.2.2 | 2023年2月24日 |
0.2.0 | 2023年1月31日 |
0.1.0 | 2022年6月16日 |
#283 in 文件系统
4,472 monthly downloads
用于 5 个 Crates (4 直接)
1.5MB
33K SLoC
nydus-rafs
为 Nydus Image Service 提供的 RAFS Fuse 文件系统。
支持
平台:
- x86_64
- aarch64
操作系统:
- Linux
- MacOS
许可证
此代码受 Apache-2.0 或 BSD-3-Clause 许可证许可。
lib.rs
:
RAFS:一个基于块的 dedup、按需加载、只读 fuse 文件系统。
Rafs 文件系统是一个基于块的只读文件系统,具有块 deduplication 功能。一个 Rafs 文件系统由一个元数据块和零个或多个数据块组成。一个块只是一个包含数据块的普通对象。数据块可以根据块内容摘要值进行压缩、加密和 deduplication。当 Rafs 文件用于容器镜像时,Rafs 元数据块包含所有文件系统元数据,例如目录、文件名、权限等。实际上,文件内容被分割成块并存储在数据块中。Rafs 可以为每个容器镜像层构建一个数据块,也可以根据构建选项构建一个包含整个镜像的单个数据块。
定义了几个版本的 Rafs 文件系统
- V4:原始的 Rafs 文件系统格式
- V5:基于 V4 优化的版本,具有元数据直接映射、数据预取等功能。
- V6:重新设计的版本,以减少元数据块大小并与内核中 erofs 互操作,更好地支持 virtio-fs。
nydus-rafs 包依赖于 nydus-storage 包以访问元数据和数据块,并通过在本地存储上缓存数据来提高性能。nydus-rafs 本身包括两个主要子模块
有关更多信息,请参阅 Dragonfly 图像服务
依赖项
~15–32MB
~513K SLoC