从裸金属到分布式:补上存储栈的最后一块拼图

大多数后端工程师熟悉的是应用层或数据库层,但面对 TiDB、RocksDB 或高性能对象存储时,往往对底层数据究竟如何写入 NVMe SSD 感到模糊。本课程直击这一能力缺口,采用“自下而上”的路径,带你从零构建一个轻量级文件系统(Zerofs),亲手操作 io_uring 与 SPDK 绕过内核,再向上演进至 KV 存储引擎及 Ceph、TiDB 等分布式架构。无论你是想深入理解存算分离原理,还是为转向基础架构研发做准备,这套内容能填补你知识图谱中关于“数据在磁盘上真实存在形态”的认知空白。

学习路径建议与核心练习配合

建议不要按顺序从头啃完,而是根据现有基础分段突破。若你对 Linux 系统调用陌生,务必先看完 Zerofs 系列(001-007),这是理解 block_device、LBA 寻址及分区布局的基础;若目标是高性能数据库开发,重点攻关 io_uring(008-011)和 SPDK(014-019),理解用户态轮询如何替代中断驱动以提升吞吐量;若关注分布式一致性,则重点研读 Ceph(034-036)与 TiDB 存储层(038-039)。配套的 KV 项目(020-027)是极佳的练手场,通过实现 Set/Get/Del 及 B-Tree/Radix Tree 的选择,将理论转化为代码直觉。

学完能独立做什么

完成本课后,你将不再只盯着 API 使用,而是能独立回答“数据从 RAM 到 SSD 经历了哪些拷贝”、“SPDK 为何比标准 POSIX 快”、“TiDB 的 Raft 日志在底层如何落盘”等核心问题。具体而言,你能够:
1. 编写基于 io_uring 的高性能 I/O 模块,处理异步读写;
2. 设计并实现一个简单的用户态文件系统或 KV 存储引擎,掌握 slot 分配与内存管理;
3. 具备部署和维护 Ceph、FastDFS 等分布式存储集群的能力,并能进行基础的性能调优与故障分析。

课程目录

视频
001.存储课程技术点介绍视频_.mp4 93.94M
002.【zerofs1】文件系统需求分析与mkfs.zvvfs的两种实现方式_.mp4 153.69M
003.【zerofs2】nvme的lba与nblocks的重要性_.mp4 151.06M
004.【zerofs3】block_device对nvme的读写与sector大小代码实现_.mp4 197.47M
005.【zerofs4】 文件系统partition layout设计与实现_.mp4 167.22M
006.【zerofs5】mkfs.zvvfs实现partition layout的5步曲_.mp4 185.53M
007.【zerofs6】mkfs.zvvfs的partition layout完善与nvme读写_.mp4 203.38M
008.【io_uring1】与epoll媲美的io_uring(1)_.mp4 161.84M
009.【io_uring2】与epoll媲美的io_uring(2)_.mp4 225.62M
010.【io_uring3】io_uring的使用场景(1)_.mp4 153.34M
011.【io_uring4】 io_uring的使用场景(2)_.mp4 262.38M
012.【fuse1】fuse协同事件 用户态文件系统(1)_.mp4 203.09M
013.【fuse2】fuse协同事件 用户态文件系统(2)_.mp4 289.75M
014.【SPDK项目1】 SPDK的工作原理与文件系统架构分析(1)_.mp4 155.72M
015.【SPDK项目2】SPDK的工作原理与文件系统架构分析(2)_.mp4 173.66M
016.【SPDK项目3】文件系统的posix api实现(1)_.mp4 175.88M
017.【SPDK项目4】文件系统的posix api实现(2)_.mp4 229.09M
018.【SPDK项目5】文件系统的性能测试(1)_.mp4 148.03M
019.【SPDK项目6】文件系统的性能测试(2)_.mp4 195.22M
020.【KV项目-1】KV存储拆解 Set,Get,Mod,Del_.mp4 283.97M
021.【KV项目-2】bdev与blob对于kv存储的选择_.mp4 264.34M
022.【KV项目-3】kv service接口 set_get_modify_delete_.mp4 192.69M
023.【KV项目-4】pagechunk的get与put_.mp4 161.66M
024.【KV项目-5】btreehashmapradixtreerbtree之间的选择_.mp4 272.84M
025.【KV项目-6】-slab分配slot与释放slot_.mp4 192.44M
026.【KV项目-7】-为kv存储加上conf文件_.mp4 232.38M
027.【KV项目-8】-kv存储测试用例与性能测试_.mp4 190.16M
028.【fastdfs1】fastdfs架构分析和配置_.mp4 331.50M
029.【fastdfs2】FastDFS集群部署和同步机制分析_.mp4 359.69M
030.【fastdfs3】 fastdfs存储原理_.mp4 353.34M
031.【fastdfs4】高负载nginxfastcgi_.mp4 381.88M
032.【fastdfs5】文件传输和接口设计_.mp4 385.12M
033.【fastdfs6】 产品上云公网发布测试用例_.mp4 342.34M
034.【ceph1】 内核级支持的分布式存储ceph_.mp4 309.19M
035.【ceph2】 docker安装ceph分布式存储系统(高可用)_.mp4 235.56M
036.【ceph3】分布式ceph存储集群部署_.mp4 165.06M
037.【RockDB】不一样的kv存储RocksDB的使用场景_.mp4 262.28M
038.【TiDB1】TiDB存储引擎的原理_.mp4 237.78M
039.【TiDB2】TiDB集群方案与Replication原理_.mp4 238.53M
工具+图书带货自下而上-存储全栈 (TiDB_RockDB_SPDK_fuse_ceph_NVMe)/
002.【z