造一个自己的
分布式存储系统。
这是写给存储运维工程师的研发教程。 你不需要科班的编程功底 —— 你带着对故障域、fsync、重建风暴的一线直觉, 再带上一个 AI 结对搭档,用 Rust 从零构建代号 forge 的分布式存储系统:从单机引擎到 EC 条带,最终做出一个类 Weka NeuralMesh、 可以 mount 到 Linux 上跑编译任务的文件系统。
你将依次造出
里程碑① forge-store:单机 blob 引擎,kill -9 后重启数据不丢不坏。
里程碑② forge-bench:自研压测工具,单机引擎跑到 NVMe 标称 IOPS 的 70% 以上。
里程碑③ forge-cluster:3 节点对象存储,EC 条带落盘,掉任意一个节点读写不中断。
里程碑④ forgefs:mount 到 Linux 上能跑编译任务,掉一个节点照常读写。
forge 1.0:CI 全绿、Grafana 大盘、调优报告,以及一份写给下一个学习者的复盘。
六个阶段
你已经会看 iostat、懂副本和故障域 —— 这些不是包袱,是研发的起点。这个阶段完成三件事:看清目标系统长什么样、建立 AI 结对开发的工作流、把 Rust 工具链跑起来。
分布式系统的地基是单机引擎。把你运维时熟悉的 page cache、fsync、坏盘现象翻译成代码:亲手写出带校验和、带 WAL、崩溃后能恢复的存储引擎。
Weka 的招牌是把 NVMe 榨到接近硬件极限。这个阶段搞懂两件事:异步运行时怎么调度上万并发 IO,io_uring 为什么比传统系统调用快。
单机引擎复制三份还不是分布式系统。成员管理、数据放置、纠删码、共识 —— 你运维时对付过的每种故障,现在要在代码里给出答案。
对象存储只有 put/get,文件系统要有目录、rename、并发写同一文件。这是 Weka 真正的护城河 —— 把它的元数据分片和条带化数据通路做出迷你版。
能跑通 demo 和敢上生产之间隔着一整个工程体系。用确定性模拟测试逼出并发 bug,把 metrics/tracing 织进系统,最后做一轮真正的性能调优。
开始之前
熟悉 Linux 与存储运维即可:看得懂 iostat、知道副本和 EC 是什么。缺基础去姊妹站 Storpath 补 L0/L1。不要求会任何编程语言。
一台 Linux 机器(虚拟机即可,最好有一块可以造的 NVMe 盘),以及一个终端 AI 编程工具 —— Claude Code、Codex 或同类,L0 会教你怎么用好它。
每节课都以 forge 项目为主线:概念课回答「为什么这样设计」,编码课带着 AI 动手实现,里程碑课用运维手法验收 —— kill -9、拔盘、断网都会用上。