架构

不是黑盒

从 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 · 事务
DATAChunk 引擎Chunk · Block · Slice
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