架构
不是黑盒
从 FUSE 到 VFS,从元数据到 Chunk / Block / Slice,从对象 IO 到压缩与 GC — BrewFS 将文件系统语义、元数据事务、对象块存储与后台维护拆分为清晰的分层,每一层都可以被审查、测试、调试与扩展。
总览
整体架构
APP应用Agents · AI Jobs · Containers · CLI · SDK
↓ 类 POSIX FUSE
VFSVFS 层path · inode · handle · read/write · rename · truncate
↓
META元数据层SQLx · Redis · etcd · TiKV
命名空间 · Inode · Slice · 事务
命名空间 · Inode · Slice · 事务
DATAChunk 引擎Chunk · Block · Slice
Cache · Compaction · GC
Cache · Compaction · GC
↓
OBJ对象后端LocalFS / S3 兼容存储
数据路径
读写流水线
BrewFS 将 IO 路径呈现为清晰的 Rust 流水线 — 从一次文件写入到一个对象块之间没有隐藏的魔法。
写路径
FUSE write
VFS::write
FileWriter::write_at
Chunk 切分
SliceState 追加
自动 flush
DataUploader
ObjectBlockStore
元数据提交
读路径
FUSE read
VFS::read
FileReader
加载 Slice 元数据
偏移 → 对象块映射
读取对象后端
合并 slice / 空洞补零
返回字节
分层
六个架构层
01
CLI / DAEMON
CLI / Daemon
启动 BrewFS、加载配置、挂载文件系统,并暴露运维命令。
02
KERNEL
FUSE
接收来自内核的文件系统操作,并将其映射为 BrewFS 的 VFS 操作。
03
SEMANTICS
VFS
处理路径查找、inode 管理、文件句柄、rename、truncate、读与写。
04
STATE
Metadata
存储命名空间、目录项、inode 属性、文件大小、chunk 元数据、slice 描述符与事务状态。
05
ENGINE
Chunk Engine
管理 Chunk / Block / Slice 布局、读写映射、稀疏空洞、压缩与 GC。
06
DURABLE
Object Backend
将文件数据以对象块形式存储在 LocalFS 或 S3 兼容存储上。
COMPACTION & GC
保持对象布局干净
BrewFS 以 Slice 形式写入数据。覆盖写、截断与文件更新可能留下旧的 slice 与对象块。Compaction 减少 slice 碎片,GC 则移除不再被引用的对象数据。
OBSERVABILITY
为可观测而设计
统计、追踪、日志、性能分析、基准工具与控制面命令,帮助开发者理解真实负载下的文件系统行为。
statstracingprofilingcontrol plane