Storforge
29 lessons · 5 milestones · rust + ai

造一个自己的
分布式存储系统。

这是写给存储运维工程师的研发教程。 你不需要科班的编程功底 —— 你带着对故障域、fsync、重建风暴的一线直觉, 再带上一个 AI 结对搭档,用 Rust 从零构建代号 forge 的分布式存储系统:从单机引擎到 EC 条带,最终做出一个类 Weka NeuralMesh、 可以 mount 到 Linux 上跑编译任务的文件系统。

25 小时 · 含大量动手编码已完成 0/29

你将依次造出

L1

里程碑① forge-store:单机 blob 引擎,kill -9 后重启数据不丢不坏。

L2

里程碑② forge-bench:自研压测工具,单机引擎跑到 NVMe 标称 IOPS 的 70% 以上。

L3

里程碑③ forge-cluster:3 节点对象存储,EC 条带落盘,掉任意一个节点读写不中断。

L4

里程碑④ forgefs:mount 到 Linux 上能跑编译任务,掉一个节点照常读写。

L5

forge 1.0:CI 全绿、Grafana 大盘、调优报告,以及一份写给下一个学习者的复盘。

六个阶段

L0从运维到研发心智切换 · AI 结对 · Rust 起步0/4

你已经会看 iostat、懂副本和故障域 —— 这些不是包袱,是研发的起点。这个阶段完成三件事:看清目标系统长什么样、建立 AI 结对开发的工作流、把 Rust 工具链跑起来。

  1. 你要造的东西:解剖 Weka NeuralMesh原理
  2. AI 结对开发:你的第二双手编码
  3. Rust 工具链:cargo 就是你的 systemctl编码
  4. 运维人的 Rust 心智模型原理
L1单机存储引擎文件 IO · WAL · 崩溃一致性0/5

分布式系统的地基是单机引擎。把你运维时熟悉的 page cache、fsync、坏盘现象翻译成代码:亲手写出带校验和、带 WAL、崩溃后能恢复的存储引擎。

  1. 文件 IO 的三条通路编码大纲
  2. 从零写一个 blob store编码大纲
  3. WAL 与崩溃一致性编码大纲
  4. 内存索引与日志结构存储编码大纲
  5. 里程碑①:kill -9 验收里程碑大纲
L2榨干硬件性能async · io_uring · NVMe0/4

Weka 的招牌是把 NVMe 榨到接近硬件极限。这个阶段搞懂两件事:异步运行时怎么调度上万并发 IO,io_uring 为什么比传统系统调用快。

  1. tokio:异步运行时是怎么回事编码大纲
  2. io_uring:内核旁路前的最后一站编码大纲
  3. NVMe 的并行世界原理大纲
  4. 里程碑②:对标 fio里程碑大纲
L3走向分布式RPC · 放置 · EC · Raft0/6

单机引擎复制三份还不是分布式系统。成员管理、数据放置、纠删码、共识 —— 你运维时对付过的每种故障,现在要在代码里给出答案。

  1. 网络与 RPC:tonic/gRPC编码大纲
  2. 集群成员与故障检测编码大纲
  3. 数据放置:一致性哈希、CRUSH 与 Weka bucket编码大纲
  4. 复制与纠删码编码大纲
  5. Raft:给元数据上共识编码大纲
  6. 里程碑③:拔掉一个节点里程碑大纲
L4NeuralMesh 式文件系统分布式元数据 · 条带写 · FUSE0/6

对象存储只有 put/get,文件系统要有目录、rename、并发写同一文件。这是 Weka 真正的护城河 —— 把它的元数据分片和条带化数据通路做出迷你版。

  1. 深挖 Weka:这次带着实现者的眼睛原理大纲
  2. 文件系统元数据:inode 与目录分片编码大纲
  3. 条带化写路径编码大纲
  4. FUSE 客户端:mount 自己的文件系统编码大纲
  5. 故障重建与再平衡编码大纲
  6. 里程碑④:在 forgefs 上编译内核模块里程碑大纲
L5工程化收官测试 · 可观测 · 调优0/4

能跑通 demo 和敢上生产之间隔着一整个工程体系。用确定性模拟测试逼出并发 bug,把 metrics/tracing 织进系统,最后做一轮真正的性能调优。

  1. 确定性模拟与故障注入编码大纲
  2. 可观测性:给自己的系统装仪表盘编码大纲
  3. 性能调优实战编码大纲
  4. 收官:复盘与下一步里程碑大纲

开始之前

你需要的底子

熟悉 Linux 与存储运维即可:看得懂 iostat、知道副本和 EC 是什么。缺基础去姊妹站 Storpath 补 L0/L1。不要求会任何编程语言。

你需要的装备

一台 Linux 机器(虚拟机即可,最好有一块可以造的 NVMe 盘),以及一个终端 AI 编程工具 —— Claude Code、Codex 或同类,L0 会教你怎么用好它。

学习方式

每节课都以 forge 项目为主线:概念课回答「为什么这样设计」,编码课带着 AI 动手实现,里程碑课用运维手法验收 —— kill -9、拔盘、断网都会用上。